14.04 - DUC não atualiza corretamente o IP com VPN na inicialização

1

Estou executando um servidor LTS Ubuntu 14.04.3 que lança algumas coisas na inicialização, duas delas sendo OpenVPN para meu serviço VPN e um cliente de atualização de DNS dinâmico para atualizar meu host noip para o meu IP atual.

Eu tentei com o noip oficial DUC e com ddclient (veja aqui porque eu mudei) e ambos atualizam incorretamente para o IP que eu tenho antes da minha VPN se conectar (o IP do ISP).

A conexão OpenVPN está funcionando quando eu faço o login via SSH, então isso significa que o DUC relata o IP antes que o OpenVPN esteja funcionando ou algo parecido. Antes de perguntar aqui, eu tentei modificar o script init.d do ddclient com um requisito openvpn:

# Required-Start:    $local_fs $remote_fs $network $syslog $openvpn

Para arquivos rcX.d, o openvpn tem algo como S16openvpn e o ddclient tem S99ddclient, então normalmente o ddclient inicia após o openvpn, certo? Eu não estou muito confortável com essas coisas.

Isso não mudou nada. Espero que alguém possa me ajudar, isso significa que cada vez que eu reiniciar meu servidor, eu tenho que reiniciar o serviço de cliente DUC para o meu host noip funcionar corretamente.

Um plano B, se nada puder ser encontrado, é pedir ao serviço ddclient para reiniciar depois que tudo tiver sido iniciado, para que eu não tenha que fazê-lo e não vou esquecer. Mas é claro que fazer a atualização do ddclient para o IP certo em primeiro lugar seria melhor.

P.S. : Se você perguntar por que eu quero que o IP seja o VPN IP, é porque alguns serviços como o servidor Teamspeak 3 tem que estar acessível para que meu ddns.net aponte para o IP da VPN, porque ao apontar para o IP público do ISP, eles são não mais alcançável (vinculado a como a VPN funciona, eu acho).

    
por Kriegalex 26.10.2015 / 03:58

1 resposta

0

Então, aprendi que o OpenVPN fornece uma maneira de iniciar um script depois que o túnel é criado. Para isso, no meu arquivo /etc/openvpn/toto.conf, adicionei a linha

# run /etc/openvpn/titi.sh when the connection is set up
up /etc/openvpn/titi.sh

Note que o parâmetro script-security no arquivo conf deve estar corretamente configurado (pelo menos script-security 2, veja man of openvpn).

Aqui está o conteúdo do meu script titi.sh:

#!/bin/bash
(sleep 60 && ddclient -daemon=0 -debug -verbose -noquiet -force >> launch_dd.log) &

O primeiro script não tinha o sleep 60, mas estranhamente quando o script foi chamado e o ddclient foi lançado, meu IP ainda era meu IP do provedor e não o IP da VPN, mesmo que tenha sido lançado com o parâmetro up OpenVPN. Talvez seja por isso que não estava funcionando em primeiro lugar.

Então eu simplesmente disse ao script para esperar 60 segundos antes do lançamento. Agora meu IP está configurado para o IP da VPN quando eu reinicializo o servidor.

    
por Kriegalex 28.10.2015 / 22:45