Existe uma maneira de descobrir qual regra do iptables foi responsável por descartar um pacote?


31

Eu tenho um sistema que veio com um firewall já instalado. O firewall consiste em mais de 1000 regras de tabelas de ip. Uma dessas regras é o descarte de pacotes que não quero que sejam descartados. (Eu sei disso porque iptables-savesegui iptables -Fe o aplicativo começou a funcionar.) Existem muitas regras para classificar manualmente. Posso fazer algo para me mostrar qual regra está descartando os pacotes?


1
O fedorahosted.org/dropwatch também pode ser útil no futuro.
Shawn J. Goff

Para ver a atualização contadores em tempo real uso <br/> <code> relógio iptables -L -v -n </ code>
Chris Gibb

Respostas:


19

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

Eu consideraria usar iptables -L -v -n | lesspara permitir que você pesquise as regras. Eu pareceria porto; endereço; e regras de interface que se aplicam. Dado que você possui muitas regras, provavelmente está executando um firewall praticamente fechado e não possui uma regra de permissão para o tráfego.

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


Depois de fazer essa pergunta, descobri que as regras são da APF e pude consertar isso. Eu amo o alvo TRACE, no entanto. Isso teria sido muito eficaz.
Shawn J. Goff

2
Um exemplo de uso do destino TRACE está aqui: serverfault.com/questions/122157/debugger-for-iptables/… .
slm

14

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


Isso é bom, espero algo melhor, pois existem 1000 regras e milhares de pacotes descartados.
Shawn J. Goff

Use sortpara classificar regras por contador de pacotes.
Njalj

13

Como iptables -L -v -npossui 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.


9

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


5
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"

Lembre-se de que isso mostrará apenas itens para o filtro da tabela .

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

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.