Existe uma maneira de descobrir qual regra do iptables foi responsável pela eliminação de um pacote?

24

Eu tenho um sistema que vem com um firewall já instalado. O firewall consiste em mais de 1000 regras de iptables. Uma dessas regras é eliminar pacotes que não quero descartar. (Eu sei disso porque eu fiz iptables-save seguido de iptables -F e o aplicativo começou a funcionar.) Existem muitas regras para classificar manualmente. Posso fazer algo para me mostrar qual regra está descartando os pacotes?

    
por Shawn J. Goff 26.03.2011 / 16:41

5 respostas

18

Você pode adicionar uma regra TRACE no início da cadeia para registrar todas as regras que o pacote percorre.

Eu consideraria usar iptables -L -v -n | less para permitir que você pesquisasse as regras. Eu olharia para o porto; endereço; e regras de interface que se aplicam. Como você tem muitas regras, provavelmente está executando um firewall praticamente fechado e sem uma regra de permissão para o tráfego.

Como o firewall é construído? Pode ser mais fácil olhar as regras do construtor do que as regras construídas.

    
por 26.03.2011 / 19:16
11

Execute iptables -L -v -n para ver os contadores de pacotes e bytes de todas as tabelas e de todas as regras.

    
por 26.03.2011 / 18:29
8

Como iptables -L -v -n tem contadores, você pode fazer o seguinte.

iptables -L -v -n > Sample1
#Cause the packet that you suspect is being dropped by iptables
iptables -L -v -n > Sample2
diff Sample1 Sample2

Dessa forma, você verá apenas as regras que foram incrementadas.

    
por 26.03.2011 / 21:14
6

Na minha empresa, usamos watch -n 2 -d iptables -nvL , ele mostra as alterações entre as solicitações

    
por 26.08.2015 / 22:13
5
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

Tenha em mente que isso só mostrará coisas para a tabela filtro .

Adicione -t nat (ou qualquer tabela que você use além do filtro) à sua chamada do iptables, para verificar as regras lá.

    
por 08.09.2016 / 15:46