Следующие правила блокируют прохождение пакетов, данные в которых содержат подстроку virus.exe
и ведут лог пакетов с строкой secret внутри:
iptables -A INPUT -m string --string "secret" -j LOG --log-level info --log-prefix "SECRET"
iptables -I INPUT -j DROP -p tcp -s 0.0.0.0/0 -m string --string "virus.exe"
# Block Code Red
iptables -I INPUT -j DROP -p tcp -m string --string "cmd.exe"
# Block Nimda
iptables -I INPUT -j DROP -p tcp -m string --string "root.exe"
iptables -I INPUT -j DROP -p tcp -m string --string "default.ida"
URL:
Обсуждается: http://www.opennet.me/tips/info/231.shtml
Можно ли фильтровать пакеты которые приходят с сайта в URL которого встречается определенное слово, например banner или counter?
У меня iptables 1.3.4 и kernel-2.6.14. Приведенные правила не срабатывают. Iptables требует определить опцию --algo (алгоритм), но какой алгоритм я не знаю? В файле libipt_string.c определено несколько опций для STRING match: --from Offset to start searching from;
--to Offset to stop serching;
--algo Algorithm;
--string [!] string строка в пакете;
--hex-string [!] string строка в шестнадцатиричном виде. Может кто знает, что задать в опции algo?
У меня тот же вопрос. Что это ещё за algo такое???
Вы не поверите, но algo - это и в самом деле алгоритм! Например, kmp - это алгоритм Кнута-Мориса-Пратта, bm - наверное, Бойера-Мура. Только непонятно, каким образом об этом должен узнать пользователь?
Я эти ценные сведения почерпнул из lib/textsearch.c, но это же догадаться ещё надо туда залезть!
Работает так:
iptables -I INPUT -p tcp --sport 80 --dport 1024: -m string --algo kmp --string linux -j DROP
Работает так:
iptables -I INPUT -p tcp --sport 80 --dport 1024: -m string --algo kmp --string linux -j DROP
Только что проверял - OpenNet с этим правилом действительно не грузится :)
Перечень алгоритмов, поддерживаемых функцией поиска подстрок, реализованных ядре, можно получить так :
(находясь в корне исходников ядра)
ls lib | sed -nr 's/^ts_([^\.]+)\.c$/\1/p'Описания алгоритмов:
fsm: A naive finite state machine text search approach
bm: Boyer-Moore text search implementation
kmp: Knuth-Morris-Pratt text search implementation
Для CentOS 6 подошел такой вариант фильтра:
iptables -A INPUT -p tcp --dport 80 -m string --string "MJ12bot" --algo kmp -j DROP
заблокировать бота MJ12bot
С такими правилами указал однин запрет, у меня утром на работе интернет стал зависать. После удаления строчки блокировки vk.com интернет заработал нормально
Заметил процесс ksoftirqd стал жрать ЦПУ