Configurez le serveur OpenVPN dans pfSense avec la meilleure sécurité

Le système d'exploitation pfSense, qui est orienté vers pare-feu et routeur, a plusieurs VPN protocoles pour interconnecter les sites via un VPN de site à site, et nous pouvons également configurer un VPN d'accès à distance pour interconnecter différents clients mobiles les uns avec les autres, et pour que tout le trafic Internet passe par le système d'exploitation lui-même. OpenVPN est l'un des logiciels les plus utilisés pour créer des réseaux privés virtuels, grâce à sa sécurité, sa flexibilité et son bon fonctionnement. Aujourd'hui, dans cet article, nous allons expliquer étape par étape comment configurer le serveur OpenVPN qui se trouve à l'intérieur de pfSense.

Configurer le serveur OpenVPN dans pfSense

Qu'est-ce que et à quoi sert OpenVPN intégré à pfSense?

OpenVPN est un logiciel qui nous permet de construire des réseaux privés virtuels, nous aurons un canal de contrôle où la levée du tunnel et la négociation des protocoles de chiffrement seront gérées, et nous aurons un canal de données où tout le trafic du tunnel sera crypté point à point. L'une des forces d'OpenVPN dans pfSense est que la grande majorité des options disponibles sont disponibles via une interface utilisateur graphique très intuitive, cela nous permettra de le configurer sans avoir besoin d'incorporer manuellement une directive dans le champ «options». Avancée. Le logiciel OpenVPN que nous avons intégré dans pfSense va nous permettre de créer et de configurer deux types d'architectures:

  • VPN d'accès à distance - À distance les clients se connecteront au serveur VPN pfSense et accèderont à Internet par notre intermédiaire. Ils pourront également accéder aux sous-réseaux que nous indiquons. Ce type de VPN s'adresse aux télétravailleurs, aux techniciens réseaux et systèmes, etc.
  • VPN de site à site : cette architecture nous permet d'intercommuniquer un site avec un autre, d'intercommuniquer différents sites via Internet et que tout le trafic est protégé point à point. Par exemple, avec ce type de VPN, nous pouvons communiquer avec les bureaux, le siège de l'entreprise, etc.

OpenVPN supports des dizaines de configurations différentes, à la fois pour améliorer les performances et la sécurité. pfSense permet différents types d'authentification, mais la plus recommandée est basée sur les certificats SSL / TLS pour garantir l'authenticité, la confidentialité et l'intégrité, et il n'est pas recommandé d'utiliser des clés pré-partagées. En plus d'intégrer l'authentification basée sur les certificats SSL / TLS, nous pourrions également intégrer une authentification supplémentaire avec nom d'utilisateur / mot de passe, d'avoir un système plus robuste. pfSense vous permet d'exporter la clé privée des certificats avec un mot de passe, de cette façon, d'être en mesure d'utiliser ces certificats, nous aurions également d'incorporer un autre mot de passe, sinon, ça ne marcherait pas.

Le serveur OpenVPN intégré à pfSense nous permettra de nous connecter à notre domicile ou de travailler à distance, rapidement et en toute sécurité, que le réseau soit filaire ou WiFi. Tout le trafic sera crypté de bout en bout depuis notre client OpenVPN (qui est installé sur un ordinateur, un smartphone ou une tablette) vers le serveur pfSense OpenVPN. Un détail très important est que le serveur OpenVPN doit être installé dans une connexion Internet en dehors de CG-NAT, et avec les règles du pare-feu ouvertes pour permettre la connexion, sinon, nous ne pourrons pas nous connecter via Internet.

Bien sûr, sur le serveur, nous pouvons ajouter différents sous-réseaux pour acheminer le trafic à travers les différents sous-réseaux que nous avons dans pfSense, et nous pouvons même configurer dans le pare-feu si nous voulons ou non autoriser ces accès à partir d'une adresse IP de serveur OpenVPN spécifique. Avec OpenVPN, nous avons deux façons de gérer les packages et comment ils fonctionnent au niveau de la couche de transport:

  • TUN : ce mode de fonctionnement permet l'encapsulation de tous les paquets qui y sont transportés sous forme de segments TCP ou de datagrammes UDP. Tous les clients recevront un nouveau sous-réseau spécifique, par défaut le sous-réseau OpenVPN est 10.8.0.0/24 mais nous pouvons configurer celui que nous voulons.
  • TAP : ce mode de fonctionnement simule une interface réseau Ethernet, il est également appelé pont, et ce tunnel virtuel encapsule directement les paquets Ethernet. Le mode de fonctionnement du pont est utile pour intercommuniquer facilement les utilisateurs distants, mais si le réseau privé source correspond à celui de destination, nous aurons un problème de routage et la communication ne fonctionnera pas.

