ipt de redirecionamento de porta não está funcionando para localhost

47

Eu quero redirecionar todo o tráfego da porta 443 para a porta interna 8080. Estou usando esta configuração para o iptables:

iptables -t nat -I PREROUTING --source 0/0 --destination 0/0 -p tcp \
         --dport 443 -j REDIRECT --to-ports 8080

Isso funciona para todos os clientes externos. Mas se eu estou tentando acessar a porta 443 da mesma maschine eu vou ter um erro de conexão recusada.

wget https://localhost

Como eu posso estender a regra iptables para redirecionar o tráfego local também?

    
por Chris 11.12.2010 / 12:41

4 respostas

63

PREROUTING não é usado pela interface de loopback, você também precisa adicionar uma regra OUTPUT:

iptables -t nat -I PREROUTING -p tcp --dport 443 -j REDIRECT --to-ports 8080
iptables -t nat -I OUTPUT -p tcp -o lo --dport 443 -j REDIRECT --to-ports 8080
    
por 11.12.2010 / 13:34
7

Para redirecionar pacotes de localhost para outra máquina, a regra:

 iptables -t nat -A OUTPUT -o lo -d 127.0.0.1 -p tcp --dport 443 -j DNAT  --to-destination 10.x.y.z:port

funcionará, MAS você também precisa habilitar esta opção no kernel:

sysctl -w net.ipv4.conf.all.route_localnet=1

Sem essa configuração do kernel, não funcionará.

    
por 16.06.2017 / 04:24
2

Que tal isso?

iptables -t nat -A OUTPUT -d 127.0.0.1 -p tcp --dport 443 -j REDIRECT --to-port 8080

    
por 11.12.2010 / 18:28
1

Você disse que está recebendo um erro conexão recusada . Isso significa que não há processo local escutando na porta que você está tentando se conectar! Para verificar os processos de escuta, use o comando:

$ sudo netstat -lnp | grep 8080

Após aplicar a regra, você deve ter um processo de escuta na porta 8080 para se conectar.

Parece que você deve ter a seguinte regra:

$ iptables -t nat -I OUTPUT --source 0/0 --destination 0/0 -p tcp
                                       --dport 443 -j REDIRECT --to-ports 8080

Lembre-se de que você está enviando do host local. Então, você precisa redirecionar o pacote de saída.

    
por 11.12.2010 / 12:44