====== VPN site à site avec OpenVPN sur pfSense ====== ^ Version ^ Statut ^ Date ^ Auteur ^ URL ^ | 0.1 | Premier projet | 27 avr. 2023 | Fabio Pagotto | | | 0.2 | Peaufinage | 28 avr. 2023 | Fabio Pagotto | | | 1.0 | Révision et approbation | 28 avr. 2023 | Fabio Pagotto | | ===== 1ère version courte ===== Ce tutoriel traite de la mise en place d'une connexion VPN site à site entre deux pfSenses avec OpenVPN. Il décrit : * La configuration requise pour la connexion OpenVPN. * La création de la connexion OpenVPN. * Le test de la connexion OpenVPN. ===== 2ème tutoriel ===== ==== 2.0 Préceptes ==== Pour l'exécution de ce tutoriel, vous avez besoin de * deux pfSenses connectés à Internet * Accès à l'interface web des pfSenses * Accès à un PC pour sauvegarder les fichiers de pfSense. * Connaissances de base sur l'utilisation d'un pfSense. ==== 2.1 Créer une structure de certificat sur le serveur ==== Tout d'abord, vous devez créer quelques certificats sur le serveur OpenVPN. Ceci est nécessaire pour créer la connexion. Créez d'abord une **"Autorité de certification"**. Pour cela, allez sur **"Système -> Certificats -> Autorités".**. Cliquez maintenant sur **"+ Add"** Vous allez maintenant vous retrouver dans les paramètres suivants. {{technische-dokumentationen:tutorials:pasted:20230424-104051.png? 600}} Saisissez les valeurs suivantes : **Nom descriptif :** (N'importe quel nom ici) **Méthode :** Créer une autorité de certification interne **Randomiser la série :** Cocher la case **Durée de vie (jours) :** 3650 **Nom commun :** (N'importe quel nom ici) Les valeurs **"Code de pays, État ou province, etc."** peuvent être remplies, mais ne sont pas obligatoires. Après avoir rempli les valeurs, cliquez sur le bouton **"Save"**. \\ Vous devez maintenant créer un certificat de serveur. Pour cela, allez sur **"Certificats".**et cliquez ensuite sur **"+ Add/Sign"**. Vous allez maintenant vous retrouver dans les paramètres suivants. {{technische-dokumentationen:tutorials:pasted:20230424-105929.png? 600}} Saisissez les valeurs suivantes : **Nom descriptif :** (N'importe quel nom ici) **Autorité de certification :** L'AC que vous venez de créer. **Durée de vie (jours) :** 3650 **Nom commun :** (N'importe quel nom ici) Les valeurs **"Code de pays, État ou province, etc."** peuvent être remplies, mais ne sont pas obligatoires. **Type de certificat (Certificate Type) :** Sélectionnez **"Server Certificate"** Après avoir rempli les valeurs, cliquez sur "Certificate". **"Save"**. \\ Vous devez maintenant créer un certificat d'utilisateur. Pour cela, allez sur **"Certificats".**et cliquez ensuite sur **"+ Add/Sign"**. Vous allez maintenant vous retrouver dans les paramètres suivants. {{technische-dokumentationen:tutorials:pasted:20230424-105929.png? 600}} Saisissez les valeurs suivantes : **Nom descriptif :** (N'importe quel nom ici) **Autorité de certification :** L'AC que vous venez de créer. **Durée de vie (jours) :** 3650 **Nom commun :** (N'importe quel nom ici) Les valeurs **"Code de pays, État ou province, etc."** peuvent être remplies, mais ne sont pas obligatoires. **Type de certificat (Certificate Type) :** Sélectionnez **"Certificat d'utilisateur"** Après avoir rempli les valeurs, cliquez sur le bouton "Certificate". **"Save"**. \\ Tous les certificats nécessaires sont maintenant créés. Il faut maintenant les exporter pour qu'ils puissent être téléchargés sur le pare-feu client. Allez sur **"CAs".** et cliquez sur {{technische-dokumentationen:tutorials:pasted:20230424-112503.png}} à côté de l'AC que vous avez créé plus tôt pour l'exporter. Retournez à **"Certificats"**. Cliquez sur {{technische-dokumentationen:tutorials:pasted:20230424-112503.png}} à côté du certificat client créé précédemment pour exporter le certificat client. Cliquez sur {{technische-dokumentationen:tutorials:pasted:20230424-112924.png}} à côté du certificat client créé précédemment pour exporter la clé du certificat client. Une fois que tout est exporté, cela devrait ressembler à ceci : {{technische-dokumentationen:tutorials:pasted:20230424-114821.png? 600}} Conservez-les, car vous en aurez besoin par la suite. \\ ==== 2.2 Créer un serveur OpenVPN ==== Maintenant que les certificats sont créés, le serveur peut être configuré. Pour cela, aller sur **"VPN -> OpenVPN -> Serveurs".** Cliquez ensuite sur **"+ Add"**. Vous arrivez maintenant dans les paramètres suivants, {{technische-dokumentationen:tutorials:pasted:20230424-140124.png? 600}} Saisissez les valeurs suivantes : **Description :** (n'importe quel nom) **Mode du serveur :** Peer to Peer ( SSL/TLS ) **Mode du périphérique :** tun - Layer 3 Tunnel Mode **Protocole :** UDP sur IPv4 uniquement **Interface de communication :** WAN **Port local :** 1195 (si plus de serveurs doivent être créés, utiliser simplement plus de ports à partir de 1195) **Configuration TLS :** Cocher les cases "Use a TLS Key" et "Automatically generate a TLS Key". **Peer Certificate Authority : ** Sélectionnez l'AC que vous avez créée plus tôt. **Certificat de serveur :** Sélectionnez le certificat de serveur que vous avez créé précédemment. **Réseau de tunnel IPv4 :** Entrez une adresse IP avec le sous-réseau /30. **IPv4 Réseau(x) local(aux) :** Indiquez ici l'adresse réseau des réseaux à partir desquels le client est autorisé à accéder. (par ex. VLAN 10 IP : 172.16.10.1 = Adresse réseau : 172.16.10.0) S'il y a plusieurs réseaux, séparez l'adresse réseau par une virgule. **Cela ressemble alors à quelque chose comme ceci :** \\ {{technische-dokumentationen:tutorials:pasted:20230424-144746.png? 600}} **IPv4 Réseau(x) distant(s) :** Identique à "Local network(s)" Au lieu de cela, ce sont les réseaux à partir desquels le serveur peut accéder Cliquez ensuite sur **"Save"** \\ Ensuite, cliquez sur {{technische-dokumentationen:tutorials:pasted:20230425-103129.png}} pour modifier le serveur OpenVPN. Descendez jusqu'à la boîte **"Clé TLS"**. Elle ressemble à ceci : {{technische-dokumentationen:tutorials:pasted:20230425-103408.png? 600}} Copiez maintenant tout le contenu de la boîte et collez-le dans un fichier texte. Ce que vous venez de copier, c'est la clé TLS. Celle-ci est nécessaire pour l'instance client. Il est donc préférable de sauvegarder le fichier texte avec les certificats que vous avez téléchargés plus tôt. ==== 2.3 Configurer les règles de pare-feu sur le serveur ==== Maintenant, tout ce qui est nécessaire est déjà presque configuré sur le serveur. Il vous reste à configurer les règles de pare-feu nécessaires. Commencez par configurer la règle WAN. Celle-ci est nécessaire pour que le pare-feu client puisse se connecter au serveur. Allez sur **"Pare-feu -> Règles -> WAN".**. Cliquez sur **"^Add"**. Vous accédez alors à l'interface de création de règles. {{technische-dokumentationen:tutorials:pasted:20230427-094941.png? 600}} Saisissez les valeurs suivantes : **"Protocol :"** Sélectionnez **"UDP"** sélectionner. **"Source :"** Sélectionnez **"any"** sélectionner. **"Destination :"** Sélectionnez **"WAN address"** sélectionner. **"Destination Port Range :"** Indiquez le port spécifié dans le serveur OpenVPN. **"Description :"** Saisissez une description de votre choix. Cliquez ensuite sur **"Save"** \\ Maintenant, vous devez encore configurer la règle OpenVPN. Pour cela, allez sur **"Pare-feu -> Règles -> OpenVPN".**. Ensuite, cliquez sur **"^Add"**. Vous vous retrouvez à nouveau dans l'interface de création de règles. Saisissez ici les valeurs suivantes : **"Protocol :"** Sélectionnez **"any"** sélectionner. **"Source :"** Sélectionnez **"any"** sélectionner. **"Destination :"** sélectionner **"any** sélectionner. **"Description :"** Saisissez la description de votre choix. Cliquez sur **"Save"** \\ N'oubliez pas de cliquer ensuite sur **"Appliquer les changements".** cliquez sur "Modifier" ! //**Remarque :** La règle ci-dessus permet à tous les VLAN et clients qui peuvent fonctionner sur OpenVPN d'accéder de n'importe où à n'importe où dans OpenVPN. Pour la première installation d'un tunnel VPN, cela ne pose pas de problème non plus. Pour une utilisation en production, il est toutefois recommandé de supprimer cette règle et de la remplacer par des règles similaires à celles des interfaces habituelles. // Tous les paramètres nécessaires sont maintenant configurés sur le serveur. \\ ==== 2.4 Configurer les certificats sur le pare-feu client ==== Vous avez maintenant configuré tout ce qui est nécessaire pour le serveur. Il est maintenant temps de passer au pare-feu du client. //**Important :** N'oubliez pas que les certificats créés précédemment doivent être téléchargés sur le pare-feu client. Essayez donc de vous assurer que les certificats peuvent être utilisés sur l'appareil via lequel vous accédez au pare-feu client.// Connectez-vous au pare-feu client. Naviguez vers **"Système -> Cert. Manager -> CAs".**. Cliquez sur **"+Add"** Vous revenez au mode de création de l'AC. {{technische-dokumentationen:tutorials:pasted:20230424-105929.png? 600}} Saisissez les valeurs suivantes. **"Nom descriptif :"** Saisissez le nom de votre choix. **"Méthode :"** Sélectionnez **"Import an existing Certificate Authority" (importer une autorité de certification existante)** sélectionner. **"Certificate data :"** Ouvrez l'AC que vous avez exportée dans un éditeur de texte. Cela ressemblera à ce qui suit. {{technische-dokumentationen:tutorials:pasted:20230427-112351.png? 600}} Copiez le //tout// contenu dans la boîte **"Données du certificat"**. Cliquez ensuite sur **"Save"**. \\ Naviguez maintenant vers **"Système -> Cert. Manager -> Certificates".**. Cliquez sur **"+Add"**. Vous arrivez sur l'écran suivant. {{technische-dokumentationen:tutorials:pasted:20230424-105929.png? 600}} Saisissez les valeurs suivantes. **"Méthode :"** Sélectionnez "Import an existing Certificate". **"Nom descriptif :"** Saisissez ici le nom de votre choix. **"Certificate data :"** Ouvrez ici le certificat client que vous avez exporté dans un éditeur de texte. Copiez l'ensemble du contenu dans la boîte, **"Certificate data"**. **"Private key data :"** Ouvrez ici, dans un éditeur de texte, la clé privée du certificat client que vous avez exportée. Copiez l'ensemble du contenu dans la boîte, **"Private key data"**. Cliquez ensuite sur **"Save"**. \\ ==== 2.5 Créer une instance client OpenVPN et configurer les règles de pare-feu ==== Maintenant que les certificats nécessaires ont été importés, l'instance VPN client peut être ouverte. Naviguer vers : **"VPN -> OpenVPN -> Clients".**. Cliquez sur **"+Add"** Vous arrivez dans la configuration suivante. {{technische-dokumentationen:tutorials:pasted:20230427-134707.png? 600}} Saisissez les valeurs suivantes : **"Server mode :"** Sélectionnez **"Peer to Peer ( SSL/TLS )".** **"Device mode :"** Sélectionnez **"tun - Layer 3 Tunnel Mode"** **"Interface :"** Sélectionnez **"WAN"** sélectionner. **"Server host or address :" (Hôte ou adresse du serveur :)** Entrez l'adresse IP WAN du serveur. **"Port du serveur"** Le port que vous avez saisi dans l'instance du serveur. **"Description :"** Saisissez ici la description de votre choix. **"TLS Configuration :"** Sélectionnez **"Générer automatiquement une clé TLS".** à partir de. **"Clé TLS :"** Ouvrez le document texte contenant la clé TLS et copiez l'ensemble du contenu dans la zone de texte. **"Peer Certificate Authority :"** Sélectionnez l'AC importée précédemment. **"Client Certificate :"** Sélectionnez le certificat client importé précédemment. **"IPv4 Tunnel Network :"** Indiquez ici la même adresse que celle du serveur. **"IPv4 Remote network(s) :" (Réseau(s) distant(s) IPv4 :)** Comme pour le serveur, entrez ici les adresses des réseaux auxquels le client peut accéder. Cliquez sur **"Save"** \\ Pour finir, vous devez encore configurer les règles de pare-feu sur le client. Pour cela, allez sur **"Pare-feu -> Règles -> OpenVPN".**. Ensuite, cliquez sur **"^Add"**. Vous arrivez dans l'interface de création de règles. Saisissez ici les valeurs suivantes : **"Protocol :"** Sélectionnez **"any"** sélectionner. **"Source :"** Sélectionnez **"any"** sélectionner. **"Destination :"** sélectionner **"any** sélectionner. **"Description :"** Saisissez la description de votre choix. Cliquez sur **"Save"** \\ N'oubliez pas de cliquer ensuite sur **"Appliquer les changements".** Cliquez sur le bouton "Changes" ! //**Remarque :** Il faut tenir compte de la même remarque que pour la règle OpenVPN sur le serveur.// Maintenant, tous les paramètres nécessaires sont également configurés sur le client. ==== 2.6 Tester la connexion OpenVPN ==== Tout est maintenant configuré. Testez maintenant si la connexion fonctionne. Pour cela, allez sur l'un des deux pfSenses sur **"Stauts -> OpenVPN"**. Lorsque la connexion est en cours, le message suivant devrait apparaître : {{technische-dokumentationen:tutorials:pasted:20230427-141653.png? 600}} Si c'est le cas, testez la connexion dans une autre étape. Essayez de pinguer entre un réseau sur les deux pfSenses. Par exemple, VLAN 1 (pfSense1) -> VLAN 1 (pfSense2). Si le ping a réussi, le tunnel OpenVPN fonctionne correctement et vous avez terminé ce tutoriel avec succès ! ===== 3. liste des sources ===== Vous trouverez ici les sources nécessaires qui ont été utilisées pour la rédaction de ce document. Documentation officielle de Netgate : https://docs.netgate.com/pfsense/en/latest/recipes/openvpn-s2s-tls.html Flurin Pudill