J'ai un système qui est venu avec un pare-feu déjà en place. Le pare-feu se compose de plus de 1000 règles d'IPTABLES. Une de ces règles est la chute de paquets que je ne veux pas tomber. (Je le sais parce que j'ai fait iptables-save
suivie par iptables -F
Et l'application a commencé à travailler.) Il y a beaucoup trop de règles pour trier manuellement. Puis-je faire quelque chose pour me montrer quelle règle tombe les paquets?
Vous pouvez ajouter une règle de trace tôt dans la chaîne pour enregistrer chaque règle que le paquet traverse.
Je envisagerais d'utiliser iptables -L -v -n | less
Pour vous permettre de rechercher les règles. Je regarderais le port; adresse; et règles d'interface qui s'appliquent. Étant donné que vous avez autant de règles, vous exécutez probablement un pare-feu surtout fermé et vous manque une règle de permis pour le trafic.
Comment est construit le pare-feu? Il peut être plus facile de consulter les règles du constructeur que les règles construites.
Depuis iptables -L -v -n
a des compteurs que vous pourriez 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.
Courir iptables -L -v -n
Pour voir les compteurs de paquets et d'octets pour chaque table et pour chaque règle.
Dans ma compagnie, nous utilisons watch -n 2 -d iptables -nvL
, il montre des changements entre les demandes
watch -n1 -d "iptables -vnxL | grep -v -e pkts -e Chain | sort -nk1 | tac | column -t"
Gardez à l'esprit, cela ne montrera que des trucs pour la table filtre.
Ajouter -t nat
(ou quelle que soit la table que vous utilisez en plus de filtrer) à votre appel IPTABLES, pour vérifier les règles là-bas.