iptables - força todo o tráfego na VPN (e elimina todo o tráfego quando não há conexão VPN)

4

Objetivo: Assegure-se de que todo o tráfego seja forçado pelo túnel VPN de todas as interfaces de rede (wlan0, rmnet0, rmnet1), ou seja, todo o tráfego é interrompido quando não estiver conectado à VPN. Em outras palavras, o tráfego da Internet não deve ser permitido e somente o tráfego pela VPN é aceitável.

Até agora ... Dispositivo Android com iptables binário, wlan & Conexão 3g Gateway de VPN @ 10.10.10.10 (endereço não real).

iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -i tun0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A INPUT -j DROP

iptables -A OUTPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -o tun0 -m conntrack --ctstate NEW -j ACCEPT
iptables -A OUTPUT -d 10.10.10.10 -m conntrack --ctstate NEW -j ACCEPT
iptables -A OUTPUT -j DROP

Resultados:

O tráfego parece estar bloqueado, mas também a conexão com a VPN.

Alguma ideia? Aprecie isso é apenas a interface rmnet0 dados móveis e não tem WiFi aqui ainda.

    
por diagonalbatman 28.01.2013 / 17:03

1 resposta

3

Eu não usaria o conntrack nesse cenário, mas um conjunto muito mais simples

iptables -A INPUT  -i tun0 -j ACCEPT
iptables -A INPUT  -s 10.10.10.10 -j ACCEPT
iptables -A OUTPUT -o tun0 -j ACCEPT
iptables -A OUTPUT -d 10.10.10.10 -j ACCEPT

Não há necessidade de rastreamento de conexão. Você também não precisa das regras DROP no final, a propósito, o -P ... DROP cuida disso.

Você também vai querer ter certeza de usar o IP do servidor VPN na sua configuração, caso contrário, você terá que colocar o DNS na lista de permissões também:

iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT  -p udp --sport 53 -j ACCEPT
    
por 28.01.2013 / 19:21