Nous allons voir comment mettre en place un serveur OpenVPN sous Microsoft Windows Serveur.
OpenVPN est un VPN performant, qui a plusieurs avantages : il est gratuit, compatible avec la plupart des systèmes d'exploitation, facile à mettre en œuvre et hautement paramétrable.
Pour créer les certificats de connexion, nous devrons installer OpenSSL. J'utilise personnelement les packages proposés sur slproweb.com. Télécharger la dernière version d'OpenSSL Light. Nous allons ajouter OpenSSL dans les variables d'environnement. Aller sur le site officiel https://openvpn.net/ d'OpenVPN et télécharger la dernière version de l'installeur msi. Ici on mettra en place une pki pour la création de nos certificats serveur et clients. On peut au choix utiliser la Console de Management de pare-feu Windows ou taper ces commandes depuis une console PowerShell et en Administrateur. En tant qu'administrateur, créer le fichier C:\Program Files\OpenVPN\config-auto\server.ovpn : Puis, redémarrer le service OpenVPN au choix : On téléchargera le même package que pour le serveur, mais ici l'installation par défaut sera suffisante. Une fois le VPN établit, nous pouvons joindre le Serveur depuis l'adresse 10.50.8.1. ⚠️ Troubleshooting : Suite à une mise à jour Windows, je ne pouvais plus avoir accès aux ressources du serveur (partage de fichiers et ping et alors même que le VPN était établi), j'ai du réparer l'installation d'OpenVPN (sur le serveur en relançant le programme d'installation) pour que cela fonctionne de nouveau.Schéma réseau
Configuration Serveur
Prérequis
Télécharger OpenSSL
Installer OpenSSL
Ajout OpenSSL dans les variables d'environement
Installation d'OpenVPN
Création de l'autorité de certification (CA) et génération des certificats et clés pour le serveur et clients
C:\Users\Administrator>cd C:\Program Files\OpenVPN\easy-rsa
C:\Program Files\OpenVPN\easy-rsa>EasyRSA-Start.bat
# ./easyrsa clean-all
# ./easyrsa init-pki
# ./easyrsa build-ca nopass
[…]
Enter PEM pass phrase:PEMpa$$td
Verifying - Enter PEM pass phrase:PEMpa$$td
[…]
Common Name (eg: your user, host, or server name) [Easy-RSA CA]:ovpn
# ./easyrsa build-server-full server nopass
[…]
Enter pass phrase for C:/Program Files/OpenVPN/easy-rsa/pki/private/ca.key:PEMpa$$td
# ./easyrsa gen-dh
Créer des certificats clients
C:\Users\Administrator>cd C:\Program Files\OpenVPN\easy-rsa
C:\Program Files\OpenVPN\easy-rsa>EasyRSA-Start.bat
# ./easyrsa build-client-full client01 nopass
[…]
Enter pass phrase for C:/Program Files/OpenVPN/easy-rsa/pki/private/ca.key:PEMpa$$td
Les Certificats
Paramétrer le pare-feu Windows
Note : ici la règle autorise tous les services pour le réseau 10.50.8.0/24. On pourra utiliser des règles plus restrictive en autorisant que les services nécessaire.
PS C:\ > New-NetFirewallRule -DisplayName "OpenVPN" -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow
PS C:\ > New-NetFirewallRule -DisplayName "OpenVPN_Network" -Direction Inbound -RemoteAddress 10.50.8.0/24 -Action Allow
Le fichier de configuration server.ovpn
port 1194
proto udp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh.pem
server 10.50.8.0 255.255.255.0
ifconfig-pool-persist ipp.txt
keepalive 10 120
comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
Redémarrage du service OpenVPN
C:\Windows\system32>net stop openvpnservice
C:\Windows\system32>net start openvpnservice
C:\ PS> Restart-Service OpenVPNService
Configuration Client
Installation d'OpenVPN
Copie des certificats depuis le Serveur
client
dev tun
proto udp
remote OPENVPN_IP 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client01.crt
key client01.key
comp-lzo
verb 3
Établir la connexion VPN
Accès au Serveur
Contact :