Sécurité

Configuration du serveur VPN WireGuard dans pfSense 2.5.0

WireGuard VPN est un nouveau protocole robuste et très rapide pour créer des réseaux privés virtuels, dans RedesZone, nous avons vérifié comment il est capable de doubler et même de tripler OpenVPN ou IPsec en vitesse. Ce nouveau protocole VPN est idéal pour les configurations d’accès à distance avec des clients mobiles, qu’ils soient smartphones, tablettes ou ordinateurs portables, car il consomme très peu de ressources et la connexion est très rapide. Le système d’exploitation pfSense en version 2.5.0 a officiellement intégré ce nouveau VPN, ainsi que IPsec, L2TP et également OpenVPN. Aujourd’hui, nous allons vous montrer comment configurer le VPN WireGuard à partir de zéro dans pfSense 2.5.0 pour se connecter à distance.

Fonctionnalités VPN WireGuard

WireGuard VPN est un logiciel très léger qui nous permettra de configurer rapidement et facilement un tunnel VPN, par défaut, il utilise la cryptographie la plus moderne, sans avoir besoin de choisir différents algorithmes de cryptage asymétrique, asymétrique ou de hachage, par défaut nous avons une suite sécurisée par défaut, contrairement aux autres protocoles VPN. L’objectif de WireGuard est de devenir le meilleur VPN pour les utilisateurs domestiques et professionnels, et il réussit car il a déjà été intégré au noyau Linux pour nous fournir les meilleures performances possibles.

Concernant la cryptographie utilisée, nous avons ChaCha20 pour le cryptage symétrique, authentifié avec Poly1305 , nous avons donc AEAD. Il utilise également Curve25519 pour ECDH, BLAKE2 pour le hachage, SipHash24 pour les clés de table de hachage et HKDF pour la dérivation de clé. Comme vous l’avez vu, nous avons les algorithmes cryptographiques les plus modernes utilisés par défaut, et nous ne pourrons pas les changer pour les autres pour le moment, ils doivent être ceux-ci oui ou oui.

Avec ce nouveau VPN nous n’aurons pas besoin de gérer les connexions ou de faire des configurations difficiles, il ne fonctionne qu’en mode tunnel car c’est un VPN L3, et il utilise le protocole UDP comme couche de transport et ne permet pas de sélectionner TCP, ce que nous peut faire est de modifier le port d’écoute pour qui nous voulons. Bien entendu, le serveur WireGuard peut être derrière le NAT sans problème, seule une redirection de port devra être effectuée. D’autres fonctionnalités intéressantes sont qu’il permet l’itinérance entre les réseaux rapidement et facilement, pour être toujours connecté à partir de n’importe quel réseau WiFi ou 4G / LTE sans interrompre la connexion. De plus, nous pouvons également activer le Kill-Switch pour empêcher les fuites de données si le VPN tombe en panne.

Enfin, ce nouveau VPN est compatible avec plusieurs systèmes d’exploitation tels que Windows, Linux, MacOS, FreeBSD, Android, mais aussi iOS . Maintenant, l’équipe de développement de pfSense 2.5.0 a incorporé WireGuard dans son système par défaut, bien qu’auparavant nous pouvions également l’installer, mais nous n’avions pas de support officiel.

Configuration du serveur VPN WireGuard

Avant la sortie de pfSense 2.5.0, si nous voulions avoir WireGuard dans ce pare-feu complet, nous devions l’installer manuellement sur le système en téléchargeant des packages compatibles FreeBSD. Grâce à l’équipe de développement de pfSense, à partir de la version 2.5.0, il est déjà intégré par défaut dans l’interface utilisateur graphique.

La première chose que nous devons faire est d’aller dans la section » VPN / WireGuard » pour entrer dans la configuration de ce nouveau protocole VPN. Dès que nous entrons dans le menu, nous cliquons sur « Ajouter un tunnel ».

Dans la configuration du tunnel, il faut activer le tunnel, lui donner une description et mettre les éléments suivants :

  • Adresse : Adresse IPv4 ou IPv6 du serveur VPN pour l’interface du tunnel.
  • Port : par défaut, c’est 51820 UDP, mais nous pouvons changer pour n’importe quel port UDP.

pfSense intègre un générateur de clé publique/privée pour le serveur VPN avec WireGuard, notre recommandation est que vous génériez des clés pour le client VPN, et que l’on clique à nouveau sur « Générer » pour que les secondes qui soient générées soient celles du VPN serveur. Par exemple, les clés suivantes sont celles que nous utiliserons plus tard dans le client VPN. Vous pouvez vous aider d’un bloc-notes ou d’un Bloc-notes ++ pour enregistrer la configuration.

Pour vous faciliter la configuration de WireGuard avec les clés publiques et privées, vous pouvez également utiliser l’ outil wireguardconfig qui nous permettra de générer automatiquement à la fois le serveur et les clients, pour l’adapter ultérieurement à pfSense.

Et les seconds générés sont ceux du serveur VPN lui-même avec WireGuard.

