Iptables redirecionar para localhost?

12

Suponha que eu tenha uma rede com um servidor roteando todas as conexões de dentro da rede para a Internet. Como posso configurar o iptables para que, em vez de rotear as conexões de entrada para a Internet, ele as direcione para a porta 8080 do localhost. Toda a ajuda é bem-vinda.

    
por DankMemes 18.10.2013 / 14:53

2 respostas

3
sysctl net.ipv4.ip_forward=1 
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 127.0.0.1:8080
    
por 18.10.2013 / 15:01
24

isso pode ser feito com iptables , mas somente com o kernel > = 3.6.

Você terá que fazer:

sysctl -w net.ipv4.conf.all.route_localnet=1
iptables -t nat -I PREROUTING -p tcp --dport 80 -j DNAT --to 127.0.0.1:8080

ip_forward não é necessário, porque o pacote não é encaminhado, mas se você não incluir o sysctl para route_localnet (que funciona apenas em kernels > = 3.6), o pacote será descartado pelo kernel porque o considera um "marciano", vindo de fora e tendo um endereço de destino de 127.0.0.1

    
por 05.09.2014 / 11:15