O que essa regra faz?
Quando o pacote chega na interface externa para o IP 200.200.200.200, o firewall irá fazer um NAT no pacote para que ele tenha um novo destino, o IP 172.16.0.2. Mas isso só ocorrerá quando a requisição for para a porta 80.
Gostaria também de explicar o motivo que deixei no argumento para DNAT, nós temos "--to 172.16.0.2:80", note que novamente mencionamos a porta, nesse caso isso não é necessário, mas também não há problema, a idéia é que a porta de destino não precisa necessariamente ser a mesma da porta onde foi feita a requisição no firewall. O servidor Web poderia escutar por exemplo na porta 81 e mesmo assim conseguiríamos fazer o redirecionamento.
2° passo: pronto! O pacote foi encaminhado, mas e depois, como nós trataremos do retorno do pacote?
[2] Comentário enviado por removido em 29/01/2007 - 15:09h
estávamos precisando de algo assim. Outro dia tive que fazer um port forward aqui em casa e não sabia fazer com iptables. Fiz pelo config do router, mas sem dúvida, o iptables é bem melhor....
# redirecionamento de tudo que for da rede 10.0.0.0 para porta 80
# redirecionar para porta 3128 (proxy)
iptables -t nat -A PREROUTING -s 10.0.0.0/24 -p tcp --dport 80 -j REDIRECT --to-port 3128
# Liberando somente a porta 25 para envio de email pelo outlook express
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -p tcp -o eth1 --dport 25 -j MASQUERADE
# Liberando somente a porta 110 para receber email pelo outlook express
iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -p tcp --dport 110 -o eth0 -j MASQUERADE
# Libero tudo que for de origem 10.0.0.0/24 para internet
# (posso cancelar a regra que libera a porta 25 para enviar email )
iptables -t nat -A POSTROUTING -s 10.0.0.0/24 -o eth1 -j MASQUERADE
# Libero tudo para entrar na rede 10.0.0.0/24
# (posso cancelar a regra que libera a porta 110 para receber)
iptables -t nat -A POSTROUTING -d 10.0.0.0/24 -o eth0 -j MASQUERADE
#############################################################################
# Proteção contra ping da morte
#iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j DROP
echo "iptables pronto"
O que pode ser melhorado em meu arquivo?
Eu preciso fazer um redirecionamento de porta (5912) para o ip 10.0.0.12 (VNC) como fica essa regra ?
Obrigado a todos e desculpe a falta de conhecimento em iptables.
[6] Comentário enviado por GustavinhoO em 02/05/2011 - 11:06h
bom dia!
tenho uma duvida.
tenho o seguinte ambiente na minha empresa, 40 maquinas internas e 50 que acessam de fora pela intranet.
tem um adsl + router d-link (lixo) que esta fazendo virtual host, ou seja redirecionando.
tudo que chega na porta xx encaminha para 192.168.1.100:1433 = sql server
e tem algumas outras.
como ficaria a regra nesse caso?
[7] Comentário enviado por *mau* em 19/11/2011 - 11:10h
É possivel usar esse comando para direcionar a um DNS?
Eu quero que um servidor meu com IP valido e FIXO, direcione para um outro servidor o qual tambem tem um IP classe A valido porem com IP dinamico, portanto esse servidor tem um DNS.
[8] Comentário enviado por mcloh em 03/01/2012 - 11:00h
meu port forward não está funcionando... este é o retorno do iptables-save e do ip route... (123.123.123.123 é apenas um *** para o valor real do meu ip) alguma dica (sim, ativei o ip_forward)?
$iptables-save
# Generated by iptables-save v1.4.4 on Tue Jan 3 07:47:35 2012
*nat
:PREROUTING ACCEPT [698:38520]
:POSTROUTING ACCEPT [1122:89354]
:OUTPUT ACCEPT [1105:88470]
-A PREROUTING -p tcp -m tcp --dport 8080 -j DNAT --to-destination 10.1.1.155:8080
-A POSTROUTING -d 10.1.1.155/32 -p tcp -m tcp --dport 8080 -j SNAT --to-source 123.123.123.123
COMMIT
# Completed on Tue Jan 3 07:47:35 2012
# Generated by iptables-save v1.4.4 on Tue Jan 3 07:47:35 2012
*mangle
:PREROUTING ACCEPT [8807:864273]
:INPUT ACCEPT [8671:857281]
:FORWARD ACCEPT [136:6992]
:OUTPUT ACCEPT [8352:1180725]
:POSTROUTING ACCEPT [8410:1181549]
COMMIT
# Completed on Tue Jan 3 07:47:35 2012
# Generated by iptables-save v1.4.4 on Tue Jan 3 07:47:35 2012
*filter
:INPUT ACCEPT [309:33618]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [147:14813]
-A INPUT -p tcp -m tcp --dport 8080 -j ACCEPT
-A FORWARD -d 10.1.1.155/32 -p tcp -m state --state NEW,RELATED,ESTABLISHED -m tcp --dport 8080 -j ACCEPT
COMMIT
# Completed on Tue Jan 3 07:47:35 2012
$ip route
10.1.1.0/24 via 123.123.123.123 dev venet0 scope link
127.0.0.0/8 dev lo scope link
default dev venet0 scope link
[9] Comentário enviado por zaeli em 13/07/2012 - 11:39h
Bom dia, sou novo no mundo livre linux, e gostaria de saber como irei criar essa regra e onde irei digitar ela, que foi passado pelo amigo Joao Carlos. Fico muito grato, abraços
[10] Comentário enviado por maringolo em 29/05/2013 - 18:50h
Amigo caso puder me ajudar.
O meu cenário é o seguinte, possuo um servidor de internet, com o debian 6 instalado, com ip fixo e gostaria de acessar uma pagina web, hospedada no tomcat em outro servidor de rede local windows server 2003.
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT
######################################## Redirecionar para o Squid #########################################
#########################
# Redirecionamento (oque eu preciso)
#iptables -t nat -A PREROUTING -d (ip do servidor web) -p tcp -mtcp --dport 8080 -j DNAT --to-destination 192.168.0.254:8080
iptables -t nat -A PREROUTING -d (ip do servidor web) -i eth0 -p tcp --dport 8080 -j DNAT --to 192.168.0.254:8080
#FIM
esta regra acima foi oque eu tentei fazer mas sem sucesso!!!
Com este redirecionamento pretendo acessar este link do tomcat: http://ip do servidor:8080/dadosweb/loginWeb.jsp?execobj=XXPW20200 , de qualquer maquina web...