iptables: rotear pacotes para example.com via proxy público

1

Eu quero acessar certos sites através de um proxy público e não consigo acertar usando o iptables. Digamos que eu queira acessar example.com com o endereço IP 1.2.3.4 por meio de um proxy público em 5.6.7.8:8080. O que eu faço é:

iptables -t nat -A PREROUTING --dst 1.2.3.0/24 -p tcp --dport 80 -j DNAT --to-destination 5.6.7.8:8080
iptables -t nat -A POSTROUTING --dst 5.6.7.8 -p tcp --dport 8080 -j SNAT --to-source 1.2.3.4:80
iptables -t nat -A OUTPUT --dst 1.2.3.0/24 -p tcp --dport 80 -j DNAT --to-destination 5.6.7.8:8080

Mas não consigo carregar a página da Web (como se o proxy não estivesse acessível, mas é, porque eu o teste configurando-o nas configurações de proxy do navegador quando não há regras de roteamento definidas). O que estou fazendo errado?

    
por Aayla Secura 29.01.2015 / 19:24

1 resposta

0

A primeira coisa é ativar o encaminhamento de IP usando:

echo "1" > /proc/sys/net/ipv4/ip_forward

Em seguida, adicione a regra de pré-roteamento usando (acho que você não precisa mencionar toda a rede 1.2.3.0/24):

iptables -t nat -A PREROUTING --dst 1.2.3.4 -p tcp --dport 80 -j DNAT --to-destination 5.6.7.8:8080

Adicione a regra de pós-roteamento usando:

iptables -t nat -A POSTROUTING -j MASQUERADE
    
por 30.01.2015 / 06:58