Dans ce tutoriel pour configurer OpenVPN dans pfSense, nous utiliserons un sous-réseau virtuel 10.8.0.0/24 où nous aurons tous les clients VPN lors de leur connexion, il sera très facile d'identifier les différents clients VPN que nous avons connectés au réseau, de plus, nous pouvons «forcer» pour que chaque client avec un certificat spécifique ait toujours le même adresse IP privée du tunnel VPN.

Dans ce manuel, nous allons vous montrer comment créer une configuration OpenVPN très sécurisée dans pfSense, en personnalisant les algorithmes de cryptage symétrique, asymétrique et de hachage. De cette façon, nous pouvons avoir le meilleur cryptage possible des communications.

Résumé de la cryptographie à utiliser

  • Certificats numériques : OpenVPN permet l'utilisation de certificats numériques basés sur RSA ou aussi EC (courbes elliptiques) , nous utiliserons l'algorithme EC secp521r1, bien que nous en ayons beaucoup d'autres disponibles via la gestion des certificats pfSense. L'algorithme de hachage que nous utiliserons sera SHA512 , l'un des plus sûrs que nous pouvons actuellement utiliser. Tous les clients VPN de la version 2.4 doivent être compatibles avec cette configuration.Dans notre cas, le serveur et les clients utilisent OpenVPN 2.5 ou supérieur, il ne devrait donc y avoir aucun problème.
  • Canal de contrôle OpenVPN : nous utiliserons TLS 1.3 pour une sécurité maximale, et toujours en utilisant PFS (Perfect Forward Secrecy). Nous utiliserons les trois suites cryptographiques de TLS 1.3 pour établir la communication: TLS_AES_256_GCM_SHA384, TLS_CHACHA20_POLY1305_SHA256 et TLS_AES_128_GCM_SHA256. Si vous voulez vérifier si votre serveur ou client prend en charge ce type de chiffrement, vous devez mettre «openvpn –show-tls» dans la console.
  • Canal de données OpenVPN : nous utiliserons l'algorithme de cryptage symétrique AES-256-GCM, l'un des plus sécurisés actuellement et qui a été intégré dans OpenVPN 2.4 et versions ultérieures. Cependant, nous utiliserons également CHACHA20-POLY1305 et AES-128-GCM pour que le client VPN choisisse celui qu'il souhaite, en donnant la priorité au premier. Si vous voulez vérifier si votre serveur ou client prend en charge ces types de cryptage, vous devez mettre dans la console « OpenVPN -show-chiffrements ».

Pour définir dans le canal de données que nous voulons utiliser TLS 1.3, nous devrons utiliser la directive «tls-ciphersuites» au lieu du typique «tls-cipher» comme nous l'avons toujours utilisé. Ce serait comme suit:

tls-ciphersuites TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256:TLS_AES_128_GCM_SHA256

En plus de ces mesures de sécurité, nous inclurons une signature HMAC pour la première négociation TLS, cela nous permettra de protéger le serveur OpenVPN contre d'éventuelles attaques DoS. Si le client ne possède pas la signature HMAC correcte, il est automatiquement bloqué et ne procèdera pas à la vérification des certificats numériques. Nous utiliserons tls-crypt qui est disponible à partir d'OpenVPN 2.4 et versions ultérieures, pour avoir la meilleure sécurité car il nous permet d'authentifier et de crypter le canal afin que personne ne puisse capturer cette clé pré-partagée.

Enfin, nous utiliserons le protocole UDP au lieu de TCP, car il est plus résistant aux attaques par déni de service, il faut se rappeler que UDP est non connectif, peu fiable et orienté connexion. Cependant, nous pouvons utiliser TCP sans aucun problème pour fournir au VPN tous les avantages de ce protocole.

Installez le plugin OpenVPN Client pour générer la configuration

