Quero que o iptables filtre apenas uma interface, eth0, que esteja voltada para a WAN. Como isso pode ser feito? E eu quero manter as portas ftp e ssh abertas no eth0.
Quero que o iptables filtre apenas uma interface, eth0, que esteja voltada para a WAN. Como isso pode ser feito? E eu quero manter as portas ftp e ssh abertas no eth0.
Respostas:
Portanto, para todas as interfaces, exceto aquela que você deseja aceitar todo o tráfego, e no eth0 você deseja eliminar todo o tráfego recebido, exceto ftp e ssh.
Primeiro, poderíamos definir uma política de aceitação de todo o tráfego por padrão.
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT
Em seguida, poderíamos redefinir suas regras de firewall.
iptables -F
Agora, podemos dizer que queremos permitir o tráfego de entrada no eth0 que faz parte de uma conexão que já permitimos.
iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
Também queremos permitir conexões ssh recebidas no eth0.
iptables -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT
Mas que qualquer outra coisa recebida no eth0 deve ser descartada.
iptables -A INPUT -i eth0 -j DROP
Para um pouco mais de profundidade, consulte esta entrada do wiki do CentOS .
O FTP é mais complicado que o ssh, pois pode usar uma porta aleatória; portanto, consulte esta pergunta anterior .
Algo assim deve fazer o trabalho:
iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT
ACCEPT
tudo nas outras interfaces.
A opção para especificar uma interface em sua regra de iptables é -i
, por exemplo: -i eth0
.
É muito simples quando você faz uma iptables
regra e precisa especificar a interface. A opção para especificar a placa LAN na qual iptables
deve funcionar é-i
As regras a seguir podem dar um bom exemplo
iptables -A INPUT -p tcp -i eth0 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
iptables -A INPUT -p tcp -i eth0 -j REJECT --reject-with tcp-reset
A última regra é rejeitar qualquer outro pacote que não corresponda às 2 primeiras regras. Todas as regras iptables
são executadas na ordem especificada, portanto, a regra para rejeitar pacotes é sempre a última.