Como as políticas do iptables funcionam?

1

Adicionei algumas regras básicas:

iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

Em seguida, comande para fechar todas as outras portas com:

iptables -A INPUT -j DROP

E funciona perfeitamente, eu testei com:

% telnet x.x.x.x 81                                
Trying x.x.x.x...
telnet: connect to address x.x.x.x: Operation timed out
telnet: Unable to connect to remote host

Mas quando listo regras, vejo policy ACCEPT :

Chain INPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere

Eu sei como alterá-lo, com iptables -P INPUT DROP , então se torna:

Chain INPUT (policy DROP)
target     prot opt source               destination
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
DROP       all  --  anywhere             anywhere

Mas eu não entendo a diferença, porque funciona como antes. Eu li o artigo que sugere mudar a política para DROP, mas por que devo fazer isso? Qual é a diferença no meu iptables acima?

    
por Rustam A. Gasanov 04.01.2015 / 17:19

1 resposta

4

Uma política DROP do iptables é equivalente a iptables -A INPUT -j DROP (regra DROP) no final da cadeia. Mas esta regra deve permanecer no final da cadeia , qualquer regra depois que ela nunca será tocada por nenhum pacote.

Se você usar a regra DROP, não poderá mais usar iptables -A (append), só poderá usar iptables -I nr (inserir, nr é o número da última regra) e inserir regras antes da última. E para esta inserção funcionar, você deve saber o número da regra da sua última regra, que obviamente mudará, tornando-se mais difícil de escrever. Você pode economizar algumas dificuldades usando a política DROP.

E, finalmente, isso torna o todo muito mais legível, se eu souber desde o início como os pacotes que não correspondem a nenhuma regra serão tratados.

Alguma outra opinião sobre isso?

    
por 04.01.2015 / 17:44