Bien que OpenVPN est installé par défaut dans pfSense, que ce soit dans son serveur ou en mode client, nous ne disposons pas d'un paquet pré-installé qui nous permet de générer automatiquement la configuration pour les clients. Si nous allons au gestionnaire de paquets dans «System / Package Manager» et nous allons à l'onglet «packages disponibles de nous installer le paquet«OpenVPN-client-export»qui nous permettra de réaliser précisément cette action, afin de faciliter grandement la configuration des clients, l'importation de la configuration du serveur avec leurs certificats numériques correspondants.

Une fois installés, nous serons prêts à passer à l'étape suivante, à savoir la création des certificats numériques.

Créez des certificats numériques dans pfSense lui-même

Pour configurer un serveur OpenVPN avec l'authentification «Accès à distance SSL / TLS», nous devons utiliser des certificats numériques. Nous devrons créer une autorité de certification (CA) avec laquelle signer les différents certificats, nous devons créer un certificat spécifique pour le serveur OpenVPN et le type de serveur, ainsi que tous les certificats numériques des clients VPN que nous voulons enregistrer .

Nous pouvons également créer une liste de révocation de certificats, si un certificat est compromis parce que nous l'avons perdu, nous pouvons l'annuler directement afin qu'il ne soit pas valide. Dans le cas où un utilisateur illégitime l'utilise, vous ne pourrez en aucun cas vous connecter à notre serveur VPN.

Créer l'autorité de certification (autorité de certification)

Dans la section «CA», il faut cliquer sur «Ajouter» pour créer une nouvelle autorité de certification, cela est essentiel pour que tous les certificats numériques fonctionnent correctement, à la fois le serveur et ceux des clients VPN qui vont être utilisés . relier. Dans ce menu, nous devons choisir les options suivantes:

  • Créer / modifier une autorité de certification
    • Nom descriptif: nous attribuons un nom descriptif à cette CA, ce que nous voulons.
    • Méthode: créez une autorité de certification interne.
  • Autorité de certification interne
    • Type de clé: ECDSA avec secp521r1 qui est compatible avec OpenVPN.
    • Algorithme de résumé: sha512
    • Jours à vie: 3650 (10 ans)
    • Nom commun: le CN doit être un nom descriptif, qui décrit de manière unique cette autorité de certification. Dans notre cas, nous n'avons qu'une autorité de certification pour OpenVPN, nous avons donc simplement mis «openvpn-ca»
    • Code de pays: aucun. Ce n'est plus nécessaire pour remplir les nouveaux certificats OpenVPN.

La configuration de l'autorité de certification serait la suivante:

Dans les différents menus, nous pouvons choisir d'autres options de configuration, comme l'importation d'une CA que nous avons déjà créée, ou la création d'une CA intermédiaire, nous allons créer une CA puis les certificats, sans utiliser de CA intermédiaire.

Nous pourrons également choisir entre RSA ou ECDSA, et même utiliser différentes longueurs de clé RSA et différents algorithmes EC pour créer l'AC. Dans "Digest algorithme", nous pouvons choisir différents algorithmes de hachage, les plus recommandés sont sha256, sha384 et sha512, vous ne devez jamais utiliser sha1 pour des raisons de sécurité.

Une fois l'autorité de certification créée, elle apparaîtra dans la liste des autorités de certification comme vous pouvez le voir ici:

Dans ce menu, nous pouvons voir le nombre de certificats qui lui sont associés, le CN, la validité du certificat et si nous avons actuellement cette CA en cours d'utilisation. Lorsque nous avons une autorité de certification ou un certificat en cours d'utilisation, nous ne pourrons pas le supprimer. Dans la section «Actions», nous pouvons éditer la description du certificat, exporter la clé publique de l'AC, la clé privée, renouveler l'AC et même supprimer l'AC que nous venons de créer.

Créer le certificat de serveur OpenVPN

Nous devons maintenant créer le certificat que le serveur OpenVPN intégré à pfSense utilisera. Nous allons dans la section «Certificats» et cliquons sur «Ajouter / Signer», nous aurons toujours un certificat préconfiguré dans pfSense car le protocole HTTPS l'utilise pour se connecter, sinon cela ne pourrait pas fonctionner. Ce certificat est créé automatiquement lorsque vous installez le système d'exploitation.

Le menu de création de certificat est très similaire au précédent, nous devrons choisir entre trois options:

  • Préparation:
    • Créez un certificat interne.
    • Importez un certificat existant.
    • Créez une demande de signature de certificat.
    • Signez une demande de signature de certificat.

