Ключевые слова:slackware, linux, apache, security, mod_security, limit, web, (найти похожие документы)
From: Павел Сумкин <ymkin@mail.ru.>
Newsgroups: email
Date: Mon, 24 Oct 2007 14:31:37 +0000 (UTC)
Subject: Установка модуля modsecurity-apache в Linux SlackwareВведение
Для Apache ветви 2.хх существует модуль усиления безопасности
mod_security http://www.modsecurity.org/.
Данный модуль предназначен для фильтрации входящего и исходящего
http-трафика и позволяет на основе анализа запросов к web-серверу и его
ответов предотвратить атаки, специфичные для web-сервисов:
- защита уязвимых сценариев динамических страниц (разного рода инъекции);
- предотвращение утечки информации;
Текущая версия:
modsecurity-apache_2.1.3 от 12.09.2007.
В составе дистрибутива Linux Slackware этот модуль не распространяется.
Установка модуля mod_security.
Скачать 2а пакета релиз-версий:
modsecurity-apache_2.1.3.tar.gz
modsecurity-core-rules_2.1-1.4.3.tar.gz
В общем случае, пакет релиза модуля включает релиз набора правил.
Правила могут быть обновлены отдельно от самого модуля.
Сборка модуля может быть осуществлена как с помощью make, так и с
помощью утилиты установки модулей apache - apxs.
1й метод - make.
После распаковки архива пакета modsecurity-apache правим
modsecurity-apache/apache2/Makefile:
параметр
top_dir = /apps/apache22
меняем (для Slackware 12.0, httpd-2.2.4-i486-6) на
top_dir = /usr/lib/httpd
запуск make с указанием директории для последующего формирования
slackware-пакета:
# make && make install DESTDIR=/usr/src/modsecurity-apache/PKG
получаем подключаемый модуль
/usr/src/modsecurity-apache/PKG/usr/lib/httpd/modules/mod_security2.so
копируем файлы правил в
/usr/src/modsecurity-apache/PKG/etc/httpd/modsecurity/*.conf
копируем файлы документации в
/usr/src/modsecurity-apache/PKG/usr/doc/modsecurity-apache-2.1.3/
Создаем файл описания slackware-пакета:
/usr/src/modsecurity-apache/PKG/install/slack-desc
# HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description. Line
# up the first '|' above the ':' following the base package name, and the '|'
# on the right side marks the last column you can put a character in. You must
# make exactly 11 lines for the formatting to be correct. It's also
# customary to leave one space after the ':'.
modsecurity-apache: modsecurity-apache
modsecurity-apache:
modsecurity-apache: ModSecurity is a web application firewall (WAF).
modsecurity-apache:
modsecurity-apache: WAFs are deployed to establish an external security layer
modsecurity-apache: that increases security, detects, and prevents attacks
modsecurity-apache: before they reach web applications.
modsecurity-apache:
modsecurity-apache: < http://www.modsecurity.org >
modsecurity-apache:
modsecurity-apache:
Создаем послеинсталляционный сценарий slackware-пакета:
/usr/src/modsecurity-apache/PKG/install/doinst.sh
libtool --finish /usr/lib/httpd/modules
Поправляем права на файлы, обрезаем бинарник и собираем пакет:
# cd /usr/src/modsecurity-apache/PKG
# chown -R root:root *
# chmod -R 644 *
# chmod -R a+X *
# chmod -R 755 usr/lib/httpd/modules/mod_security2.so
# strip --strip-unneeded usr/lib/httpd/modules/mod_security2.so
# makepkg modsecurity-apache-2.1.3-i386-1.tgz
Теперь у нас есть пакет, который может быть установлен в системе:
# installpkg modsecurity-apache-2.1.3-i386-1.tgz
После установки необходимо откорректировать файлы конфигурации согласно документации, особо проверить параметры в файлах:
/etc/httpd/modsecurity/modsecurity_crs_10_config.conf
/etc/httpd/modsecurity/modsecurity_crs_30_http_policy.conf
SecServerSignature
SecAuditLog
SecDebugLog
Ведение отдельных журналов имеет смысл при отладке, т.к. все события с блокировкой записываются в журнал веб-сервера ErrorLog.
В файле набора правил
/etc/httpd/modsecurity/modsecurity_crs_20_protocol_violations.conf
неверное правило - проверка utf8-кодирования параметров передаваемых формой:
SecRule REQUEST_FILENAME|ARGS|ARGS_NAMES|REQUEST_HEADERS|XML:/*|!REQUEST_HEADERS:Referer "@validateUtf8Encoding" "deny,log,auditlog,status:400,msg:'UTF8 Encoding Abuse Attack Attempt',,id:'950801',severity:'4'"
заменить, например, на
SecRule REQUEST_FILENAME|REQUEST_HEADERS|XML:/*|!REQUEST_HEADERS:Referer "@validateUtf8Encoding" "deny,log,auditlog,status:400,msg:'UTF8 Encoding Abuse Attack Attempt',,id:'950801',severity:'4'"
В файле набора правил
/etc/httpd/modsecurity/modsecurity_crs_21_protocol_anomalies.conf
для обработки запросов по IP-адресу необходимо закомментировать строки правил:
SecRule REMOTE_ADDR "^127\.0\.0\.1$" "chain"
SecRule REQUEST_HEADERS:Host "^[\d\.]+$" "deny,log,auditlog,status:400,msg:'Host header is a numeric IP address', severity:'2',,id:'960017',"
Добавить в /etc/httpd/httpd.conf строки активизации модуля:
LoadFile /usr/lib/libxml2.so
LoadModule security2_module lib/httpd/modules/mod_security2.so
Include /etc/httpd/modsecurity/*.conf
Перезапустить apache:
# apachectl restart
Для улучшения гибкости управления системой можно собрать отдельные
пакеты для модуля и набора правил.
2й метод - apxs.
После распаковки архива пакета modsecurity-apache
вместо запуска make используем утилиту apxs (Apache eXtenSion):
# apxs -cia mod_security2.c
В результате получаем уже установленный в систему подключаемый модуль (бинарный файл не обрезан)
и модифицированный файл конфигурации сервера httpd.conf.
Остается скопировать в директорию файлов конфигурации сервера файлы
правил, поправить httpd.conf и перезапустить apache.
Необходимо отметить, что данный метод усложняет дальнейшее сопровождение
и отслеживание установленного ПО. Всегда следует использовать основную
для дистрибутива ОС технологию установки ПО.
Дополнительная информацияВведение в mod_securitymod_security. Повышение производительностиmodsecurity.org
Статья крутая, только хотелось бы узнать насчет сPanel, потому что собирать по кускам в инете не очень хочется, но удалось найти кое что https://shneider-host.ru/blog/cpanel-modul-modsecurity.html было бы здорово это прочесть здесь все же...