Ok, also habe ich im Web nach Lösungen für dieses Problem gesucht, ohne dass die Antworten für mich zu funktionieren schienen. Hoffentlich kann mir jemand helfen. Ich versuche nur, den OpenVPN-Client zu konfigurieren.
Ich renne CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
und habe gerade auf die Verwendung umgestellt systemd
. Die Umstellung verlief reibungslos, aber jetzt kann ich meinen OpenVPN-Client nicht mehr mit systemd starten. Ich habe versucht, diese Konfigurationstutorials zu befolgen, aber es funktioniert nichts.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- Und schaute ein paar andere verschiedene Führer an.
Ich kann den Tunnel von der Kommandozeile aus mit aufrufen openvpn /etc/openvpn/vpn.conf
. Ich weiß also, dass die Konfigurationsdatei gut ist. Sie hat mit sysvinit einwandfrei funktioniert. Ich bin also nicht überrascht. Ich versuche dann einfach einen Status zu machen mit dem systemctl status openvpn@vpn.service
Ergebnis:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Ich erkannte, dass ich einige Einstellungen für Dienste vornehmen muss. Ich möchte zur Eingabe eines Passworts aufgefordert werden, daher habe ich mich an diese Anleitung gehalten, um ein openvpn@.service
In zu erstellen /etc/systemd/system/
. Beim Neustart des OpenVPN-Dienstes wird jedoch weiterhin kein Kennwort abgefragt.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
In den Fedora-Tutorials werden die Schritte zum Erstellen symbolischer Links durchlaufen, es werden jedoch keine .service-Dateien in den Handlungsanweisungen erstellt.
Welches Stück vermisse ich? Muss ich einen openvpn@vpn.service erstellen? Wenn ja, wo genau platziere ich es? Ich denke, es sollte nicht so schwierig sein, aber ich kann anscheinend keine Lösung finden, die für mich funktioniert. Gerne stelle ich Ihnen weitere Informationen zur Verfügung.
Lösung
-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)
Symlink:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
Nach Passwort fragen
Jetzt funktioniert alles, bis auf die Aufforderung, ein Kennwort für die Verbindung einzugeben. Ich habe diese Lösung versucht . Ich habe die Datei von oben ein wenig optimiert und ein Expect-Skript wie im Beispiel hinzugefügt . Arbeiten wie ein Zauber! Meine Dateien sind unten.
Geänderte Zeilen von oben /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
Erwarten Sie Skript /lib/systemd/system/openvpn_pw.exp
. Stellen Sie sicher, dass Sie Folgendes tun:
chmod +x
auf dem Skript.- haben
telnet
installiert
Code des Expect-Skripts:
#!/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
Es ist zu beachten, dass die obige Lösung Ihr im Klartext eingegebenes Passwort in den folgenden Anmeldungen /var/log/syslog
und protokolliert/var/log/daemon.log
journalctl -b -m
finden Sie heraus, warum OpenVPN beendet wurde. Eine dieser Stellen sollte die eigentlichen Fehlermeldungen enthalten. (Oder journalctl -b -m _EXE=/usr/sbin/openvpn
sollte sogar nur OpenVPN-Nachrichten geben).
openvpn@.service
Datei aus?