Ok, quindi ho cercato sul web soluzioni a questo problema senza risposte che sembrano funzionare per me. Spero che qualcuno mi possa aiutare. Sto solo cercando di configurare il client OpenVPN.
Sto correndo CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
e sono appena passato all'utilizzo systemd
. Il passaggio è andato abbastanza bene, ma ora non riesco a far funzionare il mio client OpenVPN usando systemd, ho provato a seguire questi tutorial di configurazione, ma nulla funziona.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- E ho guardato un sacco di altre guide diverse.
Posso far apparire il tunnel dalla riga di comando con openvpn /etc/openvpn/vpn.conf
. Quindi so che il file di configurazione è buono, funzionava bene con sysvinit, quindi non sono sorpreso. Quindi tento di fare uno stato con il systemctl status openvpn@vpn.service
risultato:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Mi sono reso conto che devo fare alcune impostazioni per i servizi. Voglio che mi venga richiesta una password, quindi ho seguito questa guida per creare un openvpn@.service
in /etc/systemd/system/
. Ma il riavvio del servizio OpenVPN non richiede ancora una password.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
I tutorial di Fedora illustrano i passaggi per la creazione di collegamenti simbolici, ma non creano alcun file .service nei walk-through.
Quale pezzo mi manca? Devo creare un openvpn@vpn.service? In tal caso, dove lo posiziono esattamente? Sento che non dovrebbe essere così difficile, ma non riesco a trovare alcuna soluzione che funzioni per me. Sono felice di fornire ulteriori informazioni necessarie.
Soluzione
-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
Richiedi password
Ora funziona tutto, tranne per il fatto che viene richiesta una password per la connessione. Ho provato questa soluzione . Ho modificato leggermente il file dall'alto e ho aggiunto uno script Expect come nell'esempio. Funzionando come un incanto! I miei file sono qui sotto.
Linee modificate da quanto sopra /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
Aspettati lo script /lib/systemd/system/openvpn_pw.exp
. Assicurati di fare quanto segue:
chmod +x
sulla sceneggiatura.- Hanno
telnet
installato
Codice dello script prevede:
#!/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
Va notato che la soluzione di cui sopra registra la password immessa in testo normale nei seguenti accessi /var/log/syslog
e/var/log/daemon.log
journalctl -b -m
scopri perché OpenVPN è uscito. Uno di quei posti dovrebbe contenere i messaggi di errore reali. (O anche journalctl -b -m _EXE=/usr/sbin/openvpn
dovrebbe dare solo messaggi OpenVPN).
openvpn@.service
file?