Установка modsecurity для Apache


ModSecurity - своеобразный фаервол для Apache, Nginx и IIS. Это модуль, предоставляющий набор правил для фильтрации трафика. Это модуль из разряда must have для любого сервера.

12 Февраля 2015 года была выпущена версия 2.9.0. Она является наиболее актуальной на момент написания этой заметки.

Даже четвертого января 2016 года эта версия является самой актуальной.

Собирать будем из исходников и настраивать для вэб сервера Apache.

Для нормальной компиляции этой версии необходим libxml2 версии 2.6.29. Первым шагом нужно удостовериться, что он доступен для ОС Вашего сервера:

yum info libxml2

Или:

apt-cache showpkg libxml2

Если необходимый пакет доступен для установки - можете продолжать.

Удостоверьтесь, что у Вас установлены следующие пакеты:
RedHat/Centos:

apt-get install gcc automake libxml2 libxml2-dev apache2-threaded-dev libcurl4-openssl-dev libpcre3-dev

Ubuntu/Debian:

apt-get install gcc automake libxml2 libxml2-dev apache2-threaded-dev libcurl-dev pcre-dev

Я буду работать в папке /usr/local/src.

cd /usr/local/src

Скачиваем нужный архив:

wget --no-check-certificate https://www.modsecurity.org/tarball/2.9.0/modsecurity-2.9.0.tar.gz

Распаковываем и переходим в каталог:

tar xf modsecurity-2.9.0.tar.gz && cd modsecurity*

Стандартная установка:

./configure
make && make install

Модуль будет установлен в папку /usr/local/modsecurity/lib. Бинарники будут лежать в папке /usr/local/modsecurity/bin.

Дальше нужно добавить вот такте строчки в файл конфигурации Apache (/etc/httpd/conf/httpd.conf)

LoadModule security2_module /usr/local/modsecurity/lib/mod_security2.so

И раскомментировать:

LoadModule unique_id_module modules/mod_unique_id.so

Дальше берем рекомендуемую конфигурацию модуля и копируем в папку conf.d Apache:

cp modsecurity.conf-recommended /etc/httpd/conf.d/modsecurity.conf

Можно открыть этот фал и подредактировать путь к логу аудита - SecAuditLog.

При проверке конфигурации может выдать вот такую ошибку:

Syntax error on line 212 of /etc/httpd/conf.d/modsecurity.conf:
Could not open unicode map file "/etc/httpd/conf.d/unicode.mapping": No such file or directory

Для фикса копируем нужный файл:

cp unicode.mapping /etc/httpd/conf.d/

На этом все. Установка закончена. Даже с базовым набором параметров, сервер стал дышать свободнее.

Для скрытия версии апача, отключения Trace метода можно внести следующие строки в /etc/httpd/conf.d/modsecurity.conf:

ServerSignature Off
ServerTokens Prod
TraceEnable Off

Более подробную информацию о всех параметрах настройки можно почитать здесь

Поскольку mod_security -это фаервол, то для него существуют наборы правил, которые нужно включить для того, что бы mod_security начал приносить пользу.

Список беcплатных правил доступен на GitHub:

Его и скачиваем и распаковываем:

wget https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/master.zip
unzip master.zip

Создаем папку в которую мы сложим конфиги для правил, которые нам нужно включить и копируем нужные нам наборы правил:

mkdir /etc/modsecurity/activated_rules
cp owasp-modsecurity-crs-master/base_rules/* /etc/modsecurity/activated_rules/

Следующие наборы правил приносили больше зла, чем пользы, поэтому их лучше выключить:

rm /etc/modsecurity/activated_rules/modsecurity_crs_35_bad_robots.conf
rm /etc/modsecurity/activated_rules/modsecurity_crs_41_sql_injection_attacks.conf
rm /etc/modsecurity/activated_rules/modsecurity_crs_21_protocol_anomalies.conf

Дополниттельного внимания заслыживает следующая папка, так как в ней находятся рекомендованые правила для популярных CMS систем:

owasp-modsecurity-crs-master/slr_rules

Скопируйте нужные Вам файлы с расширениями ".conf" и ".data" в папку /etc/modsecurity/activated_rules/

Отредактируйте файл /etc/httpd/conf.d/modsecurity.conf следующей строкой что бы все заработало:

Include /etc/modsecurity/activated_rules/*.conf

Share Button
(Visited 668 times, 1 visits today)

3 комментария на «“Установка modsecurity для Apache”»

    • Виталий,

      Установка для cPanel ничем не отличается. WHM/cPanel не ущемляют Ваши права на сервере (при условии, что у Вас есть root доступ).

      Просто Вам нужно будет добавлять Include activated_rules в файл
      /usr/local/apache/conf/includes/pre_virtualhost_global.conf

      В последних версиях WHM была включена поддержка mod_security из коробки. Правда я еще не смотрел где его кастомизировать.

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *