Sécurité

Configurez un serveur VPN L2TP / IPsec dans pfSense pour une navigation sécurisée

Le système d’exploitation orienté pare-feu pfSense dispose de plusieurs protocoles VPN pour établir des serveurs VPN d’accès à distance ainsi que des tunnels VPN de site à site. L2TP / IPsec est un VPN très populaire qui permet aux clients VPN distants tels que les ordinateurs, les smartphones et les tablettes, de se connecter au réseau local professionnel ou domestique en toute sécurité. L2TP sera en charge d’établir le tunnel, et le protocole IPsec sera en charge d’assurer la confidentialité, l’authentification et l’intégrité de toutes les données transmises. Aujourd’hui, dans RedesZone, nous allons expliquer étape par étape comment configurer le serveur VPN L2TP / IPsec pour se connecter à distance.

A quoi sert un serveur VPN L2TP / IPsec ?

Un serveur VPN dans notre pfSense nous permettra d’accéder à distance aux différents sous-réseaux que nous avons configurés, il nous permettra également de rediriger tout le trafic Internet vers le serveur VPN pour aller sur Internet à travers celui-ci. Grâce à la configuration d’un serveur VPN, nous pourrons nous connecter à un réseau non sécurisé de manière sécurisée, car tout le trafic de l’origine au serveur VPN est crypté et authentifié.

L2TP (Layer 2 Tunneling Protocol) est l’un des protocoles VPN les plus utilisés, il utilise le protocole PPP pour connecter les différents liens, il inclut également des mécanismes d’authentification PPP tels que PAP et CHAP, en plus de supporter l’utilisation de serveurs RADIUS. pour l’authentification des clients. Ce type de protocole VPN est multiprotocole et permet d’accéder à des réseaux locaux distants. La partie négative est qu’il ne présente pas une cryptographie robuste, par conséquent, il n’est pas sûr de l’utiliser. Il permet uniquement l’authentification entre les extrémités du tunnel, mais pas pour chacun des paquets qui le traversent, il en va de même avec l’intégrité des paquets, elle n’est pas vérifiée. De plus, L2TP ne crypte pas le trafic de la source à la destination.

Avec tout cela à l’esprit, l’organisation IETF a pris la décision d’utiliser les protocoles cryptographiques d’IPsec en conjonction avec L2TP, pour fournir les fonctionnalités de confidentialité, d’authentification et d’intégrité du tunnel L2TP. Pour cette raison, nous trouverons toujours ce protocole écrit sous la forme «L2TP/IPsec» dans les systèmes d’exploitation, car il utilise les deux protocoles simultanément.

Une fois que nous aurons un résumé du fonctionnement des deux protocoles VPN, nous procéderons à la configuration. En ayant deux protocoles à configurer, L2TP et IPsec, nous allons clairement diviser la configuration en deux parties.

Configuration du protocole L2TP

La première chose que nous devons faire est de configurer le protocole L2TP, pour cela, nous allons dans la section «VPN / L2TP», et le configurer comme suit :

  • Activer L2TP

    • Activer le serveur L2TP : activé
  • Configuration

    • Interface : WAN
    • Adresse du serveur : 192.168.100.1 ; Il faut mettre un sous-réseau qui n’est pas utilisé, et qui ne sert qu’à l’utiliser comme passerelle client
    • Plage d’adresses distantes : 192.168.100.128/25 ; Nous donnons un sous-réseau local aux clients connectés.
    • Nombre d’utilisateurs L2TP : 10, cela peut être configuré en fonction de l’utilisateur.
    • Secret : 1234clavel2tp ; Nous pouvons mettre un mot de passe, il est conseillé de le mettre, bien que certains clients ne l’exigent pas. Cela dépend de la configuration.
    • Type d’authentification : CHAP
    • Serveur DNS L2TP Primaire / Secondaire : nous pouvons mettre un serveur DNS pour les clients

Une fois que nous l’avons configuré et cliqué sur « Enregistrer », nous allons dans la section « Utilisateurs » et créons un nom d’utilisateur et un mot de passe pour y accéder. C’est là que nous devrons enregistrer tous les utilisateurs du serveur VPN auquel ils vont se connecter, la partie adresse IP peut être laissée vide sans configurer, afin que le serveur attribue l’IP de manière dynamique.

Une fois le serveur L2TP configuré, nous pouvons configurer le protocole IPsec.

Configuration du protocole IPsec

Pour configurer le protocole IPsec avec le protocole L2TP, nous devrons effectuer un total de trois actions. La première consiste à activer les «Mobile Clients», c’est-à-dire le VPN d’accès à distance. La seconde consiste à activer IPsec phase 1, puis à configurer IPsec phase 2.

Configurer les « Clients mobiles »

C’est l’une des parties les plus importantes, car si nous allons dans la section «Tunnels», nous créons un tunnel VPN de site à site, et ce que nous voulons faire avec IPsec, c’est configurer un VPN d’accès distant pour que les différents clients.

Dans ce menu, nous activons «Activer la prise en charge du client mobile IPsec» et choisissons «Base de données locale» bien que nous l’utilisions car c’est pour l’authentification xAuth. Nous cliquons sur enregistrer.

Dès que nous cliquons sur « Enregistrer », nous devrons également cliquer sur « Appliquer les modifications », puis cliquer sur le bouton vert qui indique « Créer la phase1 ».

Configurer IPsec Phase 1

Dans ce menu nous devrons configurer correctement le protocole IPsec pour l’utiliser avec L2TP, toutes les configurations ne fonctionneront pas, de plus, selon le client VPN utilisé (Android, iOS, Windows…) la configuration de sécurité peut changer, car tous les systèmes d’exploitation ne prennent pas en charge les meilleurs chiffrements VPN. Par défaut, nous verrons le menu suivant où IKEv2 nous a sélectionné, ce qui n’est pas compatible avec le protocole L2TP/IPsec que nous voulons configurer.

Les options que nous devons configurer pour fonctionner correctement sont les suivantes :

  • Informations générales

    • Version Key Exchange : IKEv1, si nous en sélectionnons une autre, cela ne fonctionnera pas.
    • Protocole Internet : IPv4 ou IPv6
    • Interface : Internet WAN
    • Description : nous mettons une description.
  • Proposition de Phase 1 (Authentification)

    • Méthode d’authentification : PSK mutuelle
    • Mode de négociation : agressif ; si nous sélectionnons «Principal», c’est plus sécurisé, mais c’est moins flexible, et nous pourrions empêcher le client VPN de se connecter correctement. Plus tard, si tout fonctionne avec «Aggresive», nous pourrons tester si avec «Main» cela fonctionne aussi.
    • Mon identifiant : nom distinctif de l’utilisateur – [email protected] ou ce que vous voulez.
  • Proposition de Phase 1 (Cryptage)

    • Algorithme de chiffrement : AES 128 bits, SHA1, DH Groupe 2 (1024 bits).

pfSense prend en charge un cryptage plus fort que celui que nous avons configuré, mais le problème, ce sont les clients VPN qui vont se connecter, qui ne prennent pas en charge une plus grande sécurité. Pour le configurer avec la meilleure sécurité, nous pouvons effectuer des tests sur la base des «propositions reçues» IPsec que nous recevons du client, de cette manière, nous choisirons le plus sécurisé de tous.

Le reste des options de configuration peut être laissé tel quel, avec les options par défaut.

Une fois terminé, cliquez sur «Enregistrer», et maintenant cela nous amènera au menu principal où nous avons tous les tunnels VPN avec IPsec, nous devons cliquer sur le seul créé et sur «Afficher les entrées de la phase 2» puis sur «Créer Phase 2» pour continuer.

Configurer IPsec Phase 2

Dans ce menu de configuration, nous devons mettre les éléments suivants :

  • Informations générales

    • Mode : transports
    • Description : une description que nous voulons.
  • Proposition de phase 2 (SA / échange de clés)

    • Protocole : ESP
    • Algorithmes de chiffrement : AES 128 bits
    • Algorithmes de hachage : nous sélectionnons SHA-1 et SHA-256
    • Groupe de clés PFS : désactivé, non pris en charge par le protocole.

Le reste des options de configuration peut être laissé par défaut.

Dans le menu principal de «IPsec / Tunnels», nous pouvons voir un résumé de tout ce que nous avons configuré.

Il va maintenant falloir aller dans la section «IPsec / Clés pré-partagées» et ajouter un nouvel identifiant.

Ce nouvel identifiant doit être :

  • Identifiant : allusers (doit être comme ceci, sans majuscule et sans autre nom)
  • Type de secret : PSK
  • Clé pré-partagée : le mot de passe que nous voulons, est partagé avec tous les utilisateurs qui vont se connecter.

