Brinquei com uma solução encontrada que funciona para minha configuração. Não é uma solução totalmente geral, por isso, esperamos que alguém possa vir e dar uma solução mais robusta.
Em vez de desativar o OpenVPN no meu laptop quando na Ethernet, eu apenas configurei o ufw (Uncomplicated Firewall) no servidor OpenVPN da minha rede para rejeitar conexões da sub-rede local; é um pouco mais complicado do que criar regras usando sudo ufw allow ...
e sudo ufw deny ...
:
-
Primeiro, se você está executando o ufw em uma máquina ligando uma VPN a uma rede local (o que eu estou fazendo), você precisa configurar o ufw para permitir o encaminhamento de tráfego, já que ele cai por padrão. Isso significa alterar
DEFAULT_FORWARD_POLICY="DROP"
paraDEFAULT_FORWARD_POLICY="ACCEPT"
em/etc/default/ufw
. -
Em segundo lugar, você precisa se certificar de adicionar regras na ordem correta; O ufw processa as regras uma por uma e usa aquela que você rejeita conexões ao OpenVPN (porta 1149) dentro da sua sub-rede antes de permiti-las de fora apenas se você as criar nessa ordem; no meu caso, isso significava executar
sudo ufw delete deny from 192.168.16.0/20 to any port 1194
(não, isso não é um erro de digitação, na verdade, eu uso uma sub-rede / 20 localmente: D) antes de executarsudo ufw allow 1194
. -
Por último , você precisa ter certeza de que as conexões de sua rede local realmente fazem parecem vir da sua rede local então a regra ufw é invocada.
A última parte é importante porque inicialmente não era o caso quando tentei os dois primeiros passos; meu laptop O OpenVPN é configurado automaticamente para tentar se conectar à minha VPN em mydomainname.com
, que é dinamicamente atribuído ao meu roteador doméstico, que, por sua vez, encaminha a porta 1194 para o computador que executa minha VPN em 192.168.16.1
. Isso pode não ser o caso de todos os roteadores, mas pelo menos para o meu roteador, conectar-se a mydomainname.com
de dentro da sub-rede local cria uma conexão com o servidor OpenVPN que parece ter o endereço IP do roteador, em vez do laptop. (E é uma longa história, mas eu realmente quero permitir acesso VPN de outros dispositivos conectados ao roteador, em uma sub-rede diferente - eu tenho uma configuração inicial bem complicada: D).
A solução no meu caso acabou sendo configurar o servidor DNS do roteador com uma atribuição estática de mydomainname.com
para 192.168.16.1
, para que mydomainname.com
resolva diretamente para 192.168.16.1
, mas para o IP externo do meu roteador. Isso funciona para mim, mas sua milhagem pode variar.