iptables port forwarding no debian

5

Estou tentando configurar um firewall de encaminhamento de porta simples e não posso fazer com que a configuração básica de não-firewall funcione. Eu configurei o script iptables da seguinte forma

#!/bin/sh

# interfaces
LAN="eth1"
WAN="eth0"

# enable forwarding
echo 1 > /proc/sys/net/ipv4/ip_forward

# delete all existing rules to start from scratch
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X

# accept everything
iptables -A INPUT -j ACCEPT
iptables -A FORWARD -j ACCEPT
iptables -A OUTPUT -j ACCEPT

# port forwarding to local machine
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.96

# masquerade
iptables -t nat -A POSTROUTING -o $WAN -j MASQUERADE

Este script não irá firewall nada, mas deve redirecionar a porta 80 na máquina do gateway para a minha máquina interna 192.168.1.96. Isto não está a funcionar. O problema é que não consigo sair do lado de dentro para dentro da máquina. Eu nem sei como começar a depurar. Alguma dica de onde procurar?

    
por Ricardo Marimon 17.06.2009 / 15:06

5 respostas

1

Alterar:

# port forwarding to local machine
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j DNAT --to 192.168.1.96

Para:

 # port forwarding to local machine
iptables -t nat -A PREROUTING -i $WAN -p tcp --dport 80 -j DNAT \
 --to-destination 192.168.1.96:80
    
por 17.06.2009 / 15:33
1

Verifique novamente com iptables -L -n -v --line e com -t nat. O que você fez parece certo para mim. Também execute o tcpdump para ver se você consegue ver o TCP SYN e o outside (eth0) e no inside (eth1) para ter certeza de que é onde ele desaparece.

"Isso não está funcionando" não é uma boa descrição. O que não está funcionando? Você tem timeout ou conexão recusada?

    
por 17.06.2009 / 16:05
0

Eu não sei qual versão do iptables você está executando, mas na v1.3.5, você precisa ter o --to-destination em vez de --to.

    
por 17.06.2009 / 15:20
0

Acho que sua última linha deve ser

# masquerade
iptables -t nat -A POSTROUTING -o $LAN -j MASQUERADE

Observe a LAN, não a WAN.

    
por 17.06.2009 / 15:22
0

Normalmente, estou configurando isso com IPs em vez de interfaces. Por favor, tente o seguinte:

# port forwarding to local machine
iptables -t nat -A PREROUTING -d $EXT_IP -p tcp --dport 80 -j DNAT --to 192.168.1.96

# masquerade
iptables -t nat -A POSTROUTING -s 192.168.1.96 -j MASQUERADE

e defina o $EXT_IP , claro.

    
por 22.03.2013 / 23:37