-
VPN OpenVPN client-to-site avec PFSENSE
Pour les besoins du labo, nous avons utilisé une IP privée (172.20.0.0/12) pour simuler l'internet.
Le fonctionnement reste cependant le même.Un collaborateur souhaite, depuis chez lui, pouvoir accéder au site intranet de son entreprise hébergé sur un serveur web (SRV-WEB) dans le batîment.
Nous allons (en temps qu'administrateur, depuis le PC admin) configurer le pare-feu de l'entreprise (pfsense1) afin qu'il devienne un serveur OpenVPN, auquel le PC collaborateur pourra se connecter pour accéder au serveur SRV-WEB.On considère que tous les OS sont déjà installés sur les différentes machines.
On ne s'occupe ici que du paramétrage.I - Effectuer le paramétrage du pare-feu pfsense1 en lignes de commande:
- Assigner les cartes réseaux aux bonnes interfaces
- Assigner les IP aux interfaces.Conformément au schéma, voici ce que vous devez obtenir, après avoir assigné les interfaces 1) et attribué l'IP pour chaque interface ainsi que la passerelle pour le WAN 2)
II - Effectuer le paramétrage du pare-feu box-SFR en lignes de commande : (pour ce labo, on monte un second pfsense)
- Assigner les cartes réseaux aux bonnes interfaces
- Assigner les IP aux interfaces.Conformément au schéma, voici ce que vous devez obtenir, après avoir assigné les interfaces 1) et attribué l'IP pour chaque interface ainsi que la passerelle pour le WAN 2)
III - Effectuer la configuration réseau de chaque machine selon le schéma
- PC admin
- SRV-WEB
- PC collaborateur
Pour le PC collaborateur, ne pas oublier de faire un enregistrement DNS pour le site intranet auquel il souhaite pouvoir accéder.
Nous allons créer le site assistance.lan (GLPI).
Donc, dans le fichier hosts :
10.1.0.200 assistance.lanPar défaut, PFSENSE laisse passer tous les paquets en provenance du LAN et à destination du WAN (comme la box SFR)
Donc même si ce n'est pas une vraie box SFR, le fonctionnement est le même. Il n'y a donc aucune règle à ajouter.IV - Déployer le site intranet assistance.lan sur le SRV-WEB
Téléchagez le script de configuration global debian ou freebsd pour aller plus vite.
faîtes également un enregistrement DNS sur le PC admin pour pouvoir tester le bon fonctionnement et faire la première configuration de GLPI.V - On passe à la configuration du serveur OpenVPN sur le pfsense1 de l'entreprise.
On se connecte depuis le PC admin à l'interface grahpique de pfsense via son URL : http://10.10.0.2541) Créer l'authorité de certification (en fait, on prend directement celle de pfsense, pas besoin d'en créer une)
System -> Cert. Manager -> CAs -> + Add
Descriptive Name : VPN-CA
Method : Create an internal Certificate Authority
Lifetime (days) : 1095 (3 ans)
Country Code : FR
State or Province : ce que vous voulez
City :
Organization : VOTRE ENTREPRISE
Organizational Unit : IT
Save2) Créer le certificat du Serveur OpenVPN
System -> Cert. Manager -> Certificates -> + Add/Sign
Method : Create an internal Certificate
Descriptive name : VPN-SERVER
Certificate authority : VPN-CA
Lifetime (days) : 1095 (3 ans)
Common Name : VPN.domaine (s'il y a un domaine.. genre TSSR.INFO -> VPN.TSSR.INFO)
Country Code : FR
State or Province : ce que vous voulez
City :
Organization : VOTRE ENTREPRISE
Organizational Unit : IT
Certificate Type : Server Certificate
Alternative Names : FQDN or Hostname : VPN.domaine
Save3) Si vous voulez créer un certificat spécifique à un utilisateur, faîtes cette étape 3), sinon, pour créer un certificat pour tous les utilisateurs, répétez l'étape 2), donnez le Descriptive Name : VPN-CLIENT et changez le Certificate Type pour User Certificate.
System -> User Manager -> Users -> + Add
Username : micheline
Password : P@ssw0rd (NE PAS DEPASSER 15 CARACTERES... SINON PROBLEMES SUR DES CLIENTS BSD SI VOUS CHOISISSEZ UNE AUTHENTIFICATION SSL/TLS/USER AUTH LORS DE LA CREATION DU SERVEUR !!!)
Certificate : Click to create a user certificate
Descriptive name : VPN-MICHELINE
Lifetime : 1095
Save4) Créez le serveur OpenVPN
VPN -> OpenVPN -> Servers
Server mode : Remote Access (SSL/TLS) -> Permet de ne pas avoir à rentrer d'identifiant et de mot de passe sur le client au moment de la connexion au VPN
Device mode : tun - Layer 3 Tunnel Mode
Protocol : UDP on IPv4 only (par exemple)
Interface : WAN
Local port : 1194
Description : SERVEUR-OPENVPN
TLS Configuration : Use a TLK Key
Peer Certificate Authority : VPN-CA
Server certificate : VPN-SERVER (Server: Yes, CA: VPN-CA, In Use)
DH Parameter Length : 2048 bit
Data Encryption Negotiation : Enable Data Encryption Negotiation
Data Encryption Algorithms : enlever l'AES-128 de la colonne de droite en cliquant dessus
Fallback Data Encryption Algorithm : AES-256-CBC (256 bit key, 128 bit block)
Auth digest algorithm : SHA-256 (256-bit)
Certificate Depth : Two (Client+Intermediate+Server)
Client Certificate Key Usage Validation : Enforce key usage
IPv4 Tunnel Network : 10.199.199.0/24 (ou une adresse de classe APIPA 169.254.0.0/16)
Redirect IPv4 Gateway : Force all client-generated IPv4 traffic trough the tunnel (dans le cas où vous souhaitez que toutes les requêtes web du client passent par le tunnel.. Attention aux règles de pare-feu OpenVPN qui suivront !! Dans le cas présent, on ne l'active pas, puisqu'on ne va autoriser la connexion QUE vers le SRV- WEB)
IPv4 Local network(s) : 10.1.0.0/24
Concurrent connections : 20 (tout dépend du nombre de personnes qui se conecteront au serveur openvpn) Dynamic IP : A vous de voir si vos clients sont en IP fixes ou dynamiques...
Topology : net30 --Isolated /30 network per client (si vous voulez isoler les clients.. attention, utilise 4 adresses IP par connection ! -> /30)
Inactive : 0
DNS Default Domain : cocher si vous avez un domaine (genre TSSR.INFO)
DNS Server enable : permettre au client d'utiliser le DNS de l'entreprise (indispensable dans le cas d'un active directory). Rajoute une carte réseau virtuelle sur le client, permettant de renseigner le DNS du Serveur AD de l'entreprise (où celui qui vous arrange !)
Block Outside DNS : pour clients windows 10
Force DNS cache update : forcer la mise à jour du cache DNS sur les clients windows
NTP Server enable : si l'entreprise est reliée à un serveur NTP particulier
Save6) Créer la règle côté WAN,
permettant une connexion sur le port 1194
Firewall -> Rules -> WAN -> Add
Protocol : UDP
Source : any
Destination Port Range : From 1194 To 1194
Description : OpenVPN-access
Save
Apply Change
Firewall -> Rules -> OpenVPN -> Add (créer les règles souhaitées.. interdire l'accès à l'AD etc..)
Pour l'exemple, on va uniquement autoriser la connexion vers le SRV-WEB
Protocol TCP
Source Network : 10.199.199.0 /24
Destination : Single host or alias : 10.1.0.200 (IP de SRV-WEB)
Destination : From 80 to 80
Description : SRV-WEB_access
Save
Apply Change
Dernier point à modifier : dans notre cas de figure, le WAN est un réseau d'IP privé..
Or, par défaut, PFSENSE bloque les IP provenant des réseaux privés à son entrée WAN.
Firewall -> Rules -> WAN : RFC1918
Ouvrez la règle par défaut concernant l'interdiction des réseaux privés d'accéder par la WAN (RFC1918)
Allez décocher les 2 options tout en bas de la règle, enregistrez, et appliquez les changements.7) Installer le module openvpn-client-export
System -> Package Manager -> Available Packages -> Search term : openvpn -> Search
installez openvpn-client-export8) Exportez la configuration pour l'utilisateur Micheline (ou celui pour tout le monde)
VPN -> OpenVPN -> Client Export -> Remote Access
Server : SERVEUR-OPENVPN UDP4:1194
Additional configuration options : auth-nocache
Save as default (descendre plus bas)
VPN-CLIENT-MICHELINE
- Pour un client sur Windows : Current Windows Installers
Télécharger la version windows qui correspond au poste client
- Pour un client sur Linux/FreeBSD : Inline Configurations
Télécharger 'Most Clients' qui contient la totalité du fichier de configuration du client.9) Transférez ce fichier sur le client. Pour un client sur FreeBSD, le script de configuration général permet de configurer le client automatiquement.
Tags : openvpn, client-to-site, pfsense