3 openVPN accès client, CAs, Certificats, SSH

18
Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 1/18 BTS SIO - SISR Travaux Pratiques pfSense 3 – openVPN accès client, CAs, Certificats, SSH SOMMAIRE Présentation & Objectif .......................................................................................................................................... 1 Préparation ............................................................................................................................................................. 2 Configuration du poste client Windows .............................................................................................................. 3 Configuration du pfSense .................................................................................................................................... 3 Configuration du Serveur .................................................................................................................................... 4 Configuration openVPN de pfsense ........................................................................................................................ 4 Activation de la puce Crypto ............................................................................................................................... 5 Lancement de l’assistant ..................................................................................................................................... 6 Authentification des utilisateurs ......................................................................................................................... 6 Création de l’autorité de certification ................................................................................................................. 6 Création du certificat de Serveur ........................................................................................................................ 7 Création du serveur OpenVPN ............................................................................................................................ 8 Règles de pare-feu ............................................................................................................................................ 11 Création d’un utilisateur VPN............................................................................................................................ 12 Installation du package d’exportation de client OpenVPN ............................................................................... 14 Exportation package d’installation du client ..................................................................................................... 15 Connexion du client openVPN .............................................................................................................................. 16 Connexion au service local (SSH) via le tunnel ...................................................................................................... 18 Pour aller plus loin ................................................................................................................................................ 18 PRESENTATION & OBJECTIF L’objectif de ce TP est de configurer un serveur OpenVPN, en tant que package pfSense, avec une authentification par certificat, et d’établir une connexion VPN depuis un poste client situé sur le WAN sur le réseau interne (LAN). Il s’agit notamment de manipuler les outils de certificats et de gestion des autorités de certification (CA) intégrés dans pfSense. Nous verrons l’intérêt des assistants disponibles avec pfSense pour mettre en place facilement ce déploiement.

Transcript of 3 openVPN accès client, CAs, Certificats, SSH

Page 1: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 1/18

BTS SIO - SISR

Travaux Pratiques

pfSense

3 – openVPN accès client, CAs, Certificats, SSH

SOMMAIRE

Présentation & Objectif .......................................................................................................................................... 1

Préparation ............................................................................................................................................................. 2

Configuration du poste client Windows .............................................................................................................. 3

Configuration du pfSense .................................................................................................................................... 3

Configuration du Serveur .................................................................................................................................... 4

Configuration openVPN de pfsense ........................................................................................................................ 4

Activation de la puce Crypto ............................................................................................................................... 5

Lancement de l’assistant ..................................................................................................................................... 6

Authentification des utilisateurs ......................................................................................................................... 6

Création de l’autorité de certification ................................................................................................................. 6

Création du certificat de Serveur ........................................................................................................................ 7

Création du serveur OpenVPN ............................................................................................................................ 8

Règles de pare-feu ............................................................................................................................................ 11

Création d’un utilisateur VPN............................................................................................................................ 12

Installation du package d’exportation de client OpenVPN ............................................................................... 14

Exportation package d’installation du client ..................................................................................................... 15

Connexion du client openVPN .............................................................................................................................. 16

Connexion au service local (SSH) via le tunnel ...................................................................................................... 18

Pour aller plus loin ................................................................................................................................................ 18

PRESENTATION & OBJECTIF

L’objectif de ce TP est de configurer un serveur OpenVPN, en tant que package pfSense, avec une authentification par certificat, et d’établir une connexion VPN depuis un poste client situé sur le WAN sur le réseau interne (LAN). Il s’agit notamment de manipuler les outils de certificats et de gestion des autorités de certification (CA) intégrés dans pfSense. Nous verrons l’intérêt des assistants disponibles avec pfSense pour mettre en place facilement ce déploiement.

Page 2: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 2/18

PREPARATION

Nous allons utiliser VMWare Workstation pour créer un environnement virtuel avec trois VM, selon schéma final suivant :

La réalisation du Tunnel VPN indiqué sur le schéma est donc l’objet de ces travaux.

Le WAN correspond sur notre schéma au LAN de la classe 192.168.13.0/24, avec un serveur DHCP sur la plage [2-199]. La partie LAN du schéma est la partie en aval du pfSense, sur 192.168.1.0/24

