J’ai trouvé par hasard l’autre jour un petit script qui peut aider les novices dans l’installation d’un serveur OpenVPN sous Linux.

bourooopenvpn-install_-_Mozilla_Firefox_2016-01-12_21-58-11

Il permet d’installer et de mettre en place un serveur en deux petites minutes. C’est interactif, on peut activer et configurer des fonctionnalités.

Voici comment l’exécuter :

wget goo.gl/OQALpo --no-check-certificate -O openvpn-install.sh && bash openvpn-install.sh

Ensuite, asseyez-vous et laissez-vous guider.

Pour plus d’infos, le GitHub du script openvpn-install.

Sinon, j’ai également fait un fork il y a quelque temps pour ajouter quelques fonctionnalités que je trouvais sympas. Ceci dit, il n’est pas du tout à jour et je ne le maintiens pas.

 

Comment vérifier la validité d’un certificat

openssl x509 -in <nom du cert>.crt -noout -enddate

Comment voir si un certificat est révoqué ou pas

#supposons que le répertoire qui contient les certificats est /etc/openvpn/easy-rsa/keys
cat /etc/openvpn/easy-rsa/keys/index.txt
# Ou si on veut être plus précis dans la recherche
cat /etc/openvpn/easy-rsa/keys/index.txt | grep <nom du cert.>

V = Actif et R = Révoqué

Que faire quand votre CA (ca.crt) est expiré

Si votre certificat CA est expiré, il faut en générer un nouveau et le signer avec la clé CA.key existante. (Par défaut il est valide 10 ans, mais ici on va mettre un peu plus 😀 .)

openssl x509 -in ca.crt -days 36500 -out ca_new.crt -signkey ca.key

ca.crt est l’ancien certificat, ca_new.crt est le nouveau fraîchement généré, et le ca.key est la clé (qui ne changera pas pour ne pas devoir régénérer les certificats clients)

Nous pouvons tester notre nouveau certificat CA avec un certificat client :

openssl verify -CAfile ca_new.crt client.crt
client.crt: OK

On fait un backup de l’ancien certificat CA et on applique le nouveau

mv ca.crt ca.crt.old
mv ca_new.crt ca.crt

Maintenant, il faut distribuer et remplacer le nouveau ca.crt chez les clients.

Pensez aussi à vérifier la date d’expiration des certificats serveur et clients (voir ci-dessus).

Si vous y avez pensé tôt assez, pour éviter les surprises vous pouvez mettre les deux CA dans le même fichier.

Si les certificats clients sont expirés il faut recréer ceux qui sont expirés (via build-key).
Si c’est le certificat du serveur qui est expiré, il faut sauvegarder l’ancien et générer un nouveau (via build-key-server).

Comment voir qui est connecté actuellement au VPN

Tout d’abord, dans votre fichier de configuration du serveur il faut déclarer le fichier status.

...
status /tmp/openvpn-status.log
...

Il suffit d’afficher le contenu de ce fichier

cat /tmp/openvpn-status.log
# Ou bien avec un rafraîchissement automatique
watch cat /tmp/openvpn-status.log