Forum Linux.général Wireguard au travers de la box

Posté par  (site web personnel, Mastodon) . Licence CC By‑SA.
Étiquettes :
2
18
sept.
2024

Bonjour,

J'ai un nano-ordinateur type "rapsberry PI" que je met chez mon voisin et je voudrais y accéder depuis mon PC derrière ma freebox (En SSH).

Je contrôle entièrement le nano-ordinateur mais je ne peux pas toucher à la box de mon voisin. J'ai mis un VPN Wireguard sur le nano-ordinateur qui pointe sur ma box de mon PC (Linux).

J'ai un domaine pour ma freebox xxx.freeboxos.fr, sur ma freebox, j'ai redirigé le port 51820 UDP sur mon PC qui est allumé. Cependant j'ai l'impression qu'il faudrait aussi que j'ouvre le port 51820 de la box de mon voisin pour que cela fonctionne de manière à ce que mon PC y accède qund il le souhaites…

[Interface]
    Address = 10.0.0.1/24
    SaveConfig = true
    ListenPort = 51820
    PrivateKey = XXXX_PRIVATE_KEY_SERVER

[Peer]
    PublicKey = XXXX_PUBLIC_KEY_CLIENT
    AllowedIPs = 10.0.0.2/32
    Endpoint = 192.168.1.202:51820

Est-ce que la limite c'est Wireguard qui ne fonctionne pas en mode serveur connecté (C'est du déconnecté c'est sûr) ou est-ce qu'il y a une solution avec une configuration Wireguard plus complexe? Ou sinon, est-ce possible avec OpenVPN par exemple?

Ce que je sais c'est que les VPN d'entreprises marchent bien comme ça. Ca doit donc être possible.