Nous allons sélectionner la première option, créer un certificat interne.

Ensuite, nous devrons lui donner un nom descriptif, tout ce que nous voulons, et la configuration doit être la suivante:

  • Ajouter / signer un nouveau certificat
    • Méthode: créez une autorité de certification interne.
    • Nom descriptif: nous mettons un nom descriptif à ce certificat, ce que nous voulons.
  • Certificat interne
    • Autorité de certification: nous devons choisir la CA précédente que nous venons de créer à l'étape précédente.
    • Type de clé: ECDSA avec secp521r1 compatible avec OpenVPN. Le même que le CA.
    • Algorithme de résumé: sha512
    • Jours à vie: 3650 (10 ans)
    • Common nom: le CN doit être un nom descriptif, qui décrit clairement ce certificat de serveur. Dans notre cas, nous avons seulement un certificat de serveur, donc nous avons simplement indiqué OpenVPN-serveur.
    • Code de pays: aucun. Ce n'est plus nécessaire pour remplir les nouveaux certificats OpenVPN.

Si nous avons un certificat d'une durée de plus de 398 jours, il est possible que cela nous donne des erreurs sur certaines plateformes, c'est d'une manière générale, mais pas pour OpenVPN. Par conséquent, nous pouvons mettre la durée que nous voulons sans problèmes, cela ne nous donnera pas d'échec.

En bas, il faut choisir les options suivantes:

  • Attributs du certificat:
    • Type de certificat: certificat de serveur
    • Nom alternatif: nous pouvons le laisser sans rien, complètement vide.

Nous devons garder à l'esprit qu'en ce moment, nous configurons le certificat numérique pour le serveur OpenVPN, par conséquent, nous devons choisir «Certificat de serveur».

La section « Alternative Name » est couramment utilisé pour les certificats IPsec, mais nous ne l'utiliserons pas dans OpenVPN.

Une fois créé, nous le verrons dans la liste des certificats, en plus, nous pouvons également voir l'autorité de certification avec laquelle nous avons signé le certificat et s'il est de type serveur.

Ce certificat numérique pour le serveur est celui que nous devrons mettre lors de la configuration du serveur OpenVPN dans pfSense, nous devons très bien nous souvenir du nom que nous lui avons donné, car plus tard il nous prendra une liste avec tous les certificats.

Créer des certificats pour tous les clients

Pour créer un ou plusieurs certificats numériques pour les clients, nous devons effectuer exactement le même processus que pour le certificat de serveur.

  • Ajouter / signer un nouveau certificat
    • Méthode: créez une autorité de certification interne.
    • Nom descriptif: nous attribuons un nom descriptif à ce certificat client.
  • Certificat interne
    • Autorité de certification: nous devons choisir la CA précédente que nous avons créée dans la première étape.
    • Type de clé: ECDSA avec secp521r1 compatible avec OpenVPN. Le même que le CA.
    • Algorithme de résumé: sha512
    • Jours à vie: 3650 (10 ans)
    • Nom commun: le CN doit être un nom descriptif, qui décrit de manière unique ce certificat client. Dans notre cas, nous n'avons qu'un certificat client, nous avons donc simplement indiqué openvpn-client1.
    • Code de pays: aucun. Ce n'est plus nécessaire pour remplir les nouveaux certificats OpenVPN.

Dans la section «Attributs de certificat», nous devrons le configurer comme suit:

  • Attributs du certificat:
    • Type de certificat: certificat utilisateur
    • Nom alternatif: nous pouvons le laisser sans rien, complètement vide.

Une fois créé, nous pouvons voir la nouvelle liste des certificats créés dans pfSense.

Si nous cliquons sur modifier, la seule chose que nous pouvons faire est de modifier le nom descriptif, mais nous pouvons également exporter la clé privée avec une phrase de passe, si nous mettons un mot de passe, la clé privée elle-même sera cryptée avec AES-256-CBC vers protéger son contenu et, par conséquent, éviter que s'il tombe entre de mauvaises mains, ils puissent le lire et l'utiliser. C'est ce que nous avons utilisé pour exporter le certificat des clients, comme nous vous le montrerons plus tard.

Si nous voulons créer plus de certificats clients, nous pouvons le faire de la même manière, tout ce que nous avons à faire est de mettre une description différente et également un CN différent.

