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 mettre en place un serveur en deux petites minutes. C’est interactif, on peux activer et configurer des fonctionnalité.

Voici comment 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’info, le github du script openvpn-install.

Sinon j’ai également fais un fork il y a quelques temps pour ajouter quelques fonctionnalité que je trouvais sympa. 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 veux etre plus précis dans la recherche
cat /etc/openvpn/easy-rsa/keys/index.txt | grep <nom du cert.>

V = Actif et R = Revoked

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 10ans, 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 fraichement 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 penser 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 rafraichissement automatique
watch cat /tmp/openvpn-status.log