Portas NAT - como elas funcionam?

1

Eu tenho o seguinte esquema de rede:

  • Computador A: três nics:
    • NIC 1 (eth0): dhcp, internet pública
    • NIC 2 (eth1): estática 192.168.1.1, gateway para o computador B
    • NIC 3 (eth2): estática 192.168.2.1, gateway para o computador C
  • Computador B: estático 192.168.1.2, usando o gateway 192.168.1.1 (NIC 2).
  • Computador C: estático 192.168.2.2, usando o gateway 192.168.2.1 (NIC 3).

Então, apliquei isso para que o NAT funcionasse:

iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Todos os computadores podem se conectar à internet agora. Eu tenho aplicado regras ao computador principal (Computador A), como descartar conexões com algumas portas, por exemplo, ssh:

iptables -A INPUT -p tcp --dport 22 -j DROP

Mas, por exemplo, agora gostaria que apenas permitisse conexões para as portas 20,21,22,53 e 80 no Computador C e ignorasse o tráfego externo se não estivesse relacionado a essas portas. As conexões permitidas devem ser do computador C para o exterior, mas não do exterior para o computador C (quero dizer - o computador C não está hospedando nenhum HTTP ou SSH, mas ele vai usá-los como um cliente).

Acho que isso deve ser feito assim:

iptables -A OUTPUT -i eth2 -o eth0 -p tcp --dport 21 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A INPUT -i eth2 -o eth0 -p tcp --sport 21 -m state --state ESTABLISHED -j ACCEPT

A última regra (descartar qualquer outro tráfego diferente deles) está no final da configuração, portanto -A deve estar funcionando corretamente.

A coisa é ... não está funcionando. Se eu colocar a última regra assim:

iptables -A FORWARD -i eth2 -o eth0 -j DROP

Ele simplesmente descarta tudo e, por exemplo, a porta 21 (aberta anteriormente, como você pode ver acima) não está funcionando.

Você pode me dizer o que eu poderia ter feito de errado? Eu tenho lutado com esse problema há algum tempo e não consigo resolvê-lo. Obrigado!

    
por Davidoper 30.10.2012 / 01:13

1 resposta

0

Você permite conexões novas / estabelecidas de saída para o TCP 21 e permite conexões estabelecidas de entrada para o TCP 21. Mas você descarta todos os tráfegos na cadeia de encaminhamento.

Acho que a questão vem daqui, então você deve adicionar uma regra de encaminhamento para permitir o tráfego de saída e entrada.

    
por 29.11.2012 / 11:34