Réseau

OpenVPN : PKI

Nous voilà dans la deuxième partie des articles sur OpenVPN. Nous allons voir, maintenant, comment mettre en place une véritable configuration de VPN. Par « véritable configuration », j’entends « sécurisée », et utilisable de manière souple, en production. Nous allons donc mettre en place une infrastructure à clés publiques, et ainsi franchir le pas de la configuration de test à la configuration de prod… Allons-y!Après avoir mis en place une configuration facile, basée sur une clé privée (en suivant cet article), vous avez pu monter un tunnel VPN. La suite logique est maintenant d’apporter plusieurs choses, dont de la sécurité et de la souplesse. La sécurité sera apportée par une infrastructure à clé publique (PKI), et la souplesse par une configuration permettant à plusieurs clients de se connecter.

Construction de la PKI

Nous allons ici mettre en place l’infrastructure de clés publiques, pas à pas.

Tout d’abord (sur le serveur), nous allons lancer un batch :

Ouvrez une invite de commande (en tant qu’admin). Déplacez vous dans le répertoire easy-rsa d’OpenVPN, puis lancez le batch suivant :

init-config

Il va créer les fichiers vars.bat et openssl.cnf.

Maintenant, éditez le fichier C:\Program Files\OpenVPN\easy-rsa\vars.bat afin de remplir les bonnes informations.

Renseignez ces variables :

set KEY_COUNTRY=FR
set KEY_PROVINCE=FR
set KEY_CITY=MaVille
set KEY_ORG=NomSociété
set [email protected]

Ensuite, ouvrez une invite de commande (en tant qu’admin). Déplacez vous dans le répertoire easy-rsa. Ensuite nous allons effectuer plusieurs actions.

Nous allons tout d’abord initialiser les variables

vars

Ensuite, nettoyez le fichier des clés et supprimez toute ancienne clés (pas nécessaire si c’est votre première installation sur la machine, ou si vous souhaitez conserver les anciennes clés).

clean-all.bat

Maintenons, nous allons créer l’autorité de certification (CA).

build-ca.bat

Cette commande va créer la clé privée du CA et son certificat . Ce certificat contient la clé publique. C’est le module OpenSSL qui est appelé à travers ce batch.
Si vous obtenez l’erreur « ‘openssl’ n’est pas reconnu en tant que commande interne« , il vous faut modifier le fichier build-ca.bat.
Remplacez, au début de la dernière ligne openssl par « C:\Program Files\OpenVPN\bin\openssl »

Lors de la création, les variables préalablement renseignées vont vous être proposées. Acceptez. Il n’y aura que le « Common Name » qui devra être renseigné (définissez le nom de la CA)

Maintenons, créer la clé privée et le certificat du serveur OpenVPN

build-key-server.bat nom_du_server

Cette commande va créer la clé privée du serveur et son certificat . Lors de la création, les variables préalablement renseignées vont vous être proposées. Acceptez. Il n’y aura que le « Common Name » qui devra être renseigné (renseigner par exemple le nom du serveur est une bonne convention).

Maintenant, même chose pour le client

build-key.bat nom_du_client

Pour chaque client, relancez la génération de la clé et de son certificat, en changeant le nom du client.

Dernière chose : Nous allons mettre en place un dispositif cryptographique nommé « Diffie Hellman ». C’est un échange de clés utilisé par deux équipements pour établir une clef partagée connue d’eux seuls. La configuration est à mettre en place seulement côté serveur.

build-dh.bat

Mise en place de la configuration

Nous avons maintenant un certain nombre de fichiers dans le répertoire config. Afin de mettre en place la solution VPN, nous allons devoir copier les fichiers nécessaires à chaque équipement.

Voilà une liste des copies à faire :

Nom du fichier Serveur Clients
ca.crt X X
ca.key X X
dh1024.pem X
server.crt X
server.key X
client1.crt X
client1.key X
client2.crt X
client2.key X

N’oubliez pas, les fichiers key doivent absolument être gardés précieusement secrets. Il faut donc les transférer par des moyens sécurisés, pour qu’ils ne soient pas interceptés.

Configuration des éléments

Nous allons maintenant configurer le serveur, ainsi que les clients, afin que le VPN puisse être utilisable.

Pour chacun de ces éléments, voici ce que je propose :

Rendez-vous dans « C:\Program Files\OpenVPN\sample-config ». Ici, vous avez des fichiers de configuration standards. Un pour chaque type de communiquant (client et server). Prenez le, et copiez le dans le répertoire « config ». Renommez le si vus voulez, pour qu’il soit plus parlant.

Ensuite, nous allons les modifier.

Il vous faut renseigner les localisations des fichiers certificats et clés.

Deux solutions :

Soit vous copiez les fichiers directement dans le répertoire config, et là vous n’avez qu’à renseigner les noms corrects.

Soit vous laissez les fichiers dans le répertoire RSA. Dans ce cas, indiquez la localisation de ces fichiers avec ce format :

ca "C:\\Program Files\\OpenVPN\\easy-rsa\\keys\\ca.crt"

Spécificités clients

Dans le fichier de configuration, vous devez modifier la ligne qui concerne le serveur auquel s’adresser :

remote adresseIP_ou_nom_de_domaine 1194

Dernière chose, il faudra, spécifiquement sur les clients Windows, ajouter cette option :

# Méthode de gestion des routes
route-method exe

Elle indique au client d’utiliser l’outil route.exe pour paramétrer les routes, plutôt que l’API Windows IP Helper. Cette dernière, utilisée par défaut, ne fonctionne pas très bien.

Voilà, vous avez mis en place une connexion VPN sécurisée, fonctionnelle.

En elle même, elle est fonctionnelle, mais un article arrive bientôt pour vous guider dans la sécurisation de l’accès réseau, lorsqu’un VPN est en place.

Dans le prochain article, découvrez comment utiliser votre connexion VPN depuis n’importe où, grâce à une configuration de type « Roadwarrior ».

Article suivant : OpenVPN : Roadwarrior

Samuel Monier

Informaticien indépendant Réseaux et systèmes - Infrastructure - Serveurs. J'interviens sur les départements 42 - 63 - 69 - 43 - 71, et à échelle nationale à distance. N'hésitez pas à me demander conseil!

Articles similaires

4 commentaires

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Bouton retour en haut de la page