Rota apenas tráfego HTTP (S) através de VPN

1

Eu tenho uma interface ppp0 configurada como um túnel VPN usando este guia . Agora preciso rotear o tráfego em portas específicas (80, 443) através da interface ppp0. Idealmente, se o servidor VPN estiver inativo, todas as solicitações HTTP (S) devem falhar.

Há muitas respostas para problemas semelhantes sugerindo usar iptables , então acho que é assim que acontece, mas não consigo descobrir os comandos certos a serem usados para esse cenário específico.

    
por blade 14.09.2015 / 16:02

1 resposta

2

Aqui, teremos www como o serviço de roteamento. Use mangle table do iptable para modificar os pacotes www .

sudo iptables -t mangle -A OUTPUT -p tcp --dport 80 -j MARK --set-mark 0x1

Estamos marcando todos os pacotes com porta de destino 80 as 0x1 .

Agora salve e reinicie o iptables .

service iptables save
service iptables restart

Em seguida, crie uma nova tabela de rotas IP em /etc/iproute2/rt_tables apenas fornecendo uma entrada

100 wwwtable

Regra de gravação para www pacotes.

ip rule add fwmark 0x1 lookup wwwtable

Adicionar rota na nova tabela wwwtable . Todo o outro tráfego passará pelo gateway padrão, que pode ser visto pelo comando ip route show .

Copiamos todas as entradas, exceto a entrada do gateway padrão da tabela principal.

sudo ip route show table main | grep -Ev ^default | while read ROUTE ; do ip route add table wwwtable $ROUTE; done

Adicione uma entrada de gateway padrão para www pacotes à tabela wwwtable

sudo ip route add default dev ppp0 table wwwtable

Use ip route show table wwwtable para mostrar todas as rotas em wwwtable .

Repita tudo para https na porta 443 .

    
por 2707974 14.09.2015 / 16:20