Estou configurando um servidor que direciona todo o tráfego para uma conexão OpenVPN. A conexão VPN é ainda tunnelled over obfsproxy hospedada na mesma máquina.
O problema é que, assim que a VPN se conecta, todo o tráfego passa pelo túnel da VPN, que inclui o tráfego do obfsproxy. Isso cria uma dependência circular em que o OpenVPN precisa encapsular o tráfego por meio do obfsproxy, que está tentando enviar o tráfego de saída através do OpenVPN.
Posso corrigir isso adicionando manualmente uma exceção na tabela de roteamento executando route add vpn.example.com gw 192.168.1.1
, em que 192.168.1.1
é o gateway da interface de rede principal (não do túnel). Dessa forma, todo o tráfego passa pelo túnel, exceto o tráfego de saída do proxy.
No entanto, o endereço do gateway para a interface de rede principal é definido pelo DHCP e não pode ser considerado o mesmo.
Eu tentei configurá-lo executando route add vpn.example.com eth0
(onde eth0
é a principal interface de rede), mas não funciona, pois não especifiquei um gateway e vpn.example.com requer roteamento adicional.
Eu também tentei olhar para ganchos e retornos de chamada para vários clientes DHCP, mas não consegui encontrar nenhum que suporte a execução de um script depois de definir rotas estáticas.
Existe uma maneira de configurar algum tipo de regra de rota ou iptables que irá redirecionar o tráfego para um endereço IP específico através da interface de rede principal e tudo mais através do túnel?