COMPUTING > Virtual Private Cloud > VMware vCloud Director > Comment établir une connexion VPN avec OpenVPN

3.4.1 Comment établir une connexion VPN avec OpenVPN

Consultez la documentation officielle VMware sur comment créer un VPN avec OpenVPN.

OpenVPN est une solution VPN SSL qui implémente une extension de réseau sécurisé de niveau OSI 2 ou OSI 3, en utilisant le protocole SSL/TLS standard du secteur et s'adapte à un large éventail de configurations. OpenVPN prend en charge les clients avec les systèmes d'exploitation Windows, Linux, FreeBSD, OpenBSD, macOS, iOS et Android.

Elle prend en charge des méthodes d'authentification client flexibles basées sur des certificats, des cartes à puce et/ou des identifiants de nom d'utilisateur/mot de passe et permet aux utilisateurs et/ou groupes de contrôler les politiques d'accès via des règles de pare-feu appliquées à l'interface virtuelle VPN.

Vous trouverez ci-dessous les concepts généraux avec les étapes pour établir une connexion VPN à l'aide d'OpenVPN; à la fin, vous trouverez des liens vers des guides d'exemple pour la configuration/implémentation dans le cas du système d'exploitation Windows Server 2019 et Ubuntu 20.04.
 
La configuration d'un VPN implique souvent de connecter des sous-réseaux privés à partir de différents emplacements. L'IANA (Internet Assigned Numbers Authority) a réservé les trois blocs suivants de l'espace d'adressage IP pour Internet privé (encodé dans RFC 1918):
  • 10.0.0.0 – 10.255.255.255 (préfixe 10/8)
  • 172.16.0.0 – 172.31.255.255 (préfixe 172.16/12)
  • 192.168.0.0 – 192.168.255.255 (préfixe 192.168/16)
Il est important de sélectionner des adresses qui minimisent la probabilité de conflits d'adresses IP ou de sous-réseau. Certains aspects de la configuration réseau du serveur doivent être optimisés afin qu'ils puissent acheminer correctement le trafic via le VPN:
  • transfert d'adresses IP - la capacité d'un système d'exploitation à accepter les paquets réseau entrants sur une interface, à reconnaître qu'ils ne sont pas destinés au système lui-même, mais qu'ils doivent être transmis à un autre réseau, puis transmis en conséquence;
  • configuration du firewall - doit être exécuté sur la machine virtuelle faisant office de serveur VPN d'accès distant:
    • port SSH;
    • ports utilisés par les solutions VPN (par exemple, le port UDP/1194 prédéfini pour OpenVPN);
Il faut s'assurer que les VM du réseau vDC (virtual Data Center) auxquelles on veut se connecter, à l'aide du VPN, acheminent le trafic réseau vers le serveur VPN. Une solution consiste à implémenter un NAT one-to-many pour les clients connectés.
La première étape dans la création d'une configuration OpenVPN est d'établir une PKI (infrastructure à clé publique). La PKI se compose de:
  • un certificat séparé (également appelé clé publique) et une clé privée pour le serveur et chaque client;
  • un certificat et une clé d'autorité de certification (CA) master utilisée pour signer chacun des certificats serveur et client;
OpenVPN prend en charge l'authentification bidirectionnelle basée sur un certificat, ce qui signifie que le client doit authentifier le certificat du serveur et le serveur doit authentifier le certificat du client. Pour la gestion des PKI, OpenVPN suggère l'utilisation de easy-rsa, une CLI (Command-Line Interface) pour créer et gérer une CA PKI. Les étapes décrivant comment configurer votre propre autorité de certification et générer des certificats et des clés se trouvent dans la documentation de OpenVPN.

Implémentation côté Serveur

Le serveur OpenVPN utilise le port 1194 et le protocole UDP par défaut pour accepter les connexions client. Si vous devez utiliser un port différent en raison d'environnements réseau restrictifs dans lesquels les clients peuvent se trouver, vous pouvez modifier les options de port et de protocole. Le port 1194 est le numéro de port officiel attribué par l'IANA pour OpenVPN, mais tout numéro de port entre 1 et 65535 fonctionnera s'il n'est pas déjà utilisé sur le serveur. Le port 443 est le choix le plus courant, car il est généralement autorisé par les règles de pare-feu.

La configuration est stockée dans le fichier server.conf et contient des informations telles que l'adresse IP et le port sur lequel le service écoute, la liste de chiffrement du service, son certificat de service, etc..

Comme point de départ pour votre configuration, nous vous recommandons d'utiliser les exemples de fichiers de configuration d'OpenVPN, qui peuvent être trouvés dans:
  • le répertoire sample-config-files de la distribution source OpenVPN
  • le répertoire sample-config-files dans /usr/share/doc/packages/openvpn ou /usr/share/doc/openvpn si installé depuis un pack RPM ou DEB
  • Start Menu > All Programs > OpenVPN > OpenVPN Sample Configuration Files sur Windows
À l'aide des exemples de fichiers de configuration OpenVPN, un VPN sera créé à l'aide d'une interface réseau virtuelle TUN (mode routé), qui écoutera les connexions client sur le port UDP 1194 et distribuera des adresses virtuelles aux clients connectés à partir du sous-réseau 10.8.0.0/24. En modifiant les paramètres des fichiers dans le répertoire décrit ci-dessus, il est possible de changer leur comportement.
 
Avant d'utiliser l'exemple de fichier de configuration, vous devez modifier les paramètres ca, cert, key et dh (Diffie hellman) pour pointer vers les fichiers qui ont été générés dans la section PKI. À ce stade, le fichier de configuration du serveur est utilisable.

Implémentation côté Client

Les étapes suivantes sont liées à la configuration du client : génération de certificats et de paires de clés, et création du fichier de configuration du client.

La dernière étape concerne les fichiers de configuration du client qui reflètent les directives par défaut définies dans le fichier de configuration du serveur:
  • comme pour le fichier de configuration du serveur, modifiez d'abord les paramètres ca, cert, key et dh pour qu'ils pointent vers les fichiers générés précédemment. Notez que chaque client doit avoir son propre couple certificat/clé. Seul le fichier ca est universel sur le serveur OpenVPN et sur tous les clients.
  • changez la directive remote pour qu'elle pointe vers le nom d'hôte/l'adresse IP et le numéro de port du serveur OpenVPN: utilisez l'adresse IP publique qui est NAT vers le serveur VPN.

Exemples d'établissement d'une connexion VPN avec OpenVPN: