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.