PS: Depuis le nano-ordinateur je n'arrive pas à me connecter à mon PC… sauf s'ils sont dans le même réseau local.

  • # Wireguard de la box ?

    Posté par  (site web personnel) . Évalué à 2 (+0/-0).

    T'as utilisé le serveur Wireguard de ta box ?

    Je viens de tester vite fait, j'arrive de mon réseau local à pinger mon téléphone connecté au VPN Wireguard de ma freebox.

    S'il y a un problème, il y a une solution; s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

  • # Mauvais endpoint

    Posté par  (site web personnel) . Évalué à 5 (+3/-0). Dernière modification le 18 septembre 2024 à 15:29.

    Aucun besoin de toucher la configuration de la box du voisin a priori.

    En revanche, l'endpoint configuré ici, 192.168.1.202:51820, est probablement l'IP de ton PC sur le réseau local de ta box, qui n'est pas visible/accessible depuis le réseau de ton voisin. À la place, il faudrait mettre ton adresse IP publique, ou un nom de domaine, pointant vers ta box.

    (Le tout en partant du principe que tu fais tourner WireGuard sur ton PC, puisque tu as redirigé le port UDP de la box vers le PC.)

    Debian Consultant @ DEBAMAX

  • # Demander à garder la connection active

    Posté par  (site web personnel, Mastodon) . Évalué à 3 (+1/-0). Dernière modification le 18 septembre 2024 à 17:20.

    Par défaut, le tunnel Wireguard ne s'active que si du traffic réseau doit être envoyé à travers le tunnel (depuis le client chez ton ami vers le serveur chez toi).

    Tu peux ajouter l'option PersistentKeepalive = 25 dans la section [Peer] du fichier de configuration qui se trouve sur ta machine chez ton ami. Cf le wiki de Arch: https://wiki.archlinux.org/title/WireGuard#Unable_to_establish_a_persistent_connection_behind_NAT_/_firewall

    Cette option est à utiliser pour ce cas où le tunnel doit rester actif pour que le serveur puisse contacter le client à tout moment.

    Comme ça, tu n'auras pas besoin de créer un tunnel inverse et donc tu ne devrais pas à modifier la configuration de la box de ton ami.

    • [^] # Re: Demander à garder la connection active

      Posté par  (site web personnel, Mastodon) . Évalué à 3 (+1/-0). Dernière modification le 18 septembre 2024 à 17:31.

      Ca donnerait quelque chose comme ça.

      Pour ta machine chez toi:

      [Interface]
      Address = 10.0.0.1/24
      ListenPort = 51820
      PrivateKey = XXXX_PRIVATE_KEY_SERVER
      
      [Peer]
      PublicKey = XXXX_PUBLIC_KEY_CLIENT
      AllowedIPs = 10.0.0.2/32
      Endpoint = 192.168.1.202:51820

      Attention à bien configurer ta box pour accepter le traffic UDP entrant vers le port 51820 sur la box et à faire rediriger ce traffic sur l'adresse IP et le port que tu as mis dans Endpoint au dessus.

      Pour la config du client chez ton ami:

      [Interface]
      Address = 10.0.0.2/32
      ListenPort = 51820
      PrivateKey = XXXX_PRIVATE_KEY_CLIENT
      
      [Peer]
      PublicKey = XXXX_PUBLIC_KEY_SERVER
      AllowedIPs = 10.0.0.1/24
      Endpoint = IP_PUBLIC_DE_TA_BOX:51820
      PersistentKeepAlive = 25

      Avec ça ton serveur doit pouvoir faire des ping vers 10.0.0.2 correctement.

  • # Pas certain : plage de ports ?

    Posté par  . Évalué à 1 (+0/-0).

    J'ai pas bien pigé le problème et je suis peut-être à côté de la plaque.
    C'est l'allusion au voisin qui me fait tiquer. Pourquoi le voisin ? Qu'est-ce qu'il vient faire dans l'histoire ?

    Depuis quelques années, pour économiser les adresses IPv4, Free partage les ports entre 4 clients.
    À une erreur de 1 près :

    • #1: ____0 --> 16383
    • #2: 16384 --> 32767
    • #3: 32768 --> 49151
    • #4: 49152 --> 65535

    Avec un mapping pour les clients 2, 3 et 4 vers [0 .. 16383].
    Ce qui signifie que par défaut, un client n'a droit qu'à 1/4 des ports possibles.

    Pour bénéficier de la totalité de la plage, il faut demander une adresse IP fixe, ce qui donne dans leur jargon du "full stack".

    Voilà voilà, le problème n'est peut-être pas lié à ça, mais c'est bon de s'en rappeler parfois, sinon, on galère pendant plusieurs heures, comme lorsque je suis revenu de Numéricable/SFR à Free fibre en 2017 …

    • [^] # Re: Pas certain : plage de ports ?

      Posté par  (site web personnel) . Évalué à 2 (+0/-0).

      La box accepterait de mettre en place une redirection depuis un port qui ne serait pas dans la tranche de ports attribuée en cas de CGNAT ?

      Debian Consultant @ DEBAMAX

      • [^] # Re: Pas certain : plage de ports ?

        Posté par  . Évalué à 1 (+0/-0).

        Oula, j'ai déjà du mal à maîtriser ce qui se passe sur mon LAN (à force d'être "expert" en tout, on devient expert en rien …).
        Et j'ai été obligé d'aller voir Wikipedia pour apprendre ce qu'est le CGNAT.

        Ceeeeuuuupaaannndaaaaaaaant

        Des souvenirs de mon expérience de retour chez Free, je dirais que du point de vue du monde extérieur, on existe pas si on fait partie des #2, 3 ou 4. Et on n'existe que pour 1/4 des ports si on est le #1.
        Pour preuve (ou "preuve" ?), aucun mail ne rentrait chez moi durant la période où j'étais dans le flou.
        Il me semble que j'avais configuré ma Freebox en bridge à ce moment-là. Recherches, tests, incompréhension, mon Postfix fonctionne correctement pourtant. Et puisque j'ai gardé Numéricable un mois, pour assurer le risque de la transition vers Free fibre, j'ai pu prouver son fonctionnement facilement (à un DynDNS près à l'époque).
        Je pense que j'ai repassé la Freebox en routeur avant de me rappeler cette histoire d'IP fixe/full stack. Et le serveur en DMZ.
        Pas mieux, jusqu'à la demande d'IP fixe. Là, je suis devenu une IP pleine et entière du point de vue du monde extérieur.

        • [^] # Re: Pas certain : plage de ports ?

          Posté par  (site web personnel) . Évalué à 2 (+0/-0).

          Des souvenirs de mon expérience de retour chez Free, je dirais que du point de vue du monde extérieur, on existe pas si on fait partie des #2, 3 ou 4. Et on n'existe que pour 1/4 des ports si on est le #1.
          Pour preuve (ou "preuve" ?), aucun mail ne rentrait chez moi durant la période où j'étais dans le flou.

          Dans ce contexte, c'est (souvent) 1 IP = 4 abonné⋅e⋅s, chacun⋅e avec sa tranche de ports.

          Si tu es #1, tu as 25, 80, 443, notamment.

          Si tu es #4, tu as le port par défaut de WireGuard…

          Mon interrogation initiale étant : si tu es #1, #2 ou #3, la Freebox te permet-elle de configurer une redirection depuis le port 51820, qui n'est pas à ta disposition ? Cela me semblerait étrange…

          Debian Consultant @ DEBAMAX

          • [^] # Re: Pas certain : plage de ports ?

            Posté par  . Évalué à 1 (+0/-0).

            Désolé, je ne peux encore répondre qu'avec de l'hypothétique : il est probable que l'interface permette la déclaration de la règle de redirection, mais mécaniquement, impossible pour les #1, #2 et #3 d'être cibles de ce port.
            Par ailleurs, j'ai toujours supposé que pour les #2, #3 et #4, leur quart de plage de ports était transposée vers [0 .. 16383].
            Donc le #4 pourrait être récepteur sur 51820, mais si cette logique est la bonne, sur la Freebox ou sur le LAN, 51820 serait ramené à 2668 (à quelques unités près, selon l'étendue exacte des plages).

            Quelqu'un est-il encore dans ce cas de figure ? Ou bien existe-t-il une formalisation officielle de ces règles chez Free ?

            • [^] # Re: Pas certain : plage de ports ?

              Posté par  (site web personnel) . Évalué à 2 (+0/-0).

              Mettre en place une redirection suppose indiquer un port source (idéalement dans la tranche attribuée) et un port destination…

              Debian Consultant @ DEBAMAX

              • [^] # Re: Pas certain : plage de ports ?

                Posté par  . Évalué à 1 (+0/-0).

                Évidemment
                Je n'arrive pas à trouver quelle logique est appliquée à quel moment.
                Est-ce que le port reste P sur toute la ligne, du monde extérieur jusqu'au LAN ?
                Ou bien est-ce qu'un décalage est appliqué, avant ou par la Freebox, pour ramener P dans la première plage [0 .. 16383] ?
                Google / DuckDuckGo sont-ils plus vos amis que pour moi ?

                • [^] # Re: Pas certain : plage de ports ?

                  Posté par  . Évalué à 1 (+0/-0). Dernière modification le 19 septembre 2024 à 16:24.

                  Salut,

                  Le principe est le suivant:
                  imaginons un PC derrière une box de FAI ( qui fait donc du NAPT)

                  Le client cherche à contacter un serveur sur internet.
                  Il envoie sa demande ( un paquet ) avec son ip ( donc ip privée type 192.168.0.1) et un port ( le client choisi ce port ) vers l'ip sur internet du serveur et le port du service ( ici, c'est en général réglé par une spéc, typiquement 80 ou 443 pour du web ).

                  Donc dans ce paquet, on a ip et port du client ( la source ), ip et port du serveur ( destination ). Dans le cas derrière la box, la box va faire une translation d'ip et de port: cad, remplacer l'ip privée par celle de la box et un autre port ( ce port est gardé en mémoire ) . Ca permet au retour de la réponse du serveur, à la box de faire l'inverse et d'envoyer le paquet vers le bon client coté lan.

                  Le principe reste le meme avec un 1/4 d'ivp4, juste que le autre port se limite à 1/4 des 65536 ports normalement disponibles.

                  Dans le cas du posteur initial, si on veut "ouvrir" un port sur la box, il faut le choisir dans le 1/4 disponible. Dans le cadre d'une connexion vpn, ce n'est pas un problème si c'est par ex 45001. Si c'est pour héberger un serveur web ou email, si on n'a pas le premier 1/4 ( 0-16000), ca devient compliqué ou impossible et alors il faut demander une ipv4 fullstack.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.