iptables preroute localhost

3

Eu gostaria de encaminhar todo o tráfego de entrada de uma certa porta para outra usando o iptables. O problema é que o pré-processamento não funciona para o tráfego do host local. Este tópico sugere uma solução:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -d 127.0.0.1 --dport 443 -j REDIRECT --to-ports 8080

Esta solução funciona na maioria dos casos. No entanto, quando eu me conectar ao link onde myserver resolve para um endereço IP que está hospedado na máquina local, mas não é 127.0.0.1 parece ignorar ambas as regras.

Existe uma maneira de também rastrear solicitações da máquina local que são feitas para o endereço IP eth0?

    
por Jeroen 18.04.2012 / 00:12

1 resposta

2

Em vez de fazer -d 127.0.0.1 na regra OUTPUT, você pode fazer -o lo . Isso corresponderá a qualquer tráfego que passar pela interface de loopback, independentemente do destino.

Como observação, mesmo quando você envia para o link ', o tráfego ainda é local, por isso ainda passa pela interface de loopback, mesmo que não resolva para '127.0.0.1'.

    
por 18.04.2012 / 00:17