ATTENTION : l’adresse IP WAN fournie à pfSense ne doit pas changer au cours du TP (correspond à la nécessité de disposer d’une IP publique fixe chez un FAI) ; cette adresse est notamment inscrite dans le logiciel d’accès client openVPN qui sera généré.

Page 3: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 3/18

Dans un premier temps, nous allons configurer le réseau de façon à positionner le client à l’intérieur du LAN, pour pouvoir configurer le pfSense par l’interface WEB, et pouvoir tester le serveur SSH localement :

CONFIGURATION DU POSTE CLIENT WINDOWS

C’est une VM sous Windows 10, dotée d’une seule carte réseau, configurée en client DHCP.

Cette VM doit également être pourvue d’un navigateur WEB (Firefox) et de l’utilitaire PuTTY ou mobaXterm (il sera notre client SSH plus loin). Ces logiciels sont disponibles si besoin sur le serveur de la classe.

CONFIGURATION DU PFSENSE

L’appliance pfSense est portée par une VM dont la configuration hardware minimale est la suivante :

• CPU 1 cœur

• RAM 256 MB

• HDD : 10GB

• Carte réseau 1 : connectée sur BRIDGE (vmnet0) (elle sera le côté WAN du pfSense)

• Carte réseau 2 : connectée sur un segment LAN1 (elle sera le côté LAN du pfSense)

Il est fortement conseillé de disposer d’une installation pfSense neuve, ou de récupérer un snapshot post-installation de la VM pfSense.