Une fois cela fait, nous aurons le serveur L2TP / IPsec prêt à accepter les connexions, mais nous devons d’abord créer les règles correspondantes dans le pare-feu.

Ouvrir les ports dans le pare-feu pfSense

Nous devrons créer une règle dans la section « Firewall / Rules / WAN » avec les informations suivantes :

  • Action : Passer
  • Interface : WAN
  • Famille d’adresses : IPv4
  • Protocole : UDP
  • Source : n’importe lequel
  • Destination : Adresse WAN sur le port 1701 qui est L2TP.

Nous enregistrons et appliquons les modifications, en veillant à ce que cette règle soit respectée.

Lorsque nous créons un serveur VPN de type L2TP / IPsec, nous aurons deux onglets supplémentaires dans «Pare-feu / Règles», ici nous pouvons autoriser ou refuser le trafic vers certains sous-réseaux, définir différentes règles avancées, etc. Pour une première connexion et pour éviter d’éventuels échecs de configuration au niveau du firewall, nous vous recommandons de créer une règle «pass any any any» et d’appliquer les modifications. Plus tard, une fois la communication établie, si vous devez définir des règles différentes, vous pourrez éditer des règles plus spécifiques pour répondre à toutes vos exigences.

Une fois que nous aurons réussi à configurer le pare-feu, nous devrons configurer le client VPN pour tester la connexion.

Test de connexion

Dans notre cas, nous avons établi une connexion VPN avec un smartphone Android, plus précisément le Huawei P30 qui intègre un client PSK L2TP/IPsec. La configuration que nous devons effectuer est la suivante (nous ne pouvons pas mettre de capture car le système d’exploitation le détecte comme contenu privé).

  • Nom : nous donnons un nom au VPN
  • Type : L2TP/IPsec PSK
  • Serveur : domaine IP ou DDNS de votre serveur VPN
  • Secret L2TP : 1234clavel2tp ; la clé que nous mettons dans la section L2TP qui est partagée avec tous les clients.
  • Identifiant IPsec : [email protected]
  • Clé partagée IPsec initiale : 12345678 ; la clé que nous mettons pour l’identifiant « allusers » dans la section IPsec / Pre-Shares Key.

Nous cliquons sur enregistrer et nous connectons. Lors de la connexion, il nous demandera un nom d’utilisateur et un mot de passe, ces identifiants sont ceux que nous mettons dans « Utilisateurs L2TP ». Une fois cela fait, il nous connectera sans problème au serveur VPN et nous aurons accès à l’administration de pfSense et à n’importe quel réseau.

Comme vous l’avez vu, la connexion a été établie avec succès et il n’y a eu aucun problème.

Recommandations et astuces

Selon le client VPN que vous utilisez, la configuration du serveur peut varier. Par sécurité, il est toujours conseillé d’utiliser les meilleurs algorithmes cryptographiques, pour cette raison, nous recommandons de modifier les options de sécurité et de forcer les clients à toujours choisir les meilleurs, cependant, nous devons regarder les enregistrements IPsec pour voir quelle « proposition » a envoyé par différents clients lors de la connexion. Certains smartphones utilisent un client VPN L2TP / IPsec prenant en charge le dernier cryptage, mais d’autres modèles ne le permettent pas. Nous devrons essayer de choisir le plus sûr possible de manière globale, en équilibrant sécurité et convivialité.

Une autre astuce si vous allez utiliser L2TP / IPsec pour la première fois, est de savoir à l’avance quels clients vous allez connecter, Android, iOS, ordinateur Windows, etc., car la configuration peut être différente selon la façon dont le client est configuré en interne. Il est possible qu’ils ne puissent pas tous cohabiter en même temps, c’est pourquoi vous pouvez utiliser d’autres VPN comme OpenVPN ou IPsec xAuth entre autres.

Avec ce même tutoriel, vous pourrez configurer le L2TP / IPsec RSA, modifier le « Mutual PSK » pour « Mutual RSA » et configurer les certificats serveur et client correspondants. Nous vous montrerons comment faire prochainement. Cela entraîne également des complications, car si nous créons une autorité de certification avec un certificat client qui utilise les derniers algorithmes, il est possible qu’elle renvoie une erreur lorsque nous nous connectons car ils ne sont pas reconnus.

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