Configure o firwall com iptables para permitir apenas VPN

5

Estou usando o IPredator VPN com o openVPN e quero ter certeza de que, se a conexão for interrompida, não enviarei dados da Internet sem a VPN. Ouvi dizer que eu poderia fazer isso com iptables e um intervalo. Como eu posso fazer isso? E como posso descobrir os intervalos de IP que minha VPN está me designando?

    
por Paul Woitaschek 24.08.2013 / 10:53

1 resposta

5

Antes de iniciar sua VPN, faça uma cópia de netstat -rn e ifconfig -a . Inicie sua VPN e as diferenças nesses dois comandos informarão quais redes a VPN cria em termos de rotas e qual IP você recebeu para obter visibilidade dessas redes. Você também precisará obter o IP do servidor que fornece sua VPN (ou tráfego para o servidor VPN não irá alcançá-lo). Eu também assumi que seu servidor VPN usa udp e não tcp , se ele usa tcp , você precisará atualizar a segunda regra para refletir isso.

Depois disso, você adiciona as regras OUTPUT no iptables para definir o que seu host pode ver

 iptables -F OUTPUT
 iptables -I OUTPUT -d VPNSERVER -p udp -j ACCEPT -m comment --comment "Allow traffic to VPN SERVER"
 iptables -I OUTPUT -s VPNIP -d VPNNETWORK/CIDR -j ACCEPT -m comment --comment "Allow all traffic to VPN newtork"
 iptables -I OUTPUT -j DROP -m comment --comment "Drop all other traffic"

iptables -F OUTPUT libera suas regras existentes, esteja ciente disso, mas é necessário fazer o que sua pergunta original fez.

VPNSERVER seria o ip do seu servidor vpn. VPNIP seria o IP que a VPN atribuiu a você. VPNNETWORK/CIDR seria a rede roteada que apareceu em netstat -rn alguma coisa como 10.1.0.0/24

Ao depurar essas regras, pode ser útil registrar o que está sendo descartado, pois alguns protocolos podem precisar de alguma massagem extra:

 iptables -A LOGGING -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 

Isso deve ser suficiente para interromper o tráfego OUTBOUND do seu computador para a Internet e permitir apenas o tráfego para o servidor VPN e a rede que ele fornece.

O OP apontou que o Arch Linux não é fornecido com netstat ou ifconfig . Nesse caso, as alternativas são:

ip addr show mostrar-lhe-á as interfaces e ip route show mostrará-lhe as rotas que tem.

    
por 24.08.2013 / 13:45