Existe-t-il un moyen de trouver quelle règle iptables était responsable de la suppression d'un paquet?


31

J'ai un système fourni avec un pare-feu déjà en place. Le pare-feu comprend plus de 1000 règles iptables. L'une de ces règles consiste à supprimer des paquets que je ne souhaite pas supprimer. (Je le sais parce que j'ai iptables-savesuivi iptables -Fet que l'application a commencé à fonctionner.) Il y a beaucoup trop de règles à trier manuellement. Puis-je faire quelque chose pour me montrer quelle règle supprime les paquets?


1
fedorahosted.org/dropwatch pourrait également être utile à l'avenir.
Shawn J. Goff

Pour voir la mise à jour des compteurs en temps réel, utilisez <br/> <code> watch iptables -L -v -n </code>
Chris Gibb

Réponses:


19

Vous pouvez ajouter une règle TRACE au début de la chaîne pour enregistrer chaque règle traversée par le paquet.

J'envisagerais d'utiliser iptables -L -v -n | lesspour vous permettre de rechercher les règles. Je regarderais le port; adresse; et les règles d'interface qui s'appliquent. Étant donné que vous avez tellement de règles, vous exécutez probablement un pare-feu principalement fermé et il manque une règle d'autorisation pour le trafic.

Comment est construit le pare-feu? Il peut être plus facile de regarder les règles du générateur que les règles construites.


J'ai compris après avoir posé cette question que les règles sont de l'APF, et j'ai pu y remédier. J'adore la cible TRACE. Cela aurait été très efficace.
Shawn J.Goff

2
Un exemple d'utilisation de la cible TRACE est ici: serverfault.com/questions/122157/debugger-for-iptables/… .
slm

14

Exécutez iptables -L -v -npour voir les compteurs de paquets et d'octets pour chaque table et pour chaque règle.


C'est bien, j'espère quelque chose de mieux car il y a 1000 règles et 1000s de paquets perdus.
Shawn J. Goff

Utilisez sortpour trier les règles par compteur de paquets.
ninjalj

13

Depuis iptables -L -v -na des compteurs, vous pouvez faire ce qui suit.

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

De cette façon, vous ne verrez que les règles incrémentées.


9

Dans mon entreprise que nous utilisons watch -n 2 -d iptables -nvL, il montre les changements entre les demandes


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

Gardez à l'esprit que cela ne montrera que des éléments pour le filtre de table .

Ajoutez -t nat(ou la table que vous utilisez en plus du filtre) à votre appel iptables, pour vérifier les règles.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.