Estou executando o Ubuntu 22 e tenho configuração openvpn (cliente) para rodar como um serviço. Eu costumava ter um arquivo .conf em /etc/openvpn e recentemente adicionei outro.
Quando o openvpn inicia, ou eu o reinicio, ele só se conecta à VPN a partir do primeiro arquivo .conf e não do segundo.
Se eu executar, sudo openvpn --config secondvpn.conf
ele funciona bem e se conecta.
O script do serviço, em /etc/init.d, diz
# Description: This script will start OpenVPN tunnels as specified
# in /etc/default/openvpn and /etc/openvpn/*.conf
Não tenho nenhum túnel especificado em /etc/default/openvpn e ambos os arquivos de configuração estão em /etc/openvpn/ e possuem a extensão .conf.
Eu tentei systemctl daemon-reload
, mas isso não pareceu ajudar.
Também tentei comentar a linha LimitNPROC em /lib/systemd/system/ [email protected] . (do OpenVPN não inicia como um serviço com arquivo de configuração ), mas isso não fez diferença.
Como faço para que o openvpn reconheça meu segundo arquivo de configuração?
Esse:
aplica-se apenas a sistemas sem systemd (que está escrito em alguns dos arquivos mencionados, se não me engano). Ubuntu 22 usa systemd, então este script
/etc/default/openvpn
não tem absolutamente nenhum efeito.Você deve controlar (ativar a inicialização automática ou gerenciar manualmente) cada instância VPN individualmente. Você se dá ao luxo de poder controlá-los de forma independente, eu deveria estar dizendo. É uma das raras coisas que realmente melhorou após a introdução do systemd (embora o OpenRC tenha obtido o recurso semelhante há muito tempo).
Observe que existem dois tipos de subdiretórios em
/etc/openvpn
:server
eclient
, e há três modelos de unidade do systemd em/lib/systemd/system
:,[email protected]
e[email protected]
([email protected]
além deopenvpn.service
).Você tem que parar de usar este último e desativá-lo e começar a usar modelos.
Funciona da seguinte maneira:
/etc/openvpn/somename.conf
, o nome da sua unidade seria[email protected]
/etc/openvpn/client/somename.conf
, o nome da sua unidade seria[email protected]
/etc/openvpn/server/somename.conf
, o nome da sua unidade seria[email protected]
Não sei se há alguma diferença, exceto o posicionamento do arquivo de configuração. O OpenVPN não distingue estritamente clientes e servidores, tudo é implementado usando o mesmo binário e depende do conteúdo do arquivo de configuração (ou/ou argumentos de linha de comando), então o systemd dificilmente pode controlar isso.
Então você apenas habilita suas instâncias VPN para inicialização automática e inicia/interrompe-as usando ou no lugar de .
systemctl enable [email protected]
start
stop
enable