web-dev-qa-db-fra.com

Comment le service OpenVPN démarre-t-il les connexions par défaut?

J'ai installé openvpn version 2.4.6-xenial0 à partir de la version officielle référentiel . Il semble que le service a été activé automatiquement:

cat /etc/systemd/system/multi-user.target.wants/openvpn.service

# This service is actually a systemd target,
# but we are using a service since targets cannot be reloaded.

[Unit]
Description=OpenVPN service
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecReload=/bin/true
WorkingDirectory=/etc/openvpn

[Install]
WantedBy=multi-user.target

Après le redémarrage, je constate que les connexions VPN configurées dans /etc/openvpn ont été démarrées. Cependant, le fichier de l'unité ne m'indique pas comment cela se passe réellement. Quelqu'un pourrait-il nous éclairer?

2
Eugene Yarmash

Parce que openvpn utilise une combinaison de SysV et systemd scripts.

TL; DR

Ce comportement peut être configuré dans le /etc/default/openvpn. Voici un extrait du fichier fourni par le package openvpn:

...
# Start only these VPNs automatically via init script.
# Allowed values are "all", "none" or space separated list of
# names of the VPNs. If empty, "all" is assumed.
# The VPN name refers to the VPN configutation file name.
# i.e. "home" would be /etc/openvpn/home.conf
#
# If you're running systemd, changing this variable will
# require running "systemctl daemon-reload" followed by
# a restart of the openvpn service (if you removed entries
# you may have to stop those manually)
#
#AUTOSTART="all"
#AUTOSTART="none"
#AUTOSTART="home office"
...

Ainsi, AUTOSTART n'est pas défini et tous les fichiers .conf du répertoire /etc/openvpn sont démarrés au démarrage.

En utilisant le moderne manière systemd

  1. Définissez AUTOSTART="none" dans /etc/default/openvpn
  2. Sudo systemctl daemon-reload

Vous pouvez maintenant utiliser systemctl pour gérer vos connexions openvpn. Le service porte le nom des fichiers de configuration suivants:

/etc/openvpn/ABC.conf -> [email protected]

/etc/openvpn/XYZ.conf -> [email protected]

Etc...

Exemples

Donc, si vous voulez démarrer la connexion XYZ openvpn, la commande doit être:

Sudo systemctl start openvpn@XYZ

Pour activer cette connexion au démarrage:

Sudo systemctl enable openvpn@XYZ

Pour obtenir le statut de cette connexion:

Sudo systemctl status openvpn@XYZ
2
pim