Como o iptables executa regras?

2

Eu tenho tido alguns problemas com um firewall bloqueando o tráfego entre dois servidores recentemente e quero verificar como o iptables lida com várias regras que se aplicam ao mesmo IP. Se eu executar iptables -L -n | grep 1.2.3.4 , vejo esta saída:

ACCEPT    all  --  1.2.3.4      0.0.0.0/0
DROP      all  --  1.2.3.4      0.0.0.0/0
ACCEPT    all  --  0.0.0.0/0            1.2.3.4
DROP      all  --  0.0.0.0/0            1.2.3.4

Como o iptables processará essas regras? Todo o tráfego de 1.2.3.4 será descartado?

    
por Dave Child 14.10.2011 / 11:07

3 respostas

2

Difícil dizer que você não está exibindo para quais cadeias essas regras se aplicam.

É fácil dizer: para um firewall, você precisa começar com a cadeia FORWARD e seguir todas as regras que correspondem em sequência até acertar um ACCEPT, DROP ou REJECT

Se você atingir o fim de todas as regras dessa maneira, a política padrão do FORWARD será aplicada.

    
por 14.10.2011 / 11:20
6

executar iptables -L -n não fornece os nomes de interface que as regras podem ter definido como condições. Regras que se parecem com alvos diferentes são provavelmente condicionadas para diferentes interfaces, a menos que tenham sido escritas   a) com pressa   b) por um administrador distraído   c) como uma solução temporária para algo ou   d) todos os itens acima

Use iptables -L -v -n em vez disso.

Para responder à sua pergunta: o destino do pacote é decidido pela regra de correspondência primeiro com um destino terminal (ACCEPT e DROP são esses destinos, mas há outros como RETURN que não são terminais, portanto continua). Se não houver essa regra, a política padrão de cadeia se aplica, que é ACCEPT por padrão e pode ser alterada por meio de iptables -P <ACCEPT, DROP> .

Veja este documento de fluxo de trabalho bastante bom para detalhes.

    
por 14.10.2011 / 11:32
2

Meu favorito pessoal de entender os conjuntos de regras iptables é o comando iptables-save , que despeja todas as regras para stdout. Isso ajuda a entender a ordem correta de regras.

Uma imagem completa da travessia de pacotes no iptables está aqui: link

    
por 14.10.2011 / 12:00