Como posso garantir que o tráfego TCP / IP de saída sempre use uma VPN, mesmo quando estiver usando Wifi?

2

Gostaria de garantir que minha VPN seja iniciada e executada antes que qualquer tráfego TCP de qualquer um dos meus serviços de segundo plano envie ou receba dados. Como posso garantir que este é o caso?

Como faço para lidar com o caso especial em que me conecto a um ponto de acesso Wi-Fi (no Starbucks) que exige que eu pressione "Concordo" antes de continuar minha sessão?

    
por random65537 04.10.2012 / 18:07

1 resposta

2

Você pode usar o iptables para fazer isso, provavelmente. Pelo menos se "ultrapassa a VPN" é algo que o iptables pode ver, por exemplo, é um dispositivo de túnel separado. Assumindo que a vpn é o dispositivo "vpn", algo como:

iptables -P OUTPUT DROP
iptables -A OUTPUT -o vpn -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

# dhcp
iptables -A OUTPUT -p udp --sport 68 --dport 67 -j ACCEPT # DHCP

# "I Agree"
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT # DNS/UDP
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT # DNS/TCP
iptables -A OUTPUT -p tcp --dport 80 -m owner --uid-owner your-userid -j ACCEPT

As últimas três regras permitem que você acesse a página "Eu concordo". Depois de clicar no botão "Aceito" e sua VPN estiver ativa, você poderá se livrar deles. Note que é possível que algumas coisas vazem durante esse período, em particular pesquisas de DNS. Evitar isso é muito mais difícil.

(Não testado, sugiro instalar e executar o wireshark para depurar, se necessário. Tenho certeza de que está certo, mas estou menos confiante sobre essa linha de DHCP. Pode não permitir o suficiente ... Se você não conseguir um endereço IP, é isso que está errado)

    
por 04.10.2012 / 19:22