Journal Installation d'un réseau VPN

Posté par  (site Web personnel) . Licence CC By‑SA.
Étiquettes :
18
24
juil.
2021

Oyé, oyé, gentes dames, messires et autres damoiseaux !

Je m'en vais vous conter l'histoire de l'installation d'un réseau VPN pour un usage privé.

Je vous explique le topo, je dispose d'un réseau local centré autour d'un serveur Dell PowerEdge qui fait office de serveurs d'authentification, de mail et de fichiers (entre autres). Je suis régulièrement en déplacement et j'avais mis en place un service de webmail sur le serveur me permettant de consulter mes mails d'un mobile ou d'un portable connecté à mon mobile où que je sois. J'avais fait un journal il y a quelques temps à ce sujet qu'on trouvera ici.
En revanche pour consulter les fichiers sur mon serveur, j'utilise SSH en ligne de commande, ce n'est pas franchement convivial et intuitif, mais je m'en contentais jusqu'à présent.

Il se trouve que ma petite dernière entame des études à l'étranger et j'aimerais lui faciliter les choses pour qu'elle puisse accéder aux ressources du réseau local en toute transparence et simplicité. J'ai donc pensé à créer un tunnel VPN entre son Thinkpad sous linux/mageia et le réseau local familial.

On trouve beaucoup de tutoriels sur internet sur le sujet, mais quasiment tous présentent une configuration où tout le flux internet du client VPN se trouve redirigé vers le serveur via le tunnel VPN. L'accès internet se fait donc via le serveur avec la technique de l'IP Masquerade. C'est sûrement intéressant dans beaucoup de cas, notamment pour une utilisation professionnelle où on souhaite filtrer l'accès à internet (voire l'interdire), mais dans mon cas ça n'apporte rien du tout, car ça ralentit considérablement l'accès à internet sur le client. Je souhaite juste que le client accède aux ressources du réseau local privé et continue à accéder à internet via sa connexion habituelle.

Du coup je soumets à votre sagacité cette page où j'expose les principales étapes pour configurer le serveur et le client OpenVPN dans cette optique. C'est un sujet que je découvre avec peu de recul d'utilisation et je serais ravi si les experts (et les autres !) qui fréquentent linuxfr pouvaient me signaler les faiblesses de cette configuration et les pistes d'amélioration.

J'ai vu également que je pouvais maintenant accéder à mon VPN via mon mobile Android, je n'en ai pas franchement l'utilité, mais pour le fun, ça sera certainement une évolution future de cette page.

  • # DNS?

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

    Comment ça se passe niveau DNS ? Vu que tu sembles utiliser des DNS publics, tout ce qui est dans ton réseau interne est accédé par l'IP directement ? (ce qui est bien pour ta gamine, puisque comme ça tu ne peux pas voir les requêtes DNS qu'elle fait quand elle est connectée au VPN !). Ou bien tu as dans une zone publique des IPs privées déclarées ?

    Sur mes configs au boulot, on utilise des DNS internes une fois connectés au VPN (qui est aussi en split-tunneling comme toi), et pour du geo-DNS, ben ça marche plus trop :D.

    • [^] # Re: DNS?

      Posté par  . Évalué à 3 (+1/-0). Dernière modification le 24/07/21 à 18:29.

      Pareil, je préfère utiliser le DNS du réseau local, pour pouvoir résoudre les noms locaux.

      Et pour ce qui est de ne pas faire transiter le traffic Internet via le VPN, il suffit de ne pas mettre redirect-gateway def1, c'est à dire que c'est le comportement par défaut en fait.

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: DNS?

        Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

        du coup dans ma config je me rends compte que j'ai laissé dans le fichier de config du serveur

        push "dhcp-option DNS 208.67.222.222"
        push "dhcp-option DNS 208.67.220.220"

        à la connexion VPN il se retrouve dans le /etc/resolv.conf du client devant le DNS par défaut, dans ma configuration c'est pas franchement utile. Je les ai donc commentés et j'ai maintenant seulement le DNS par défaut attribué par le mobile et ça marche tout aussi bien.

        https://www.funix.org mettez un manchot dans votre PC

  • # pfsense, opensense ou autre routeur

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

    Salut,
    le routeur de mon opérateur est en bridge et j'ai derrière un routeur pfsense.
    J'ai installé openvpn dessus et ça marche très bien.
    Je fait passer tout le trafique par lui (on peut mettre que les ressources local).
    Comme ça quand je suis à l'étranger ou ailleurs je ressort sur internet par ma connexion à la maison.
    J'ai aussi accès au ressource local de mon réseau.

    Comme le serveur est sur la passerelle pas besoin de masquering pour ce promener sur le lan

    • [^] # Re: pfsense, opensense ou autre routeur

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

      J'ai un routeur TP-link et du coup je me rends compte qu'il intègre de base un serveur OpenVPN avec effectivement la possibilité d'un accès limité au réseau local ou l'accès au réseau local et à internet !
      C'est pas grave au moins j'ai appris à configurer un serveur VPN :-)

      https://www.funix.org mettez un manchot dans votre PC

      • [^] # Re: pfsense, opensense ou autre routeur

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

        Si tu as de la chance, ton TP-Link est supporté par OpenWRT, et là ça devient carrément chouette ;).

        • [^] # Re: pfsense, opensense ou autre routeur

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

          Je ne sais pas comment a évolué OpenWRT ces dernières années, mais à l'époque, sur mon WRT, je trouvais ça un peu trop bricolage, avec les modifs avec dans des fichiers de config… Depuis, j'ai un TP-Link supporté, mais je ne suis pas chaud du tout. Je veux juste un cliquodrôme, sans prise de tête. Si je pouvais plutôt installer pfSense…

          • [^] # Re: pfsense, opensense ou autre routeur

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

            Ça a pas mal évolué, quand même. L'interface Web permet de faire des trucs assez poussés, mais pouvoir aller taper dans les fichiers de config reste un avantage pour moi. La documentation a aussi été améliorée, je crois grâce au détour par LEDE.

            En tout cas entre la première Kamikaze que j'ai installée (vers 2010 je crois) et la v18 (qui date de presque 2 ans maintenant, il y a une vraie différence.

  • # pourquoi openvpn ?

    Posté par  (site Web personnel) . Évalué à 7 (+6/-0).

    Bonjour
    Depuis quelques temps, on parle beaucoup de wireguard, comme une solution plus simple à installer/configurer. Je voudrais savoir si tu l'as envisagé, et pourquoi tu es parti sur openvpn ?

    • [^] # Re: pourquoi openvpn ?

      Posté par  (site Web personnel) . Évalué à 3 (+1/-0). Dernière modification le 25/07/21 à 16:30.

      A vrai dire, j'ai fait preuve de paresse et j'ai pas beaucoup cherché et je me suis tourné d'emblée vers la référence dans le domaine, mais je vois qu'il y a une dépêche sur wireguard en cours de préparation, sûrement l'occasion de découvrir cet outil.

      https://www.funix.org mettez un manchot dans votre PC

      • [^] # Re: pourquoi openvpn ?

        Posté par  (site Web personnel) . Évalué à 5 (+3/-0). Dernière modification le 26/07/21 à 15:35.

        [Mavie]
        De mon coté j'ai installé un serveur VPN Wireguard avec PiVPN sur un VPS que je loue, un serveur de mon réseau local est branché sur le VPN, et ca me permet d'accéder à mon réseau local depuis n'importe quelle machine, pourvu qu'elle soit connectée au VPN. L'avantage est quand je suis hors de chez moi, je peux accéder à mon réseau, mais je n'ai plus de serveur ssh ouvert sur le monde, ca calme les logs…

        Le client wireguard pour android juste marche, et sur mon laptop j'utilise deux fichiers de config wireguard avec la même clé:
        - un où le VPN est full: tout mon flux réseau passe par le VPN, le DNS est changé, etc.
        - un où le VPN ne me permet que d'accéder aux machines connectées sur le VPN, le reste du traffic réseau passe par la connexion internet normale

        D'un point de vue hyper pas objectif, OpenVPN m'avait rebuté parce que je trouvais la configuration pas facile, mais à sa décharge, PiVPN le supporte aussi, donc ca doit être faisable finalement.

        Par contre, wireguard dans PiVPN m'a agréablement surpris par le coté juste marche
        [/Mavie]

  • # petite question au passage

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

    Salut Funix,
    Je m'incruste dans ton journal pour poser une question qui me trotte dans la tête depuis un moment. Avec un peu de chances l'un d'entre vous saura la réponse.

    Je connecte mon ordinateur portable sur le réseau du boulot via un VPN, principalement pour accéder à des partages Samba, l'accès au reste d'Internet ne passant pas par le VPN.

    A l'heure actuelle, ça marche bien, le réseau d'entreprise ayant des IP en 10.x.x.x et mon réseau 192.168.0.x, le système arrive facilement à router les paquets vers la bonne interface

    Qu'est-ce qu'il se passerait si je me trouvait dans un hôtel où les IP seraient également en 10.x.x.x ?
    Est-ce que vous savez si quelque chose est prévu pour gérer ce cas ?

    Les vrais naviguent en -42

    • [^] # Re: petite question au passage

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

      De mémoire, ça dépend de la configuration de ton client OpenVPN (les routes définies). Ceci dit, je vois mal pourquoi un hôtel sensé aurait un réseau de cette taille, sinon faut espérer que les sous-réseaux ne se recoupent pas.

    • [^] # Re: petite question au passage

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

      ça m'est arrivé dans un hotel ! Et c'est super pénible ! La solution que j'avais mise en place était d'ajouter sur le client une route plus spécifique vers le tunnel et surtout sa gateway.

      Sinon, une solution possible en entreprise pour les VPNs "pérenne" est d'utiliser des NATs des deux côtés du tunnel quand tu veux relier des réseaux qui ont le même plan d'adressage. Pas hyper confortable mais ça fonctionne.

      • [^] # Re: petite question au passage

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

        c'est une question que je me pose quand le réseau du client sera différent suivant l'accès internet, je crains d'avoir à modifier la config du serveur à chaque fois.

        https://www.funix.org mettez un manchot dans votre PC

    • [^] # Re: petite question au passage

      Posté par  . Évalué à 5 (+3/-0). Dernière modification le 25/07/21 à 16:56.

      En fait, les directives push-route te permettent de définir les routes que tu veux, souvent pour un network mais ca fonctionne pour une machine. Ca permet par exemple sur un reseau de meme radical de pousser juste la route vers la machine que tu veux atteindre.

      Evidemment si tu as une machine avec la meme ip sur ton lan, ca ne marchera pas, mais ca réduit les cas conflictuels.

      Perso je change également systématiquement la plage IP du tunnel (10.8 par defaut).

      Dans le cas où effectivement la gateway de ton hotel est identique à l'ip de ton tunnel vpn, c'est…. dommage :D

    • [^] # Re: petite question au passage

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

      merci pour vos réponses,

      De ce que j'ai pu lire de vos réponses, si le problème arrive ça va être la grosse-grosse merde et à part faire quelques hacks il n'y a pas grand chose à faire. C'est toujours mieux de le savoir d'avance.

      Sinon, pour l'exemple de l'hôtel, c'était avant tout pour mentionner un réseau sur lequel je n'aurai pas du tout la main (genre vas-y pointe-toi à l'accueil de l'hôtel en leur disant qu'il faut changer de sous-réseau…). des trucs qui peuvent arriver (change hôtel par gros client et ça fait pareil).

      Les vrais naviguent en -42

      • [^] # Re: petite question au passage

        Posté par  (site Web personnel) . Évalué à 3 (+1/-0).

        Est-ce que tu as aussi des adresses ipv6 sur ton réseau ?

        Je ne suis pas sûr que tu puisses rendre accessible ton réseau ipv6 via openvpn si le réseau de l'hôtel est en ipv4.

        Si c'est possible de rendre le réseau ipv6 accessible, alors le conflit d'adresse n'existera probablement pas.

        Je dis "probablement", parce qu'il est aussi possible d'utiliser des plages d'adresses privées en ipv6 et que l'hôtel pourrait aussi utiliser la même (mais avec beaucoup moins de probabilité) :)

        • [^] # Re: petite question au passage

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

          Est-ce que tu as aussi des adresses ipv6 sur ton réseau ?

          J'ai honte.
          Je n'ai juste jamais manipulé des IPv6.

          D'accord tous ces problèmes ne ne poseraient pas dans ce cas. mais bon on reste confronté au principe de réalité.

          Sinon pour rappel, la question était théorique, dans la pratique je n'ai jamais eu le problème, j'essaie juste d'anticiper.
          Du genre la prochaine fois que j'ai un souci, ça peut me donner une piste de recherche.

          Les vrais naviguent en -42

        • [^] # Re: petite question au passage

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

          Et au passage, je n'aurais pas été surpris de recevoir une réponse du genre :

          T'inquiète pas c'est un cas prévu et dans ce cas ça se passe comme ça….:…

          Pour le coup ça fait 2-3 ans que la question me tourne dans la tête, mais bon voilà ouvrir un thread sur le forum c'est trop compliqué

          Les vrais naviguent en -42

  • # IKE

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

    Je sens que ma question va avoir l'air conne mais y a que moi qui essaye de monter des VPN IKEv2/IPSec ?
    Bon,ok, j'avoue que c'est moins trivial que OpenVPN.. :)

    • [^] # Re: IKE

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

      J'ai des tunnels IPsec au taf (en plus de VPNs à base de TCP+SSL), et j'avoue que j'ai pas trop compris l'intérêt d'avoir des phases et tout ce bazar un peu compliqué.

      Ça ressemble vraiment à un truc overengineered. Quelqu'un saurait dire en quoi ça fait mieux le café qu'un autre protocole ? C'est plus interopérable ?

      • [^] # Re: IKE

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

        IPSec a l'avantage d'être (plus ou moins) standardisé. C'est assez utilisé pour faire des tunnels VPN de site à site parce que ça permet de ne pas avoir besoin de la même marque de passerelle VPN des deux côtés. Et pour Linux, c'est le kernel qui chaque l'encapsulation et le chiffrement, c'est beaucoup plus performant qu'OpenVPN (wireguard se fait aussi dans le kernel). IPSec permet aussi d'utiliser de l'authentification par certificat, ce qui évite de devoir faire transiter un mot de passe entre plusieurs équipes (même si en pratique, j'ai plus souvent vu des passphrases utilisées). En résumé, IPSec est quasiment le seul protocole de VPN chiffré si tu veux utiliser un routeur Cisco d'un côté et un Juniper de l'autre côté.

        Après, IPSec a été effectivement créé avec de la modularité en tête. Ce qui fait, que même si c'est standardisé, ce n'est pas toujours facile d'avoir deux endpoints qui discutent entre eux. Et quand on parle d'IPSec, il y a en fait IPSec qui est le protocole d'encapsulation et IKE(v2) qui permet de négocier le chiffrement. Et c'est souvent ce dernier qui pose problème https://en.wikipedia.org/wiki/Internet_Key_Exchange#Problems_with_IKE

        « Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche

        • [^] # Re: IKE

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

          Merci Xavier, c'est hyper clair !

          J'avais essayé de monter un tunnel entre un Fortigate et une Livebox pro (en mode "cisco" de mémoire), et en effet la phase 2 ne montait jamais :(. Finalement j'ai pris un second (petit) Fortigate et ça fonctionne très bien.

  • # Zerotier et Tailscale

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

    Deux solutions de VPN Layer2 qui peuvent être envisagées:
    - https://www.zerotier.com/
    - https://tailscale.com/

    J'utilise ZeroTier comme backdoor sur des routeurs 4G Teltonika chez certains clients par exemple.
    Je l'utilise également pour organiser des LAN.
    C'est trés simple et rapide à mettre en place.
    C'est supporté sur Linux, Windows, MAC, opnsense….

    • [^] # Re: Zerotier et Tailscale

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

      Deux solutions de VPN Layer2

      Tu pourrais expliquer ce que c'est en 2 mots ? Et OpenVPN, c'est layer quoi ?

      Merci :)

      En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

      • [^] # Re: Zerotier et Tailscale

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

        Ce sont des VPN qui virtualisent la couche 2 du modèle OSI. Techniquement ça permet de faire passer autre chose que de l'IP. OpenVPN est sur la layer 3 je présume.

        Après je suis pas certain que grand monde ai besoin de layer 2 (pour router des protocoles ss7 (les télécom) ?).

        • [^] # Re: Zerotier et Tailscale

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

          En effet, ça permet d'encapsuler le protocole Ethernet.
          OpenVPN peut encapsuler IP via les interfaces de type TUN (configuration par défaut), et Ethernet via les interfaces de type TAP (configuration spécifique).

          Dans ce contexte-ci, l'avantage des deux solutions précitées est leur facilité de mise en œuvre.

          L'avantage d'une solution VPN encapsulant Ethernet est de permettre l'utilisation de services (mal)conçus pour ne fonctionner que dans le même réseau.
          Mon cas d'usage est de permettre à mes amis de venir jouer sur mon serveur local de Battlefield2, SWAT4…
          Un autre cas d'usage est de pouvoir utiliser le WakeOnLAN sans passer par un bastion.

          • [^] # Re: Zerotier et Tailscale

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

            Merci à tous les deux, c'est bcp plus clair !

            En théorie, la théorie et la pratique c'est pareil. En pratique c'est pas vrai.

Envoyer un commentaire

Suivre le flux des commentaires

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