
Tenho a configuração do OpenVPN para rotear todo o tráfego através da VPN. Gostaria de saber se existe uma maneira de alternar se todo o tráfego é roteado ou apenas o tráfego destinado a essa rede por cliente.
Por exemplo, se estou em uma rede não confiável, quero que todo o meu tráfego seja roteado pela VPN. Mais tarde, porém, quando estiver em uma rede confiável, posso querer apenas acesso SSH às máquinas, mas não quero que todo o tráfego seja roteado, pois seria desnecessariamente lento.
Isso é possível?
Responder1
Se o servidor publicar uma rota padrão para você, você poderá ignorá-la, por exemplo
route delete default tun0
e você pode restaurar sua rota padrão pré-conexão VPN da mesma forma.
Se por outro lado o servidor não publicar tal rota, você poderá optar por rotear todo o seu tráfego pela VPN, embora neste caso você precise garantir que (a) o servidor VPN esteja equipado para lidar com isso, e sabe como NAT/rotear seu tráfego para a Internet e lidar com as respostas e (b) garantir que você não tenha várias rotas padrão e que ainda possa alcançar o endpoint da VPN.
Resumindo, supondo que você controle seu cliente, você controlaentre outrossuas tabelas de roteamento e você pode configurá-las como quiser. Roteamentomenospara o servidor do que ele gostaria é fácil; roteamentomaisdo que poderia exigir necessita da sua cooperação, ou pelo menos da sua capacidade; mas ambos são possíveis.
Responder2
Baseado na ideia de deletar uma rota proposta pelo @MadHatter, criei um alias que faz essencialmente isso:
sudo openvpn --config /path/to/config --route-nopull
sudo ip route add x.x.x.x/24 dev tun0
Onde x.x.x.x/24
está o caminho da rede interna à qual você está se conectando através da VPN.
Agora posso usar esse alias quando quiser que apenas o tráfego da rede interna seja VPN e usar a configuração sem --route-nopull
se quiser que todo o tráfego seja roteado pela VPN.