Ok, j'ai donc cherché sur le Web des solutions à ce problème sans qu'aucune réponse ne semble fonctionner pour moi. J'espère que quelqu'un pourra m'aider. J'essaie seulement de configurer le client OpenVPN.
Je cours CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linuxet je viens de passer à l'utilisation systemd. Le basculement s'est assez bien passé mais maintenant je n'arrive pas à faire venir mon client OpenVPN en utilisant systemd J'ai essayé de suivre ces tutoriels de configuration, mais rien ne fonctionne.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- Et regardé un tas d'autres guides différents.
Je peux afficher le tunnel depuis la ligne de commande avec openvpn /etc/openvpn/vpn.conf. Je sais donc que le fichier de configuration est bon, il fonctionnait très bien avec sysvinit, donc je ne suis pas surpris. J'essaye alors de faire juste un statut avec pour systemctl status openvpn@vpn.servicerésultat:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
J'ai réalisé que je dois faire une configuration pour les services. Je veux être invité à entrer un mot de passe, j'ai donc suivi ce guide pour créer un openvpn@.servicein /etc/systemd/system/. Mais le redémarrage du service OpenVPN ne demande toujours pas de mot de passe.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Les didacticiels Fedora passent par les étapes de création de liens symboliques, mais ne créent aucun des fichiers .service dans les procédures pas à pas.
Quelle pièce me manque? Dois-je créer un openvpn@vpn.service? Si oui, où dois-je le placer exactement? J'ai l'impression que ça ne devrait pas être aussi difficile, mais je n'arrive pas à trouver de solution qui fonctionne pour moi. Je suis heureux de fournir plus d'informations nécessaires.
Solution
-rw-r--r-- 1 root root 319 Aug 7 10:42 openvpn@.service
[Unit]
Description=OpenVPN connection to %i
After=network.target
[Service]
Type=forking
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.conf
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn
[Install]
WantedBy=multi-user.target
openvpn@.service (END)
Lien symbolique:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
Demander un mot de passe
Tout fonctionne maintenant, sauf qu'on vous demande un mot de passe pour vous connecter. J'ai essayé cette solution . J'ai légèrement modifié le fichier ci-dessus et ajouté un script Expect comme dans l'exemple. Travailler comme un charme! Mes fichiers sont ci-dessous.
Lignes modifiées de ce qui précède /lib/systemd/system/openvpn@.service
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --management localhost 5559 --management-query-passwords --management-forget-disconnect --config /etc/openvpn/%i.conf
ExecStartPost=/usr/bin/expect /lib/systemd/system/openvpn_pw.exp
Attendez-vous à un script /lib/systemd/system/openvpn_pw.exp. Assurez-vous de procéder comme suit:
chmod +xsur le script.- Avoir
telnetinstallé
Code du script attendu:
#!/usr/bin/expect
set pass [exec /bin/systemd-ask-password "Please insert Private Key password: "]
spawn telnet 127.0.0.1 5559
expect "Enter Private Key Password:"
send "password 'Private Key' $pass\r"
expect "SUCCESS: 'Private Key' password entered, but not yet verified"
send "exit\r"
expect eof
Il convient de noter que la solution ci-dessus enregistre votre mot de passe saisi en texte brut dans les connexions suivantes /var/log/sysloget/var/log/daemon.log
journalctl -b -mdécouvrez pourquoi OpenVPN s'est fermé. Un de ces endroits devrait contenir les vrais messages d'erreur. (Ou même journalctl -b -m _EXE=/usr/sbin/openvpnne devrait donner que des messages OpenVPN).
openvpn@.servicefichier?