logo rss

Comment installer et configurer un serveur OpenVPN sur Windows

Logo OpenVPN

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.

Schéma réseau

Schéma réseau d'une infrastructure OpenVPN sous Windows

Configuration Serveur

Windows Server Logo
  • Serveur OpenVPN :
    • OS : Windows Server 2019
    • Role : OpenVPN Server
    • IP : 192.168.0.254

Prérequis

Pour créer les certificats de connexion, nous devrons installer OpenSSL. J'utilise personnelement les packages proposés sur slproweb.com.

Télécharger OpenSSL

Télécharger la dernière version d'OpenSSL Light.

slproweb website Download OpenSSL

Installer OpenSSL

  • Accepter le Contrat de Licence :
OpenSSL installation | License agreement
  • Choisir le dossier d'installation :
OpenSSL installation | Destination location
  • Définir le dossier du menu démarrer :
OpenSSL installation | Select Start Menu Folder
  • Choisir de copier les DLLs OpenSSL dans le dossier bin :
OpenSSL installation | OpenSSL DLLs location
  • Cliquer pour installer :
OpenSSL installation | Ready to install
  • Cliquer sur Finish pour fermer (et si vous pouvez faites un don :)) :
OpenSSL installation | Donation to windows

Ajout OpenSSL dans les variables d'environement

Nous allons ajouter OpenSSL dans les variables d'environnement.

  • Exécuter SystemPropertiesAdvanced pour ouvrir les Propriétés Système :
Propriétés Système Windows
  • Cliquer sur Variables d'Environnement… :
OpenSSL installation
  • Éditer Path :
OpenSSL installation
  • Cliquer sur Nouveau et ajouter %ProgramFiles%\OpenSSL-Win64\bin :
OpenSSL installation
  • Ouvrir un prompt Windows et vérifier que l'on peut exécuter une commande openssl :
OpenSSL installation

Installation d'OpenVPN

Aller sur le site officiel https://openvpn.net/ d'OpenVPN et télécharger la dernière version de l'installeur msi.

Page de téléchargement OpenVPN
  • Comme nous voulons installer OpenVPN en mode serveur nous allons choisir Customize :
Installation d'OpenVPN choose setup type
  • On active le Service OpenVPN pour que le service soit actif au démarrage de Windows :
OpenVPN Windows Installer
  • On installe également EasyRsa afin de pouvoir créer les certificats serveur et clients :
OpenVPN Windows Installer
  • Une fois terminé on clique sur Close :
OpenVPN Windows Installer

Création de l'autorité de certification (CA) et génération des certificats et clés pour le serveur et clients

Ici on mettra en place une pki pour la création de nos certificats serveur et clients.

  • Ouvrir l'invite de commande :
la console windows depuis le menu démarrer
  • Et taper les commandes suivantes pour entrer dans le shell EasyRSA :
C:\Users\Administrator>cd C:\Program Files\OpenVPN\easy-rsa C:\Program Files\OpenVPN\easy-rsa>EasyRSA-Start.bat
  • Supprimer la configuration existante (normalement inutile) :
# ./easyrsa clean-all
  • Initialiser notre pki, taper yes pour confirmer :
# ./easyrsa init-pki OpenVPN on Windows Easy RSA Shell init-pki
  • Créer son autorité de certification :
# ./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
  • Créer la paire de clé pour le serveur :
# ./easyrsa build-server-full server nopass […] Enter pass phrase for C:/Program Files/OpenVPN/easy-rsa/pki/private/ca.key:PEMpa$$td
  • Générer les paramètres Diffie Hellman :
# ./easyrsa gen-dh

Créer des certificats clients

  • Si fermé précédement ou pour ajouter de nouveaux clients, ouvrir un shell EasyRSA :
C:\Users\Administrator>cd C:\Program Files\OpenVPN\easy-rsa C:\Program Files\OpenVPN\easy-rsa>EasyRSA-Start.bat
  • Créer les certificats pour client01 :
# ./easyrsa build-client-full client01 nopass […] Enter pass phrase for C:/Program Files/OpenVPN/easy-rsa/pki/private/ca.key:PEMpa$$td

