Ok, he estado buscando en la web soluciones a este problema sin que las respuestas me funcionen. Espero que alguien pueda ayudarme. Solo estoy tratando de configurar el cliente OpenVPN.
Estoy corriendo CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
y acabo de cambiar a usar systemd
. El cambio se realizó sin problemas, pero ahora no puedo hacer que mi cliente OpenVPN aparezca usando systemd. He intentado seguir estos tutoriales de configuración, pero nada funciona.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- Y miró un montón de otras guías diferentes.
Puedo abrir el túnel desde la línea de comando con openvpn /etc/openvpn/vpn.conf
. Así que sé que el archivo de configuración es bueno, estaba funcionando bien con sysvinit, así que no me sorprende. Luego intento hacer un estado con el systemctl status openvpn@vpn.service
resultado de:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Me di cuenta de que necesito hacer una configuración para los servicios. Quiero que se le solicite una contraseña así que seguí esta guía para crear una openvpn@.service
en /etc/systemd/system/
. Pero reiniciar el servicio OpenVPN aún no solicita una contraseña.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Los tutoriales de Fedora siguen los pasos para crear enlaces simbólicos, pero no crean ninguno de los archivos .service en los recorridos.
¿Qué pieza me estoy perdiendo? ¿Necesito crear un servicio openvpn@vpn.service? Si es así, ¿dónde lo coloco exactamente? Siento que no debería ser tan difícil, pero parece que no puedo encontrar ninguna solución que funcione para mí. Me complace proporcionar más información que sea necesaria.
Solución
-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)
Enlace simbólico:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
Solicitar contraseña
Todo funciona ahora, excepto que se le solicite una contraseña para conectarse. He intentado esta solución . Modifiqué el archivo desde arriba solo un poco, y agregué un script de Expect como en el ejemplo. Trabajando como un encanto! Mis archivos están abajo.
Líneas modificadas de lo anterior /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
Esperar guión /lib/systemd/system/openvpn_pw.exp
. Asegúrese de hacer lo siguiente:
chmod +x
en el guión- Han
telnet
instalado
Código del script de espera:
#!/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
Cabe señalar que la solución anterior registra su contraseña ingresada en texto sin formato en los siguientes registros /var/log/syslog
y/var/log/daemon.log
journalctl -b -m
descubra por qué OpenVPN salió. Uno de esos lugares debe contener los mensajes de error reales. (O incluso journalctl -b -m _EXE=/usr/sbin/openvpn
debería dar solo mensajes OpenVPN).
openvpn@.service
archivo?