Après l’installation, il faudra configurer pfSense ainsi (via un navigateur WEB sur le PC client à l’adresse http://192.168.1.1) :

• hostname : pfsense

• domaine : kerlann.local

• Adresse IPv4 LAN : 192.168.1.1/24

Page 4: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 4/18

• Concernant le DNS, laisser cochée l’option « Allow DNS server list to be overridden by DHCP/PPP on WAN » pour éviter toute « contrariété » avec les DNS fournis par le FAI utilisé.

• Retirer le blocage des réseaux RFC1918 sur l’interface WAN

• Attention aussi à régler la timezone sur Europe/Paris (utiliser le serveur NTP proposé par pfSense)

CONFIGURATION DU SERVEUR

En guise de serveur nous allons prendre un VM Debian de base (mode console uniquement), sur laquelle nous allons installer un serveur SSH. Configuration requise pour cette VM :

• CPU 1 cœur

• RAM 1 GB

• HDD 10GB

• Carte réseau : connectée sur le segment LAN1

Voici les indications sur la configuration :

Fixer l’IP 192.168.1.2/24 (passerelle 192.168.1.1 = pfSense) en éditant le la configuration de l’interface réseau (fichier /etc/network/interfaces) :

allow hotplug ensxx

iface ensxx inet static

address 192.168.1.2/24

gateway 192.168.1.1

Installer le démon SSH (une fois connecté à Internet via le pfSense) :

# apt install openssh-server

Vérifier que le service fonctionne :

# systemctl status sshd

Vérifier que le serveur écoute sur le port SSH (22) :

# ss -lntp | grep 22

NB : votre système doit comporter un utilisateur standard pour la connexion via SSH (par défaut, la connexion avec root via SSH n’est pas permise).

CONFIGURATION OPENVPN DE PFSENSE

Comme pour sa configuration initiale, le paramétrage de pfSense s’effectue via un navigateur WEB sur la VM Windows (PC client), sur http://192.168.1.1

Plutôt que de réaliser les différentes opérations indépendamment, nous allons utiliser l’assistant (wizard) openVPN.

Page 5: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 5/18

ACTIVATION DE LA PUCE CRYPTO

Un service VPN reposer sur un chiffrement permanent de la communication, avec des algorithmes de type AES (voir cours cryptographie). Ceci demande des calculs complexes, mais sur un schéma toujours identique. Les processeurs actuels intègrent cette fonction (calculateur « câblé »), et un jeu d’instructions associé appelé AES-NI. Il faut activer ceci sur pfSense ; ceci augmente fortement les performances du VPN.

Dans le menu System > advanced, puis onglet Miscellaneous :

Activer la crypto CPU AES-NI, et valider avec « save » :

On peut vérifier l’activation sur le dashboard (on voit aussi les algorithmes supportés par la puce) :

Page 6: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 6/18

LANCEMENT DE L ’ASSISTANT

Dans le menu VPN, choisir OpenVPN :

Puis cliquer sur wizard :

AUTHENTIFICATION DES UTILISATEURS

On indique ici où seront identifiés les utilisateurs du VPN. On pourrait utiliser un serveur externe (RADIUS ou LDAP) ; ici, nous choisissons la base de données interne de pfSense (Local User Access) :

CREATION DE L ’AUTORITE DE CERTIFICATION

Personnalisez le nom et l’emplacement :

Page 7: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 7/18

CREATION DU CERTIFICAT DE SERVEUR

Page 8: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 8/18

CREATION DU SERVEUR OPENVPN

Il peut être « malin » de modifier le port par défaut (1194) ; celui-ci sera ouvert sur l’extérieur, et peut faire l’objet de tentatives d’intrusions. Prenons par exemple 9910 (il faut prendre un port non utilisé par ailleurs).

Activez l’utilisation de la puce crypto du matériel ; il faut pour cela l’avoir activée dans les paramètres système de pfSense, et que le processeur en soit effectivement pourvu (Intel AES-NI).

La sécurité peut être améliorée en choisissant un algorithme AES256 plutôt que AES128 (il faut qu’il soit parmi ceux supporté par le hardware crypto AES-NI)

Page 9: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 9/18

Il y a dans le bloc suivant des paramètres importants :

- Tunnel network : c’est le sous-réseau IP du tunnel ; il doit être différent des réseaux LAN présents sur le pfSense. La carte réseau virtuelle distante OpenVPN se verra attribuée une IP dans la plage indiquée.

- Redirect Gateway : en cochant cette case, on obligera le client distant connecté à passer TOUS SES FLUX par le tunnel, et non pas uniquement ceux qui correspondent au réseau local. Cette option est recommandée pour améliorer l’isolation du client distant, mais sera gourmande en bande passante (tout le flux internet du client distant va passer par le tunnel tant qu’il est connecté).

- Local Network : c’est en général l’adresse IP du réseau local. Une route sera alors créée et donnée aux clients distants pour joindre le réseau local. Si rien n’est indiqué, seulement le pfSense sera accessible par le VPN.

- Concurrent connections : le nombre maximum de clients VPN connectés en même temps sur ce serveur. Contrairement aux VPN du marché où des licences sont parfois nécessaires, la seule limite ici est la puissance du matériel et du réseau (pfSense et openVPN sont open source).

- Duplicate connections : ceci autorise (si coché) à un utilisateur d’avoir plusieurs connexions simultanées (non recommandé).

Il est possible d’indiquer ensuite des serveurs DNS fournis au client distant, notamment s’il y a un contrôleur de domaine avec son service DNS sur le réseau local, et que le client distant appartient au domaine.

Page 10: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 10/18

Idem pour un serveur de temps (NTP). L’option NetBIOS over TCP/IP permettra si besoin de résoudre des problèmes de résolutions de noms NETBIOS au travers du tunnel :

Page 11: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 11/18

REGLES DE PARE-FEU

L’étape suivante permet de générer et activer les règles de pare-feu qui vont permettre le traffic via le VPN ; il ne faut pas oublier de cocher les deux options distinctes : autoriser la connexion des clients au serveur (ouverture du port UDP entrant), et autoriser tout le traffic sur le tunnel.

La configuration est alors terminée (cliquer sur Finish) :

On peut voir notre serveur dans la liste des serveurs openVPN installés sur le pfSense :

Page 12: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 12/18

Et on peut voir aussi les deux règles de pare-feu créées :

CREATION D ’UN UTILISATEUR VPN

Nous allons maintenant créer un utilisateur VPN. Cet utilisateur pourra pour se connecter à notre client VPN à partir d'un emplacement distant.

Tout d’abord on crée un groupe (comme on le ferait par exemple avec Active Directory).

Depuis le menu System > User Manager, onglet groups, cliquer sur « + add » :

Page 13: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 13/18

Puis on crée un utilisateur (au moins) :

Naviguez vers : System / User Manager et cliquez sur « + Add » pour ajouter un nouvel utilisateur :

• Ajouter l’utilisateur au groupe, avec les listes et boutons prévus à cet effet ;

• Bien entendu, adaptez le login et le nom de l’utilisateur comme vous le souhaitez

• Cochez la case « create a certificate » pour l'utilisateur et attribuez-lui un nom descriptif.

• Assurez-vous également de sélectionner l’autorité de certification.

• Cliquez sur « save » une fois que vous avez terminé.

Page 14: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 14/18

INSTALLATION DU PACKAGE D’EXPORTATION DE CLIENT OPENVPN

Nous devons maintenant installer le package d’exportation de client OpenVPN pour créer notre programme

d’installation Windows ou télécharger les fichiers de configuration VPN pour Linux.

Accédez à : System / Package Manager / Available Packages/ et tapez « openvpn » dans le champ de

recherche :

Cliquez sur « + Install » pour l'installer, et « confirm »

Si l’installation échoue, vérifiez si pfSense ne doit pas être mis à jour (depuis l’écran d’accueil).

Une fois l’installation terminée :

Page 15: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 15/18

EXPORTATION PACKAGE D ’ INSTALLATION DU CLIENT

Nous allons désormais générer et récupérer le package d’installation du client openVPN

• Accédez à : VPN / OpenVPN / Client Export

• Host Name Resolution : c’est l’adresse IP que le client essaiera de joindre lors de la connexion, et c’est donc en général l’adresse IP publique WAN de pfSense (Interface IP Address) ; si pfSense est derrière un autre routeur (et n’a pas directement l’IP publique sur sa patte WAN), il faudra choisir l’option « other » pour pouvoir saisir manuellement l’adresse IP publique effective.

• Cochez l'option Utiliser un port local aléatoire si vous souhaitez connecter plusieurs clients simultanément.

Cliquer sur « Save as default »

Maintenant, faites défiler jusqu'à ce que vous trouviez la liste des utilisateurs VPN et les options d'exportation

de client à côté.

Page 16: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 16/18

Comme vous êtes sous Windows, vous téléchargerez le programme d'installation de Windows :

CONNEXION DU CLIENT OPENVPN

Une fois que le package client openVPN a été téléchargé, déconnectez l’interface réseau de la VM Windows pour

la connecter dans le WAN (le même WAN que le pfSense) et non plus dans le LAN.

La connexion réseau doit se reconfigurer automatiquement. Au besoin, redémarrez votre VM.

Lancez l’installation du package qui a été téléchargé juste avant. Si un avertissement Windows Smart Screen

apparaît, cliquez sur « Plus d'infos » et sur « Exécuter quand même ». Installez OpenVPN en laissant tout par

défaut. L’installation intègre la configuration de la connexion sécurisée par le certificat.

Une fois installé, double-cliquez sur l'icône OpenVPN GUI de votre bureau pour le démarrer. Lorsque vous

redémarrez votre ordinateur, OpenVPN sera démarré automatiquement à l'avenir. Vous verrez maintenant une

petite icône d'écran + verrou dans votre barre des tâches.

Cliquez avec le bouton droit sur l'icône de verrouillage et sélectionnez Connecter. Entrez votre nom d'utilisateur

et votre mot de passe VPN :

Page 17: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 17/18

Autorisez la connexion via votre pare-feu Windows si vous y êtes invité pour les réseaux privés et publics. Vous

devriez maintenant voir que vous êtes connecté à votre VPN, indiqué par le voyant vert dans le petit écran +

symbole de verrouillage de votre barre des tâches.

Félicitations, vous avez correctement configuré OpenVPN pour pfSense !

On peut par exemple se connecter à l’interface de pfSense, et vérifier les connexions VPN en cours (menu status

> openvpn) :

Conseil : pour éviter le désagréable « Windows smart screen », il est possible aussi de récupérer le programme

d’installation du client openVPN sur le site : https://openvpn.net/community-downloads-2/ et de charger la

configuration de façon séparée (utiliser alors le paquet inline-configuration) :

Page 18: 3 openVPN accès client, CAs, Certificats, SSH

Pascal MELOT Travaux Pratiques – pfSense – openVPN client – BTS SIO SISR v3.0 – 11/2020 - 18/18

CONNEXION AU SERVICE LOCAL (SSH) VIA LE TUNNEL

Pour vérifier le tunnel, connectez-vous au serveur SSH 192.168.1.2 avec le programme PuTTY préalablement

installé :

Et voilà !

POUR ALLER PLUS LOIN

Faites évoluer la configuration du serveur VPN pour que l’authentification des utilisateurs passe par un serveur

Active Directory (voir le TP pfSense authentification LDAP)