Чи є спосіб знайти, яке правило iptables відповідало за скидання пакета?


31

У мене є система, яка вже встановила брандмауер. Брандмауер складається з понад 1000 правил iptables. Одне з цих правил - це скидання пакетів, які я не хочу скидати. (Я знаю це, тому що я iptables-saveпішов за ним, iptables -Fі програма почала працювати.) Існує занадто багато правил для сортування вручну. Чи можу я щось зробити, щоб показати мені, яке правило - це скидання пакетів?


1
fedorahosted.org/dropwatch також може бути корисним у майбутньому.
Шон Дж. Гофф

Щоб побачити оновлення лічильників у режимі реального часу, використовуйте <br/> <code> дивіться iptables -L -v -n </code>
Кріс Гібб

Відповіді:


19

Ви можете додати правило TRACE на початку ланцюга, щоб записати кожне правило, через яке проходить пакет.

Я б розглядав можливість використання iptables -L -v -n | less щоб дозволити вам шукати правила. Я б виглядав порт; адреса; та правила інтерфейсу, які застосовуються. Зважаючи на те, що у вас є стільки правил, ви, ймовірно, використовуєте здебільшого закритий брандмауер, і вам не вистачає правила дозволу для трафіку.

Як будується брандмауер? Можливо, простіше подивитися на правила будівельника, ніж на побудовані правила.


Я зрозумів, задавши це запитання, що правила є APF, і мені вдалося це виправити. Я люблю ціль TRACE, хоча. Це було б дуже ефективно.
Шон Дж. Гофф

2
Приклад використання цілі TRACE наведено тут: serverfault.com/questions/122157/debugger-for-iptables/… .
slm

14

Запустіть, iptables -L -v -nщоб побачити лічильники пакетів та байтів для кожної таблиці та кожного правила.


Це добре, я сподіваюся на щось краще, оскільки є 1000 правил і 1000 тисяч скинутих пакетів.
Шон Дж. Гофф

Використовуйте sortдля сортування правил за лічильником пакетів.
ніндзя

13

Оскільки iptables -L -v -nу лічильників ви можете зробити наступне.

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

Таким чином ви побачите лише ті правила, які зростали.



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

Майте на увазі, це покаже лише матеріали для фільтра таблиці .

Додайте -t nat(або ту таблицю, яку ви використовуєте, крім фільтра) у свій дзвінок iptables, щоб перевірити правила.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.