Lancer Open VPN sous SystemD
OpenVPN est un logiciel libre permettant de créer un réseau privé virtuel (VPN). Cet article explique comment mettre en œuvre un client OpenVPN sous forme de service. Ce tutoriel est initialement rédigé pour une distribution « Manjaro ». Il devrait toutefois fonctionner correctement pour toutes les distributions basées sur « systemd ».
Mise en place des fichiers de configuration
La mise en place du VPN nécessite 4 fichiers de configuration :
- certificat et la clé de l’Autorité de Certification Maître (master Certificate Authority) : nomVPN-ca.crt ;
- certificat client : nomVPN-client.crt ;
- clé privée du client : nomVPN-client-key ;
- un fichier de configuration nomVPN.ovpn.
Pour plus de lisibilité en cas de gestion de multiples VPN, ces différents fichiers seront copiés dans « /etc/openvpn/nomVPN« . Par exemple, si l’on met en place deux VPN, l’arborescence sera similaire à celle-ci :
- etc
- openvpn
- VPN1
- VPN1-ca.crt
- VPN1-client.crt
- VPN1-client-key
- VPN1.ovpn
- VPN2
- VPN2-ca.crt
- VPN2-client.crt
- VPN2-client-key
- VPN2.ovpn
- VPN1
- openvpn
Tester la configuration
Avant de mettre en place les services, nous allons nous assurer que les fichiers de configuration sont corrects. Pour cela, nous lançons OpenVPN afin de vérifier que l’on accède correctement au VPN.
sudo openvpn --config /etc/openvpn/VPN1/VPN1.ovpn |
Si les fichiers de configuration sont corrects, la console doit afficher le message suivant :
Initialization Sequence Completed |
Dans le cas contraire, il faut vérifier les fichiers de configuration. En particulier, on veillera à ce que le fichier « VPN1.ovpn » référence correctement les autres fichiers de configuration (éventuellement en mettant le chemin absolu si nécessaire).
Créer le script pour lancer le service
Pour lancer un service, « systemd » s’appuie sur des scripts (.service) situés dans « /etc/systemd/system ». Pour chaque VPN auquel nous souhaitons nous connecter, nous allons créer un fichier « service » associé. Par convention, le nom du fichier sera « openvpn@nomVPN.service ».
1 2 3 4 5 6 7 8 9 10 | [Unit] Description=OpenVPN connection to nomVPN After=network.target [Service] Type=forking ExecStart=/usr/sbin/openvpn --config /etc/openvpn/nomVPN/nomVPN.ovpn --daemon openvpn@nomVPN WorkingDirectory=/etc/openvpn [Install] WantedBy=multi-user.target |
Activer le service
Pour activer le service au démarrage de la machine, lancer la commande suivante :
sudo systemctl enable openvpn@nomVPN.service |
Pour lancer le service immédiatement (et ne pas attendre que la machine redémarre), lancer la commande :
sudo systemctl start openvpn@nomVPN.service |
Il est possible de vérifier le statut du service avec la commande :
systemctl status openvpn@nomVPN.service |
Cet article Lancer Open VPN sous SystemD est apparu en premier sur Carnet de vol.