Une fois que nous avons fini de créer tous les certificats des clients qui vont se connecter au serveur OpenVPN, nous procédons à la configuration du serveur étape par étape.

Configurer le serveur OpenVPN avec toutes les options expliquées

Pour configurer le serveur OpenVPN, il suffit de se rendre dans le menu principal de pfSense, de cliquer sur la section «VPN» et de sélectionner « OpenVPN " .

Dans la section «OpenVPN», nous devons cliquer sur «Serveurs» et cliquer sur «Ajouter» pour ajouter un nouveau serveur OpenVPN.

Dans la configuration du serveur OpenVPN, nous devons choisir les options suivantes:

  • Informations générales:
    • Mode serveur: accès à distance (SSL / TLS)
    • Protocole: UDP
    • Mode de périphérique: tun
    • Interface WAN
    • Port local: 1194, par défaut c'est ce port, il est recommandé de le changer.
    • Description: nous mettons une description de ce serveur OpenVPN, car nous pouvons en créer plusieurs.

Dans la section «Protocole», nous avons différentes options de configuration, par défaut c'est «UDP sur IPv4 uniquement», car nous pouvons également utiliser TCP, et même TCP et UDP, et aussi pour les réseaux IPv6, si nous utilisons ce protocole. rapporter. Dans la section «Device Mode», nous pouvons choisir tun ou tap, comme nous l'avons expliqué précédemment, tun est au niveau de la couche 3, et tap est au niveau de la couche 2, avec ses forces et ses faiblesses. Dans la section «Interface», la chose la plus normale est d'utiliser le WAN, mais nous pouvons écouter avec ce serveur OpenVPN sur toutes les interfaces. Enfin, dans «Port local» on peut modifier le port TCP et / ou UDP que l'on veut, il est conseillé de ne pas utiliser le port par défaut qui est 1194.

Dans le " Paramètres cryptographiques », Nous pouvons tout configurer concernant les certificats numériques SSL / TLS, puis nous expliquons toutes les options:

  • Paramètres cryptographiques
    • Configuration TLS: nous activons l'utilisation d'une clé TLS, pour utiliser le tls-crypt, nous cliquons sur la génération automatique de la clé TLS. Lors de la sauvegarde des modifications, il apparaîtra si l'on veut utiliser «Authentification» ou aussi «Encryption», ce dernier est recommandé d'utiliser le nouveau tls-crypt au lieu de tls-auth que nous avions précédemment.
    • Autorité de certification homologue: nous sélectionnons l'autorité de certification que nous avons créée dans pfSense lui-même pour ce serveur OpenVPN.
    • Liste de révocation des certificats homologues: si nous créons une liste de révocation de certificats, nous la créons dans la section «Système> Cert.Manager» et sélectionnons ici la liste que nous avons créée précédemment.
    • Certificat de serveur: nous choisissons le serveur OpenVPN, dans notre cas, il s'agit de «OpenVPN_ServidorOVPN (Serveur: Oui)»
    • Longueur du paramètre DH: ECDH uniquement
    • ECDH Curve: nous choisissons secp521r1

Dans les "Données Chiffrement Négociation », nous l'activons, et nous choisissons les chiffrements symétriques que nous voulons utiliser pour le canal de données. Dans notre cas, nous en avons choisi un total de 3: AES-256-GCM, AES-128-GCM et aussi le nouveau CHACHA20-POLY1305 qu'ils ont récemment incorporé. Il faut aussi choisir un algorithme «Fallback» au cas où le client OpenVPN n'est pas compatible, dans ce cas on choisit AES-256-CBC, mais si vous voulez une sécurité maximale, nous vous recommandons de choisir AES-256-GCM pour le forcer à ne pas se connecter Si nous n'utilisons pas de cryptage fort, rien pour utiliser AES-256-CBC, s'il y a d'anciens clients, nous devons les mettre à jour.

Dans «Auth Digest Algorithm», nous choisirons SHA256 ou SHA512, des fonctions de hachage toujours sûres.

Dans la section «Crypto matériel»: si nous avons une accélération de chiffrement matériel, nous la choisirons ici pour que la connexion au VPN fonctionne plus rapidement, si nous ne l'avons pas ou ne voulons pas l'activer, nous laissons la valeur par défaut.

