[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: OpenVPN sous Stretch avec systemd



Merci.


Roger dit :
Je fais fonctionner sans souci un client OpenVPN sous Jessie.
   Manuellement ou automatiquement.

 Sous Stretch, qui utilise systemd, j'ai des problèmes (par méconnaissance de systemd).
 Je peux lancer le client OpenVPN en CLI
 $ sudo openvpn client.conf
 Et Ctrl-C pour interrompre.

Daniel dit :
sudo systemctl start openvpn ou openvpn@client pour ne lancer que ce client

Roger dit :
seule la commande  suivante fonctionne (voir plus bas):
$ sudo systemctl start openvpn



Roger dit :
En cherchant, j'ai réglé le problème de la façon suivante :
 $ cat /etc/default/openvpn
 ...
 AUTOSTART="all"
 ...
 Cette ligne est commentée par défaut.

 Puis, comme indiqué dans ce même fichier :

 $ sudo systemctl daemon-reload
 $ sudo systemctl restart openvpn

 Et là, ça fonctionne immédiatement (je n'ai pas essayé la sortie de veille et d'hibernation).

 Il reste cependant deux problèmes à régler :
 1/ je n'ai plus accès à internet via le lien où se trouve le serveur VPN (comme la machine Jessie dont l'IP est la même que toute machine qui s'y trouve).
 Je ne sais pas comment faire ? : oú dois-je chercher ?

Daniel dit :
systemctl ne joue en rien sur le routage, le problème doit venir d'autre part
  sudo ifconfig pour afficher les interfaces et vérifier qu'elles soient conformes
  sudo ip r pour afficher les routes et vérifier qu'elles soient conformes


Roger dit :
ifconfig n'est plus dans Stretch. Alors j'utilise la commande ip
Peux-tu préciser ce que tu entends par "conformes" ?
Voilà ce que j'obtiens :
$ ip r
default via 212.27.38.253 dev tun0
<mon-ip-fixe-masquée> via 192.168.0.1 dev wlp32s0
169.254.0.0/16 dev tun0 scope link metric 1000
192.168.0.0/24 dev wlp32s0 proto kernel scope link src 192.168.0.102
192.168.0.0/24 dev wlp32s0 proto kernel scope link src 192.168.0.102 metric 600
192.168.27.64/27 via 212.27.38.253 dev tun0
212.27.38.253 dev tun0 proto kernel scope link src 192.168.27.68

Ça vous parle ?
Je cherche une solution pour cet autre problème de routage.



Roger dit :
2/ ça crée un problème causé en fait par le serveur OpenVPN : la tentative de reconnexion "sauvage" du client alors que le serveur voit le client connecté déclenche une trentaine de transactions "Failed" pendant quelques minutes et puis ça finit par aboutir. Pendant ce temps là, pas de réseau du tout.
 Comment gérer proprement la connexion et la déconnexion du client OpenVPN avec systemd (si connecté, utiliser la cnx VPN ; sinon, se connecter)

Daniel dit :
sudo systemctl stop openvpn@client
sudo systemctl start openvpn@client
ou sudo systemctl restart openvpn@client

Roger dit :
$ sudo systemctl start openvpn
fonctionne
mais il y a un problème avec :
$ sudo systemctl start openvpn@client
Job for openvpn@client.service failed because the control process exited with error code.
See "systemctl status openvpn@client.service" and "journalctl -xe" for details.


$ sudo systemctl status openvpn@client.service
● openvpn@client.service - OpenVPN connection to client
   Loaded: loaded (/lib/systemd/system/openvpn@.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Sat 2018-09-08 21:06:04 CEST; 10min ago
     Docs: man:openvpn(8)
           https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
           https://community.openvpn.net/openvpn/wiki/HOWTO
  Process: 924 ExecStart=/usr/sbin/openvpn --daemon ovpn-client --status /run/openvpn/client.status 10 --cd /etc/openvpn --config /etc/openvpn/client.conf --writepid /run/openvpn/client.pid (code=exited, status=1/FAILURE)

Sep 08 21:06:04 debian systemd[1]: Starting OpenVPN connection to client...
Sep 08 21:06:04 debian ovpn-client[924]: Options error: In [CMD-LINE]:1: Error opening configuration file: /etc/openvpn/client.conf
Sep 08 21:06:04 debian ovpn-client[924]: Use --help for more information.
Sep 08 21:06:04 debian systemd[1]: openvpn@client.service: Control process exited, code=exited status=1
Sep 08 21:06:04 debian systemd[1]: Failed to start OpenVPN connection to client.
Sep 08 21:06:04 debian systemd[1]: openvpn@client.service: Unit entered failed state.
Sep 08 21:06:04 debian systemd[1]: openvpn@client.service: Failed with result 'exit-code'.


CONSTAT INTERESSANT :
systemd cherche à utiliser /etc/openvpn/client.conf (avec le nom client.conf) qui n'existe pas puisque j'ai le fichier de configuration suivant :
/etc/openvpn/client/config_openvpn_routed_debian.conf

Je peux bricoler en copiant mon fichier de configuration client ici avec ce nom client.conf (j'ai fait le test : et la commande $ sudo systemctl status openvpn@client.service fonctionne)
Mais quelles sont les règles à respecter pour utiliser systemd avec OpenVPN ?


$ sudo journalctl -xe
Sep 08 21:06:04 debian sudo[921]:       truc : TTY=pts/6 ; PWD=/etc/openvpn/client ; USER=root ; COMMAND=/bin/systemctl start openvpn@client
Sep 08 21:06:04 debian sudo[921]: pam_unix(sudo:session): session opened for user root by (uid=0)
Sep 08 21:06:04 debian systemd[1]: Starting OpenVPN connection to client...
-- Subject: Unit openvpn@client.service has begun start-up
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit openvpn@client.service has begun starting up.
Sep 08 21:06:04 debian ovpn-client[924]: Options error: In [CMD-LINE]:1: Error opening configuration file: /etc/openvpn/client.conf
Sep 08 21:06:04 debian ovpn-client[924]: Use --help for more information.
Sep 08 21:06:04 debian systemd[1]: openvpn@client.service: Control process exited, code=exited status=1
Sep 08 21:06:04 debian systemd[1]: Failed to start OpenVPN connection to client.
-- Subject: Unit openvpn@client.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- Unit openvpn@client.service has failed.
--
-- The result is failed.
Sep 08 21:06:04 debian systemd[1]: openvpn@client.service: Unit entered failed state.
Sep 08 21:06:04 debian systemd[1]: openvpn@client.service: Failed with result 'exit-code'.
Sep 08 21:06:04 debian sudo[921]: pam_unix(sudo:session): session closed for user root
Sep 08 21:06:10 debian sudo[931]:       truc : TTY=pts/6 ; PWD=/etc/openvpn/client ; USER=root ; COMMAND=/bin/journalctl -xe
Sep 08 21:06:10 debian sudo[931]: pam_unix(sudo:session): session opened for user root by (uid=0)


Pouvez-vous me recommander un document de référence sur systemd que je me mette au niveau ?
Et, s'il existe, un document sur OpenVPN avec systemd ?


Enfin, je note que la commande
$ sudo systemctl stop openvpn

"libère" le réseau (je peux accéder à internet) mais ne déconnecte pas "proprement" le client du serveur, car le serveur conserve la connexion du client encore quelques mn. Du coup, un
$ sudo systemctl start openvpn
va créer le problème décrit ci-dessus (plusieurs tentatives de connexion "Failed" pendant quelques mn avant que ça aboutisse : concrètement, on voit sur le serveur la machine authentifiée et la même machine "en attente d'authentification")

Je rappelle qu'avec Jessie le lancement d'OpenVPN client ça marche impeccablement.

Par ailleurs, pour être complet, on peut se demander s'il est normal que le serveur OpenVPN (celui d'une FreeBox Revolution) conserve de la sorte des clients dans l'état connecté alors qu'une commande de déconnexion a été exécutée (le client se croit déconnecté ; le serveur n'a pas le même état).
Je cherche, mais j'aimerais bien avoir votre avis sur ce point.

Cerise sur le gâteau : je viens de me rendre compte que la commande suivante fonctionne aussi (avec le même comportement vis-à-vis du serveur) :
$ sudo service openvpn start
Je me demande quel sens ça a de mettre en place systemd pour OpenVPN et de laisser service (utilisé avec Jessie) pour OpenVPN.
A un moment, il faut rationnaliser et s'en tenir à un mécanisme robuste !


Merci




Reply to: