2009-05-05 5 views
2

Я пытаюсь написать правила для удаления любого пакета, независимо от того, является ли он исходящим, входящим или переадресованным, который имеет конкретную подстроку в полезной нагрузке TCP или UDP.iptable правило для удаления пакета с определенной подстрокой в ​​полезной нагрузке

Как я могу это сделать?

ответ

8

Вам понадобится ядро, скомпилированное с использованием Netfilter «String match support».

Тогда вы можете

iptables -A INPUT -m string --algo bm --string "test" -j DROP 
iptables -A OUTPUT -m string --algo bm --string "test" -j DROP 
iptables -A FORWARD -m string --algo bm --string "test" -j DROP 

Проверить результат WTH

iptables -L 
+0

привет, я использую Ubuntu ядру 2.6.8.11 ядро. Я пытаюсь написать некоторую программу фильтрации червя на уровне приложения, используя библиотеку libpcap. Я установил вышеуказанные правила, но все еще не смог отбросить пакеты. Мне нужно установить поддержку соответствия строк iptables или она присутствует по умолчанию. есть ли способ проверить это? – Kazoom

+0

Команда iptables выдаст ошибку, если модуль отсутствует, например «невозможно открыть файл общих объектов: нет такого файла или каталога». Вы можете использовать правило ведения журнала, чтобы узнать, соответствуют ли пакеты правилу, например: iptables -A INPUT -m string -string "test" -j LOG -log-level info -log-prefix "iptables-string- match " – Andomar

+0

iptables -A добавляет, вы можете использовать опцию -I для вставки в верхней части цепочки или указать точку для вставки правила; правила оцениваются по порядку, и в некоторых случаях это может не привести к ожидаемым результатам. –