Dans «Certificate Depth», nous sélectionnons «One (Client + Server)».

Dans la section «Paramètres du tunnel», nous devrons configurer les options suivantes:

  • IPv4 Tunnel Network: nous mettrons le sous-réseau spécifique pour les clients OpenVPN, il doit s'agir d'un sous-réseau libre que nous n'avons pas utilisé auparavant. Dans notre cas, nous avons choisi 10.8.0.0/24 qui est la valeur par défaut de ce logiciel, mais nous pouvons utiliser n'importe quel sous-réseau.
  • Réseau tunnel IPv6: le même que dans IPv4, mais si vous utilisez des réseaux IPv6.
  • Rediriger la passerelle IPv4 et IPv6: si nous activons cette option, tout le trafic des clients OpenVPN passera par le serveur OpenVPN et aura accès à tous les sous-réseaux du système d'exploitation, nous pouvons bloquer l'accès à certains sous-réseaux via les options de configuration du pare-feu, mais les clients recevra l'itinéraire pour atteindre tous les sous-réseaux. Si nous allons faire un VPN Full-Tunnel, nous activons cette option, si nous allons utiliser Split-Tunnel, nous le désactiverons et nous devrons entrer dans les sous-réseaux auxquels nous voulons qu'ils aient accès ci-dessous.
  • Connexions simultanées: 10, c'est le nombre maximum de clients connectés simultanément, cela dépendra de vos besoins.
  • Autoriser la compression: refusez, nous ne voulons pas de compression pour éviter les attaques.
  • Pousser la compression: Nous serons en mesure de fournir cette option de compression (pas de compression) aux clients.
  • Communication inter-client: nous pouvons autoriser ou refuser que les clients OpenVPN puissent communiquer entre eux, pour des raisons de sécurité, il est conseillé de le désactiver, mais dans certains cas il est nécessaire et même recommandé qu'il y ait une communication, cela dépendra de vos besoins.
  • Connexion en double: cette option doit normalement être désactivée, chaque client OpenVPN doit avoir ses propres informations d'identification et ne pas utiliser le même client avec le même certificat pour se connecter. Cette option est utile si nous voulons utiliser les mêmes certificats sur notre smartphone, ordinateur et tablette (3 appareils), et que nous allons nous connecter simultanément. Notre recommandation est d'émettre un certificat pour chaque appareil.

Dans «Paramètres du client», nous pouvons fournir aux clients une adresse IP dynamique, puis nous pouvons spécifier que chaque client a une adresse IP de la plage spécifique 10.8.0.0/24. Dans «Topologie», nous choisissons «sous-réseau» qui est beaucoup plus efficace que net30 qui est l'ancienne méthode.

Dans «Paramètres Ping», nous pouvons configurer les pings pour voir si un client est toujours connecté ou a perdu la connectivité.

Dans «Paramètres client avancés», nous pouvons configurer le DNS serveurs, soit des serveurs DNS externes tels que le populaire 8.8.8.8 ou un serveur DNS local de pfSense lui-même. On peut également sélectionner l'option «Bloquer l'accès aux serveurs DNS» à l'exception de ceux du tunnel VPN pour améliorer la sécurité.

Dans la section « Configuration avancée », nous pouvons ajouter des règles avancées supplémentaires que nous n'avons pas dans l'interface utilisateur graphique, par exemple, nous sommes intéressés à toujours négocier avec TLS 1.3 au moins, si un client n'est pas compatible, il ne se connecte pas, car nous n'activerons pas TLS 1.2.

Comme nous l'avons expliqué précédemment, lors de la première sauvegarde de la configuration du serveur OpenVPN, dans la section «Clé TLS», nous verrons la clé TLS générée automatiquement par pfSense, et nous devons choisir «Chiffrement et authentification TLS».

Une fois configuré, nous pouvons voir le résumé de la configuration ci-dessous:

Une autre configuration que nous pouvons faire concernant les routes est qu'au lieu de forcer tous les clients à envoyer tout le trafic via le tunnel VPN, nous pouvons définir que nous ne pouvons accéder qu'à certains réseaux, ceux que nous voulons, et automatiquement les clients qu'ils recevront le routes vers ces réseaux.

Une fois que nous avons configuré le serveur OpenVPN, nous allons configurer le pare-feu pour autoriser les connexions entrantes.

