Apache 2.2 mod_security

Категория: / DEV Блог / Сервер (FreeBSD)
Устанавливаем:
/usr/ports/www/mod_security

Конфигурим:
В конфиге апача добавляем
LoadModule security2_module libexec/apache22/mod_security2.so
Модуль не работает, если отключен mod_unique_id. Не забудьте включить.

Модуль создает в папке Includes сервера несколько своих конфигурационных файлов.
Содержание файлов - на любителя. Нам нужна только фильтрация входящего трафика. Mod_security
докучи проверяет исходящий.

Для включения модуля - меняем значение параметра (файл /modsecurity_crs_10_config.conf)
#SecRuleEngine DetectionOnly
SecRuleEngine On

Следующими строками избавляемся от ненужных сканнеров-роботов:

SecRule REQUEST_HEADERS:User-Agent "yahoo*" "deny,log,status:404"
SecRule REQUEST_HEADERS:User-Agent "libwww*" "deny,log,status:404"

Полную информацию по настройке mod_security можно узнать на примере прилагаемых конфигов
и официальной документации.

UPD.
Не используйте в правилах (регулярных выражениях) большие буквы - все маленькими.
Неправильно:
SecRule REQUEST_HEADERS:User-Agent ".*Yahoo.*$" "deny,log,status:404"
Правильно:
SecRule REQUEST_HEADERS:User-Agent ".*yahoo.*$" "deny,log,status:404"