From eb393b898b46bee8c2949c3f4cba4ea19fb9f9a2 Mon Sep 17 00:00:00 2001 From: Daniel Jakots Date: Thu, 9 Nov 2017 15:36:50 -0500 Subject: [PATCH] refonte partie PKI --- HowtoOpenVPN.md | 67 ++++++++++++++++++++++--------------------------- 1 file changed, 30 insertions(+), 37 deletions(-) diff --git a/HowtoOpenVPN.md b/HowtoOpenVPN.md index 36675db1..5e373b8b 100644 --- a/HowtoOpenVPN.md +++ b/HowtoOpenVPN.md @@ -207,11 +207,13 @@ Enfin on installe les dépendances du check ~~~ -## Mise en place d'une PKI avec shellPKI (OpenBSD et Debian) +## PKI avec shellPKI (OpenBSD et Debian) -OpenVPN s'appuye par défaut sur des certificats, il est donc nécessaire de mettre en place une PKI. +OpenVPN s'appuie par défaut sur des certificats, il est donc nécessaire de mettre en place une PKI. On utilisera [shellPKI](https://forge.evolix.org/projects/shellpki) permettant de gérer une PKI très simplement en ligne de commande. +### Mise en place + * Créer le répertoire `/etc/openvpn/ssl`, et cloner le dépôt shellpki : ~~~ @@ -237,6 +239,32 @@ On utilisera [shellPKI](https://forge.evolix.org/projects/shellpki) permettant d * Confirmer l'initialisation, et choisir la passphrase qui sera demandée à chaque création de nouveaux certificats, puis le `Common Name` des futurs certificats créés (ex : `vpn.example.com`) +### Créer un nouveau certificat + +~~~ +# cd /etc/openvpn/ssl +# sh shellpki.sh create +~~~ + +* Choisir un CN unique pour la machine (ex : `client1.vpn.example.com`) + +* Récupérer le certificat et la clé dans `/var/www/htdocs/vpn/ssl` + +* Dans la conf client, rajouter la directive _nobind_. Par défaut le client se bind sur l'ip locale et le port 1194, _nobind_ force l'utilisation d'un port aléatoire. + +### Renouveller un certificat + +Il faut le révoquer, puis en recréer un : + +~~~ +# cd /etc/openvpn/ssl +# sh shellpki.sh revoke +# sh shellpki.sh create +# cp /etc/openvpn/ssl/crl.pem /var/empty/ +~~~ + +Si c'est le certificat, du serveur OpenVPN, il faut en plus modifier +la configuration puis relancer le démon. ## Permettre aux clients de conserver la même IP au fil de connexions @@ -253,41 +281,6 @@ ifconfig-pool-persist /etc/openvpn/ipp.txt 0 Cela rend le fichier _ipp.txt_ en lecture seule pour OpenVPN. Il faudra donc ajouter une nouvelle ligne de la forme CN,IP à chaque ajout d'un nouveau client. -## Créer les paramètres pour un nouveau client VPN - -* Exécuter : - -~~~ -# cd /etc/openvpn/ssl -# sh shellpki.sh create -~~~ - -* Choisir un CN unique pour la machine (ex : `client1.vpn.example.com`) - -* Récupérer le certificat et la clé dans `/var/www/htdocs/vpn/ssl` - -* Dans la conf client, rajouter la directive _nobind_. Par défaut le client se bind sur l'ip locale et le port 1194, _nobind_ force l'utilisation d'un port aléatoire. - -## Renouveller le certificat principal du VPN - -Si le certificat indiqué au niveau de la configuration OpenVPN expire lui-même : - -~~~ -cert /etc/openvpn/ssl/files/fw.vpn.example.com-1278421834/fw.vpn.example.com.crt -key /etc/openvpn/ssl/files/fw.vpn.example.com-1278421834/fw.vpn.example.com.key -~~~ - -Il faut le révoquer, puis en recréer un : - -~~~ -# cd /etc/openvpn/ssl -# sh shellpki.sh revoke -# sh shellpki.sh create -# cp /etc/openvpn/ssl/crl.pem /var/empty/ -~~~ - -Enfin, on ajuste les lignes dans la configuration OpenVPN et on relance le daemon. - ## Configuration inline pour client OpenVPN