Habilitar iptables em uma interface

16

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.

nixnotwin
fonte
Por favor, leia as páginas de manual do iptables - ou, caso eu tenha entendido mal o seu problema, torne a pergunta mais específica.
Jari Jokinen

Respostas:

25

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 .

sciurus
fonte
5
ATENÇÃO!!! Faça "iptables -P ..." antes de "iptables -F". Se as regras atuais estiverem definidas para reduzir o tráfego por padrão, a execução de -F impedirá que você saia da sua caixa. É por isso que manter a política padrão permitida e adicionar especificamente uma regra para eliminar todo o tráfego é uma prática recomendada.
Coops
8

Algo assim deve fazer o trabalho:

iptables -A INPUT -i eth1 -p all -j DROP
iptables -A INPUT -i eth0 -p all -j ACCEPT
Bart De Vos
fonte
1
Praticamente no local (embora talvez seja um pouco melhor do que "Largar tudo" na interface da WAN, não é?) - Escreva regras para filtrar a interface que você deseja filtrar e apenas ACCEPTtudo nas outras interfaces.
precisa saber é o seguinte
4

A opção para especificar uma interface em sua regra de iptables é -i, por exemplo: -i eth0.

Derp A. Round
fonte
4

É muito simples quando você faz uma iptablesregra e precisa especificar a interface. A opção para especificar a placa LAN na qual iptablesdeve 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 iptablessão executadas na ordem especificada, portanto, a regra para rejeitar pacotes é sempre a última.

Usuário Registrado
fonte