Encaminhamento de porta Iptables - o que estou fazendo errado?

1

Estou tentando configurar o encaminhamento de porta com o iptables.

Eu li várias coisas (incluindo aqui no serverfault), mas todos os exemplos que eu tento falham.

Eu tenho uma caixa Debian GNU / Linux com um endereço IP roteado globalmente, digamos 1.2.3.4. Eu também tenho uma rede interna 192.168.15.0/24, que tem um host (192.168.15.2) nele.

Eu simplesmente quero que a porta 2200 em 1.2.3.4 seja encaminhada para 192.168.15.2:22, então foi o que eu fiz:

iptables -A PREROUTING -t nat -p tcp --dport 2200 -j DNAT --to 192.168.15.2:22
iptables -A INPUT -p tcp -m state --state NEW --dport 2200 -j ACCEPT

No entanto, isso não funciona. Se eu tentar ssh para 1.2.3.4:2200 , recebo "Conexão recusada".

Tentando mais de 3 horas agora e estou sentindo que tentei de tudo e que deve haver algo errado.

O encaminhamento de IP está ativado:

[email protected]:~# cat /proc/sys/net/ipv4/ip_forward
1
    
por Daniel 10.09.2012 / 19:41

1 resposta

1

Algumas coisas.

Primeiro, uma vez que o destino nat é executado no PREROUTING , você precisa criar suas regras na tabela de filtros usando o endereço após a conversão do endereço. PREROUTING é um processo antes da tabela FILTER. Então, você governa que permite que 2200 não faça nada de útil, já que não tem uma porta de destino de 2200 quando atinge a tabela de filtros e, em vez disso, foi convertida para a porta 22 por sua regra de NAT.

A outra parte é menos certa porque você não deu uma boa descrição da sua rede. A menos que eu não compreenda sua configuração de rede, acredito que 192.168.15.2 não seja um endereço no firewall. Eu levanto isso porque você está tentando adicionar uma regra à cadeia INPUT . A cadeia INPUT é usada para pacotes enviados ao próprio sistema de firewall e não é visitada quando os pacotes estão sendo roteados entre as interfaces de uma rede para outra. Suspeito que você deveria adicionar uma regra à cadeia FORWARD .

    
por 10.09.2012 / 20:22