IPtables: Bloqueando todo o tráfego em uma interface, exceto portas selecionadas

1

Eu tenho quatro interfaces no meu sistema (eth0, eth1, eth2 e eth3). Eu quero bloquear todo o tráfego de entrada e saída no eth2, exceto para as portas 80 e 443, embora eu esteja preocupado com 80 agora. Os comandos do IPtables que estou usando são os seguintes:

/sbin/iptables -A FORWARD -i eth2 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -o eth2 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p tcp --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p tcp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A INPUT -i eth2 -p udp --dport 53 -m state --state NEW -j ACCEPT
/sbin/iptables -A OUTPUT -o eth2 -p udp --sport 53 -m state --state NEW,ESTABLISHED -j ACCEPT
/sbin/iptables -A FORWARD -i eth2 -j DROP
/sbin/iptables -A FORWARD -o eth2 -j DROP

Simplesmente, isso não está funcionando. Todo o tráfego na eth2 é bloqueado, inclusive na porta 80. Tem alguma ideia ou maneira de investigar onde está o problema? Eu tenho experiência mínima com IPtables, então não tenho certeza por onde começar. Obrigado!

    
por shanet 14.12.2011 / 05:58

2 respostas

2

Agora parece que você estava permitindo o tráfego o tempo todo.

    
por 14.12.2011 / 06:55
1

Considere um construtor de firewall como o Shorewall. Isso ajudará a acertar tudo e pode despejar as regras para que você possa inspecioná-las. Existe extensa documentação disponível e exemplos de configurações para uma, duas ou três interfaces (zonas externas). Isso faz com que você tenha três interfaces externas sem colocar duas na mesma zona.

Supondo que você atribuiu eth2 à zona net , é possível ativar o HTTP e HTTPS com um desses rules . Qual regra você precisa depende da direção em que você deseja que o tráfego flua.

Web(ACCEPT)   $FW    net
Web(Accept)   net    $FW
    
por 14.12.2011 / 06:23