NAT, iptables e portas problemáticas

2

Estou construindo uma rede de pequena empresa com máquinas virtuais. Meu esquema é este:

  • Computador A : gateway, ip 1.1.1.1 , iptables usados para NAT [eth0 = public internet dhcp, dhcp; eth1 = gateway]
  • Computador B : cliente, ip 1.1.1.2 , usando o gateway do Computador A.

O NAT está funcionando e o Computador B pode acessar a Internet usando o gateway do A. Eu redirecionei algumas portas de entrada de A para B (por exemplo, se A recebe um pedido para a porta 80, ele vai automaticamente para o Apache do Computador B).

O problema é que eu realmente não entendo como abrir / fechar portas para o Computador B do Computador A. Eu sei como fechar uma porta:

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

E ele recusará todas as conexões de entrada (não de saída) para a porta 80. No entanto, isso funciona para a interface principal eth0. Tentei, por exemplo, descartar conexões de entrada e saída para o Computador B, porta 80:

iptables -A FORWARD -i eth1 -o eth0 -p tcp --dport 80 -j DROP
iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j DROP

Mas isso não funciona. E não consigo descobrir o que estou fazendo de errado. Alguma pista?

    
por Rajie 29.10.2012 / 01:01

2 respostas

1

A primeira linha deve estar com o esporte (a porta de origem é 80). E também tenha cuidado ao usar -A. Isso anexa a regra à cadeia (adicione a regra no final). As regras nas cadeias são avaliadas do primeiro ao último, se uma regra corresponder, então as outras não serão mais avaliadas. Então, se você quer ter certeza use -I (insira no início da cadeia):

iptables -I FORWARD -i eth1 -o eth0 -p tcp --sport 80 -j DROP
iptables -I FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j DROP
    
por 29.10.2012 / 08:18
0

Acredito que você tenha perdido a diretiva 'OUTPUT'.

Por favor, tente isto:

iptables -A OUTPUT -p tcp --dport 80 -j DROP

Isso eliminará todo o tráfego de saída na porta 80.

    
por 29.10.2012 / 04:25