Configurer les règles sur le pare-feu pour autoriser l'accès

Dans la section « Pare-feu / Règles » nous cliquons sur WAN, et créer une règle avec les valeurs suivantes:

  • Action : PASSEZ
  • Interface : WAN
  • Famille d'adresses: IPv4
  • Protocole: UDP
  • Source: N'importe quelle, n'importe quelle origine puisque nous ne savons pas toujours quelle IP publique nous allons avoir
  • Destination: Adresse WAN dans le port OpenVPN 1194, ou dans le port sur lequel nous avons configuré le serveur.

Nous sauvegardons et nous aurons la règle créée dans le WAN Internet.

Maintenant, nous devons aller à la section « Pare-feu / Règles / OpenVPN », dans cette section est l'endroit où nous allons définir les accès des clients OpenVPN. Si nous voulons permettre aux clients OpenVPN d'accéder à n'importe quel sous-réseau pfSense ainsi qu'à Internet, nous devrons créer une règle «Passer tout», définissant ce qui suit:

  • Action : PASSEZ
  • Interface : OpenVPN
  • Famille d'adresses: IPv4
  • Protocole: tout
  • Source: Any
  • Destination: Tous

Si nous voulons créer des règles spécifiques pour refuser le trafic vers certains sous-réseaux, nous devrons créer des règles qui remplissent cette condition.

Une fois que nous avons accès à partir du WAN Internet, ainsi qu'à n'importe quel sous-réseau du système d'exploitation et redirection vers Internet, nous allons exporter le fichier de configuration OpenVPN pour les clients.

Exporter le fichier de configuration OpenVPN pour les clients

Nous allons dans la section «VPN / OpenVPN / Client Export», ici nous allons configurer l'extension pour générer une configuration automatique pour les clients:

  • Serveur d'accès à distance: nous choisirons le serveur VPN que nous avons configuré, nous pouvons en avoir plusieurs, donc, nous choisirons celui qui nous intéresse.
  • Résolution du nom d'hôte: le domaine DDNS que nous avons configuré dans pfSense, ou l'adresse IP du WAN, nous aurons plusieurs possibilités.
  • Verify Server CN: Automatic - utilisez verify-x509-name
  • Bloquer en dehors du DNS: nous activons cette option.
  • Utiliser un port local aléatoire: nous activons cette option.

Une fois que tout ce qui précède a été configuré, nous devons cliquer sur les clients à exporter, la chose la plus normale est de sélectionner «Configurations en ligne: la plupart des clients» et il exportera le CA, la clé publique et privée du certificat du client, et toute la configuration.

Notre recommandation est de choisir cette option dans «Configurations en ligne: la plupart des clients», mais en ajoutant la clé privée du client chiffré, afin que si ce fichier de configuration tombe entre de mauvaises mains, il ne puisse pas accéder à notre serveur VPN. Pour exporter la clé privée chiffrée, il faut aller dans la section «System / Cert Manager» et aller dans «Edit» le certificat du client, mettre une phrase de passe et cliquer sur «Export private Key»:

Désormais avec un éditeur de texte, nous ouvrons cette clé cryptée et le fichier de configuration qui vient d'être téléchargé:

  • Dans le fichier de configuration OpenVPN complet, nous supprimons tout ce qui se trouve à l'intérieur « »
  • Nous copions le contenu complet de la clé privée exportée à l'intérieur « »Et enregistrez les modifications.

Désormais, lors de l'utilisation de la clé privée pour se connecter au serveur, nous devrons saisir ce mot de passe qui protège le certificat. Maintenant, nous allons vérifier que le service est en place, et nous allons nous connecter avec le premier client.

Vérifier l'état du service et des clients connectés

Dans la section «Statut / OpenVPN», nous pouvons voir s'il est activé ou non, nous l'activons et connectons le premier client sans aucun problème.

Une recommandation supplémentaire que vous pouvez faire avec pfSense est de fournir le même client VPN qui utilise toujours un certificat spécifique avec la même adresse IP. Pour ce faire, il suffit d'aller dans «Client Specific Overrides», d'en ajouter un nouveau, de choisir le serveur et le CN du client spécifique et dans la section «Advanced» on met:

ifconfig-push 10.8.0.2 255.255.255.0;

Et ce client VPN avec ce certain CN aura toujours cette adresse IP privée à l'intérieur du tunnel VPN.