Ok, então eu tenho procurado na web por soluções para esse problema, sem respostas que parecem funcionar para mim. Espero que alguém possa me ajudar. Estou apenas tentando configurar o cliente OpenVPN.
Estou correndo CrunchBang Linux 3.2.0-4-amd64 Debian 3.2.60-1+deb7u1 x86_64 GNU/Linux
e acabei de usar systemd
. A mudança foi suave o suficiente, mas agora não consigo fazer meu cliente OpenVPN usar o systemd. Tentei seguir esses tutoriais de configuração, mas nada funciona.
- http://fedoraproject.org/wiki/Openvpn
- http://d.stavrovski.net/blog/how-to-install-and-set-up-openvpn-in-debian-7-wheezy
- E olhou para um monte de outros guias diferentes.
Eu posso abrir o túnel na linha de comando openvpn /etc/openvpn/vpn.conf
. Então, eu sei que o arquivo de configuração é bom, estava funcionando com o sysvinit, então não estou surpreso. Em seguida, tento apenas fazer um status systemctl status openvpn@vpn.service
resultando em:
$ sudo systemctl status openvpn@vpn.service
openvpn@vpn.service
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Percebi que preciso fazer algumas configurações para os serviços. Quero ser solicitada uma senha assim que eu segui este guia para criar uma openvpn@.service
no /etc/systemd/system/
. Mas reiniciar o serviço OpenVPN ainda não solicita uma senha.
$ sudo service openvpn restart
[ ok ] Restarting openvpn (via systemctl): openvpn.service.
Os tutoriais do Fedora seguem as etapas de criação de links simbólicos, mas não criam nenhum arquivo .service nas orientações.
Que peça estou faltando? Preciso criar um openvpn@vpn.service? Se sim, onde exatamente eu o coloco? Sinto que não deve ser tão difícil, mas não consigo encontrar nenhuma solução que funcione para mim. Fico feliz em fornecer mais informações necessárias.
Solução
-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)
Link simbólico:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 openvpn@vpn.service -> /lib/systemd/system/openvpn@.service
Solicitar senha
Tudo está funcionando agora, exceto por ser solicitada uma senha para conectar-se. Eu tentei esta solução . Ajustei o arquivo de cima um pouco e adicionei um script Expect como no exemplo. Trabalhando como um encanto! Meus arquivos estão abaixo.
Linhas modificadas acima /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
Espere script /lib/systemd/system/openvpn_pw.exp
. Certifique-se de fazer o seguinte:
chmod +x
no script.- ter
telnet
instalado
Código do script expect:
#!/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
Observe que a solução acima registra sua senha digitada em texto sem formatação nos seguintes logs /var/log/syslog
e/var/log/daemon.log
journalctl -b -m
descubra por que o OpenVPN saiu. Um desses lugares deve conter as mensagens de erro reais. (Ou mesmo journalctl -b -m _EXE=/usr/sbin/openvpn
deve fornecer apenas mensagens OpenVPN).
openvpn@.service
arquivo?