Ok, estou pesquisando na web por soluções para esse problema sem que as respostas pareçam funcionar para mim. Espero que alguém possa me ajudar. Eu estou apenas tentando configurar o cliente OpenVPN.
Estou executando 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 eu não consigo fazer o meu cliente OpenVPN aparecer usando o systemd Eu tentei seguir estes tutoriais de configuração, mas nada funciona.
- link
- link
- E olhei para um monte de outros guias diferentes.
Eu posso abrir o túnel a partir da linha de comando com openvpn /etc/openvpn/vpn.conf
. Então eu sei que o arquivo de configuração é bom, ele estava trabalhando com o sysvinit muito bem, então eu não estou surpreso. Eu então tento apenas fazer um status com systemctl status [email protected]
resultando em:
$ sudo systemctl status [email protected]
[email protected]
Loaded: error (Reason: No such file or directory)
Active: inactive (dead)
Percebi que preciso fazer algumas configurações para os serviços. Eu quero ser solicitado por uma senha, então eu segui este guia para criar um [email protected]
em /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 passam pelas etapas de criação de links simbólicos, mas não criam nenhum dos arquivos .service nos walk-throughs.
Qual pedaço eu estou sentindo falta? Preciso criar um [email protected]? Se sim, onde exatamente eu coloco? Eu sinto que não deve ser tão difícil, mas não consigo encontrar qualquer 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 [email protected]
[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
[email protected] (END)
Ligação simbólica:
lrwxrwxrwx 1 root root 36 Aug 7 10:47 [email protected] -> /lib/systemd/system/[email protected]
Solicitar senha
Tudo está funcionando agora, exceto por receber uma senha para se conectar. Eu tentei esta solução . Eu ajustei o arquivo de cima um pouco e adicionei um script Esperar como no exemplo. Trabalhando como um encanto! Meus arquivos estão abaixo.
Linhas modificadas do /lib/systemd/system/[email protected]
acima
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 o script /lib/systemd/system/openvpn_pw.exp
. Certifique-se de fazer o seguinte:
-
chmod +x
no script.
- Tem
telnet
instalado
Código do script esperado:
#!/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
Deve-se observar que a solução acima registra sua senha digitada em texto sem formatação nos seguintes registros em /var/log/syslog
e /var/log/daemon.log