Como iniciar o OpenVPN usando o 2FA usando o systemd?

2

Eu tenho o openvpn config que os usuários 2 fatoram a autenticação.

Se eu iniciar manualmente, executando:

/usr/sbin/openvpn --writepid /run/whatever --cd /etc/openvpn/ --config /etc/openvpn/work.conf 

pede nome de usuário, depois senha (fornecida pelo software em meu telefone) e, em seguida, senha para chave privada. E então funciona.

Mas se / quando eu tentar iniciá-lo via chamada de serviço normal:

=# service openvpn start work

nada é impresso, o openvpn não funciona e o journalctl mostra:

=# systemctl status openvpn
● openvpn.service - OpenVPN service
   Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled)
   Active: active (exited) since czw 2015-05-28 10:24:22 CEST; 17min ago
  Process: 30395 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 30395 (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/openvpn.service

maj 28 10:24:22 krowka systemd[1]: Starting OpenVPN service...
maj 28 10:41:40 krowka systemd[1]: Started OpenVPN service.

Há algo que eu possa fazer para que funcione "normalmente", por meio de uma chamada "serviço" ou qualquer outro meio, além de criar manualmente a chamada / usr / sbin / openvpn?

    
por user70436 28.05.2015 / 10:44

1 resposta

9
I try to start it via normal service call:
# service openvpn start work

Não, isso não é normal. Essa é uma peculiaridade do System 5 rc toolsets que invoca um script System 5 rc com dois argumentos. O script rc usa o segundo argumento não padrão como o nome base da configuração do OpenVPN a ser usado.

Este é o Ubuntu Linux. Você não está usando o sistema 5 rc . Você não está usando o script rc . Você está usando o systemd. Você está usando unidades de serviço do systemd, que o OpenVPN já possui há muitos anos. Unidades de serviço systemd não são scripts e não possuem argumentos de script .

O que eles têm são parâmetros de modelo, e o OpenVPN foi de fato um dos adotantes anteriores do mecanismo unidades de modelo quando apareceu, tendo unidades templatizadas desde pelo menos 2011 . ( Empregos iniciantes templatizados para o OpenVPN estão circulando desde pelo menos 2012.)

Você está vendo /lib/systemd/system/openvpn.service . O que você deve estar olhando é /lib/systemd/system/[email protected] . Instancie isso no nome da configuração:

Ou deixe o Debian / Ubuntu fazer o trabalho pesado. Há um gerador de unidade em /lib/systemd/system-generators/openvpn-generator que instancia automaticamente esse modelo em cada arquivo *.conf em /etc/openvpn no bootstrap ou quando systemctl daemon-reload é executado.

Leitura adicional

por 30.05.2015 / 13:32