Une fois que nous avons les clés, nous devons cliquer sur «Enregistrer» et nous aurons créé le serveur VPN avec la configuration précédente :

Une fois que nous l’avons, nous devons maintenant enregistrer les «pairs», c’est-à-dire les clients VPN. On revient à la configuration du serveur WireGuard, et on clique sur «Ajouter un pair» qui est en vert. Ici, nous devrons remplir certaines configurations, mais il n’est pas nécessaire de toutes les remplir.

Nous allons maintenant expliquer à quoi sert chacune des options :

  • Description : nous mettons une description à ce client, par exemple, notre nom.
  • Endpoint : on met l’adresse IP publique du client VPN.
  • Port du point de terminaison : nous mettons le port du client VPN.

Si vous allez configurer un client VPN, où l’IP publique et le port du client changent, alors nous devons laisser les options «Endpoint» et «Endpoint Port» vides . Ces options doivent être renseignées si nous allons configurer un VPN Site-to-Site, mais en accès distant (Roadwarrior) il n’est pas nécessaire de les remplir.

  • Keep Alive : une valeur en secondes, de temps en temps elle vérifie que le tunnel est toujours actif, par défaut il est désactivé.

Viennent maintenant les paramètres les plus importants :

  • Clé publique : nous devrons mettre la clé publique du client VPN, vous avez vu précédemment comment elle est générée pour le client, car ici nous mettrons la clé publique.
  • IPs autorisées : si on veut une redirection Internet et un accès à tous les réseaux, on met 0.0.0.0/0. La chose la plus normale est que les clients VPN d’accès à distance accèdent à Internet via le VPN lui-même, mais ici, nous pouvons configurer un accès spécifique à différents réseaux.
  • Peer WireGuard Address : l’adresse IP de l’homologue enregistré.
  • Clé pré-partagée : en option, vous pouvez ajouter une clé pré-partagée pour renforcer encore la sécurité.

Dans notre cas, nous n’avons pas mis de clé pré-partagée, mais si vous la mettez, à la fois dans le pfSense et dans le client VPN, elle doit être exactement la même, et nous devons générer cette clé avec le bouton bleu qui vient dans le pfSense. On ne peut pas mettre la clé pré-partagée «12345678» par exemple, il faut utiliser le générateur pfSense.

Une fois que nous avons correctement configuré le serveur VPN WireGuard dans pfSense 2.5.0, nous allons configurer la partie pare-feu, car par défaut il est toujours en mode tout bloquer.

Configuration du pare-feu sur WAN et WireGuard

Avant de connecter le premier client VPN, il faut aller dans « Firewall / Rules » et ajouter une nouvelle règle sur l’interface Internet WAN. Nous ajoutons une nouvelle règle avec les informations suivantes :

  • Action : Passer
  • Interface : WAN
  • Famille d’adresses : IPv4, IPv6 ou les deux
  • Protocole : UDP
  • Source : quelconque (si vous envisagez de configurer un site à site avec WireGuard, vous pouvez mettre l’adresse IP publique source ici pour améliorer la sécurité).
  • Destination : Adresse WAN sur le port 51820

Une fois configuré, cliquez sur «Enregistrer» pour enregistrer cette règle, et appliquer les modifications, comme toujours lorsque nous ajoutons une nouvelle règle au pare-feu.

Une fois cela fait, il faut maintenant aller dans l’ interface « WireGuard » qui s’est créée automatiquement dans la rubrique « Firewall / Rules », ici il va falloir autoriser toutes les communications une fois qu’il a été connecté, ou seulement ce que l’on veut, juste comme OpenVPN ou IPsec.

Dans la configuration suivante, vous pouvez voir que nous avons une règle avec la configuration suivante :

  • Action : Passer
  • Interface : WireGuard
  • Famille d’adresses : IPv4, IPv6 ou les deux
  • Protocole : Tout
  • Source : n’importe lequel
  • Destination : toute

Nous cliquons sur «Enregistrer» et appliquons les modifications, comme d’habitude. À ce stade, nous sommes prêts à configurer les clients VPN avec WireGuard.

Configurer les clients VPN WireGuard et se connecter à pfSense

La configuration des clients VPN avec WireGuard est la même sur toutes les plateformes, nous aurons besoin exactement des mêmes informations. Dans notre cas, nous avons utilisé un smartphone Android, vous pouvez télécharger l’application officielle WireGuard pour Android et iOS ci-dessous :

WireGuard
Développeur : équipe de développement WireGuard

WireGuard
Développeur : équipe de développement WireGuard

Mais nous l’avons aussi pour d’autres systèmes d’exploitation comme Windows, directement depuis le site officiel de ce protocole VPN. Une fois que nous l’aurons installé, nous pourrons configurer le client facilement.