Les Certificats

  • Déplacer les fichiers suivants (présents dans les répertoires : C:\Program Files\OpenVPN\easy-rsa\pki, C:\Program Files\OpenVPN\easy-rsa\pki\issued et C:\Program Files\OpenVPN\easy-rsa\pki\private) :
    • ca.crt
    • dh.pem
    • server.crt
    • server.key
  • Dans C:\Program Files\OpenVPN\config-auto et C:\Program Files\OpenVPN\config.
OpenVPN on Windows config-auto folder

Paramétrer le pare-feu Windows

Logo du pare-feu Windows
  • Nous avons besoin de créer deux règles au niveau du pare-feu :
    • Une pour ouvrir le port 1194 en udp afin d'autoriser les connexions des clients OpenVPN
    • Une autre pour autoriser le réseau 10.50.8.0/24 afin que les clients puissent dialoguer avec les services présents sur le serveur (ping, partage de fichiers etc…).
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.

On peut au choix utiliser la Console de Management de pare-feu Windows ou taper ces commandes depuis une console PowerShell et en Administrateur.

  • Ouvrir une console PowerShell avec les droits administrateur et entrer la commande suivante pour créer la règle qui autorise les connexions entrantes sur le port 1194 udp :
PS C:\ > New-NetFirewallRule -DisplayName "OpenVPN" -Direction Inbound -Protocol UDP -LocalPort 1194 -Action Allow
  • Entrer la commande PowerShell suivante pour autoriser les connexions entrantes depuis le réseau 10.50.8.0/24 :
PS C:\ > New-NetFirewallRule -DisplayName "OpenVPN_Network" -Direction Inbound -RemoteAddress 10.50.8.0/24 -Action Allow

Le fichier de configuration server.ovpn

En tant qu'administrateur, créer le fichier C:\Program Files\OpenVPN\config-auto\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

Puis, redémarrer le service OpenVPN au choix :

  • Depuis, la console de gestion des services :
Windows Run, services.msc
  • Clic droit sur le service OpenVPNService et Redémarrer :
Windows services management console, restart openvpnservice.
  • Ou, en tant qu'administrateur depuis une console :
C:\Windows\system32>net stop openvpnservice C:\Windows\system32>net start openvpnservice
  • Ou encore en PowerShell :
C:\ PS> Restart-Service OpenVPNService

Configuration Client

Windows Client Logo
  • Client OpenVPN :
    • OS : Windows 11
    • Role : OpenVPN Client

Installation d'OpenVPN

On téléchargera le même package que pour le serveur, mais ici l'installation par défaut sera suffisante.

Fenêtre d'installation de OpenVPN avec le choix entre personnaliser ou d'installer maintenant

Copie des certificats depuis le Serveur

  • Depuis le Serveur récupérer les fichiers suivants (depuis les dossiers C:\Program Files\OpenVPN\easy-rsa\pki, C:\Program Files\OpenVPN\easy-rsa\pki\issued and C:\Program Files\OpenVPN\easy-rsa\pki\private) :
    • ca.crt
    • client01.crt
    • client01.key
  • Et les coller dans C:\Program Files\OpenVPN\config.
Windows 11, OpenVPN certificates.
  • Créer le fichier C:\Program Files\OpenVPN\config\client.ovpn avec les droits administrateur et préciser l'adresse ip du 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

  • Ouvrir en tant qu'administrateur (doit normalement marcher en tant qu'utilisateur normal).
fenêtre windows 11 pour ouvrir OpenVPN avec les droits administrateur.
  • Démarrer la connexion
fenêtre OpenVPN pour établir une connexion vpn.
  • Un pop-up viendra confirmer la connexion
Pop up OpenVPN pour indiquer au client que la connexion est établie

Accès au Serveur

Une fois le VPN établit, nous pouvons joindre le Serveur depuis l'adresse 10.50.8.1.

Windows fenetres dos avec un ping continu et un explorateur windows ouverts

⚠️ 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.

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.

Contact :

adresse mail de contact