Nous allons voir ici comment mettre en place un serveur OpenVPN sous Microsoft Windows Serveur.
Il sagit de la suite de mon précédent "Tutoriel" que j'ai écris (le lien ici) sous Windows 2019 (ce qui ne change pas grand chose) mais avec l'activation de la fonctionnalité de routage qui permet de joindre le LAN depuis notre client distant.
OpenVPN est un VPN performant, qui a plusieurs avantages : il est gratuit, compatible avec les principaux systèmes d'exploitation, facile à implémenter 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 avoir besoin d'ajouter OpenSSL dans les variables d'environnement.
Nous avons besoin d'ouvrir le port 1194 en udp pour autoriser les flux OpenVPN.
C:\Windows\system32>netsh advfirewall firewall add rule name="OpenVPN" dir=in localport=1194 remoteport=0-65535 protocol=UDP action=allow remoteip=any localip=any
PS C:\ > New-NetFirewallRule -DisplayName "OpenVPN" -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow
Se rendre sur le site officiel d'OpenVPN et télécharger ici 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.
C:\Windows\system32> 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:MyPassW0rd
Verifying - Enter PEM pass phrase:MyPassW0rd
[…]
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:MyPassW0rd
# ./easyrsa gen-dh
# ./easyrsa build-client-full client01 nopass
[…]
Enter pass phrase for c:\Program Files\OpenVPN\easy-rsa\pki\private\ca.key:MyPassW0rd
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
Le service OpenVPN doit être redémarré pour que la modification du fichier de configuration soit prise en compte.
C:\Windows\system32>net stop openvpnservice
C:\Windows\system32>net start openvpnservice
PS C:> Restart-Service OpenVPNService -PassThru
On téléchargera le même package que pour le serveur, mais ici l'installation par défaut sera suffisante.
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
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 (le partage de fichiers et ping étaient KO 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.
À ce stade nous avons un serveur OpenVPN fonctionnel qui est joignable depuis notre client distant. Mais comment joindre notre serveur sur son ip privée (192.168.0.254 ici) ou d'autres machines (192.168.0.200 ici) de notre réseau local? C'est ce que nous allons voir en activant le routage sur notre serveur OpenVPN Windows.
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
push "route 192.168.0.0 255.255.255.0"
push "dhcp-option DNS 192.168.0.200"
keepalive 10 120
#comp-lzo
persist-key
persist-tun
status openvpn-status.log
verb 3
PS C:> Restart-Service OpenVPNService -PassThru
PS C:> Install-WindowsFeature -Name Routing -IncludeManagementTools
Contact :