Comme nous l’avons déjà dit, notre recommandation est que, lors de la génération des clés dans pfSense, vous copiez ces clés dans un bloc-notes, à la fois la clé publique et la clé privée. De plus, vous devez également copier la clé publique du serveur. Une fois cela fait, nous ouvrons WireGuard et procédons à l’ajout d’un nouveau tunnel VPN, nous avons trois options :

  • Importez toute la configuration à partir d’un fichier, si vous allez configurer plusieurs clients tels que Windows, Linux etc, il est normal d’avoir un modèle avec les différentes configurations.
  • Scan à partir du code QR : si nous utilisons l’outil WireGuardConfig, nous pouvons le faire facilement.
  • Créer à partir de zéro : c’est l’option que nous avons choisie.

Lors de l’ajout d’un nouveau VPN, il faut remplir tout ou presque toutes les informations qu’il nous demande, il s’agit du client VPN :

  • Nom : nous mettrons une description du tunnel VPN, un nom descriptif au cas où nous en aurions plusieurs.
  • Clé privée : on met la clé privée que l’on a préalablement copiée depuis le bloc-notes.
  • Clé publique : lors de la saisie de la clé privée, elle est générée automatiquement
  • Adresses : l’IPv4 ou l’IPv6 du client, dans ce cas, nous avons préalablement configuré 10.9.0.2/32, nous mettons ceci.
  • Port : nous le laissons vide
  • Serveurs DNS : on peut mettre un serveur DNS spécifique, ou directement qui résout le tunnel.
  • MTU : nous le laissons vide.

Maintenant, nous cliquons sur ajouter une paire, et plus de configurations seront affichées, ces configurations sont celles du serveur VPN.

  • Pairs – La clé publique du serveur VPN.
  • Clé pré-partagée : si nous n’avons pas configuré, nous la laissons vide, si nous avons configuré nous la copions exactement de la même manière.
  • Entretien persistant : garder en vie, il est recommandé de le laisser vide.
  • Dernier point : il faut mettre la syntaxe «IP:port», donc, on peut mettre : «vpn.redeszone.net:51820».
  • IPs autorisées : si on veut toutes les mettre, on met 0.0.0.0/0. Nous avons également un bouton pour exclure les IP privées.

Une fois que nous l’avons fait, nous cliquons sur enregistrer, et nous pourrons voir tous les paramètres effectués.

Une fois ajouté et vérifié que tout est correct, nous procédons à la connexion et nous verrons qu’il y a échange de trafic et que le VPN fonctionne parfaitement.

Si nous n’avons reçu aucun paquet, cela signifie qu’il y a quelque chose qui ne va pas et que le tunnel VPN WireGuard n’a pas été établi correctement. Si cela vous arrive, vous devrez revoir toute la configuration effectuée et vérifier les journaux pfSense pour voir ce qui se passe.

Configuration des clients VPN sous Windows

Pour ajouter plus de clients VPN, allez simplement sur le serveur VPN WireGuard et cliquez sur «Ajouter un pair». A chaque client VPN que l’on souhaite connecter, il est nécessaire de configurer un nouveau «Peer» avec une nouvelle configuration de clés publiques/privées et son adresse IP correspondante.

Comme nous l’avons fait auparavant, à partir du client VPN WireGuard pour Windows, nous pouvons générer de nouvelles clés ou en utilisant l’utilitaire que nous avons fourni précédemment. Dans PfSense, tout ce que nous avons à faire est de mettre la description, la clé publique que nous avons générée dans le client, les «AllowedIPs» avec l’adresse IP du client, l’adresse IP du pair et la Preshared-Key en option.

Dans les dernières versions de Windows 10, il semble y avoir une sorte de problème avec le client officiel WireGuard. Nous avons essayé d’effectuer la même configuration que dans le client Android, et cela n’établit pas le tunnel si nous mettons «AllowedIPs = 0.0.0.0/0» pour rediriger tout le trafic via le tunnel, uniquement si nous mettons «AllowedIPs = 10.9 .0.0 / 24 » établit la connexion mais uniquement à l’intérieur du tunnel, nous n’avons pas de connectivité Internet via WireGuard.

La solution consiste à télécharger le programme TunSafe basé sur WireGuard, à l’installer et à importer le fichier de configuration WireGuard que nous avons dans le client officiel, ou à le modifier dans un fichier texte avec la même syntaxe que toujours :

Une fois que nous avons le fichier .conf, nous l’importons dans le programme et nous pouvons nous connecter à notre serveur VPN avec WireGuard sans aucun problème, avec une redirection totale du trafic pour naviguer en toute sécurité, nous pouvons maintenant configurer correctement « AllowedIPs = 0.0.0.0 / 0 » et il établira le tunnel correctement.

TunSafe intègre plus d’options de configuration que le client officiel, telles que la politique de kill-switch basée sur les routes et le pare-feu ou les deux, et même si nous voulons l’avoir en tant que service dans le système d’exploitation Windows, nous aurons également différents types de configuration, à choisir celui qui convient le mieux à nos besoins.

Nous espérons qu’avec ce tutoriel vous avez pu configurer le serveur VPN WireGuard sur votre magnifique pfSense 2.5.0 et avec les systèmes d’exploitation Windows 10 et Android.

Articles Similaires

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba