Установка и настройка Mod Security

Предварительная подготовка, установим пакеты:

apt-get install libxml2 libxml2-dev libxml2-utils

apt-get install libaprutil1 libaprutil1-dev

Установка Mod Security:

apt-get install libapache-mod-security

Или (почему-то инструкция на оф. сайте Mod Security не совпадает с установкой в Debian)

apt-get install libapache2-mod-security

Переименуем идущий в составе файл конфигурации:

/etc/modsecurity/modsecurity.conf-recommended
в
/etc/modsecurity/modsecurity.conf

Откроем его, найдем строку SecRuleEngine и приведем ее
в положение On

SecRuleEngine On

К сожалению в составе пакета не поставляются правила.

Загрузить их можно со странички проекта на Github:

https://github.com/SpiderLabs/owasp-modsecurity-crs

Дополнительную информацию посмотреть здесь: https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project

Распакуем полученный архив, в результате чего у нас будет несколько директорий с правилами которые поместим в /etc/modsecurity/

Полный путь должен выглядеть как:
/etc/modsecurity/base_rules/
/etc/modsecurity/experimental_rules/ и т.д.

Не забудем так же переместить файл modsecurity_crs_10_setup.conf.example в /etc/modsecurity/ переименовав его в modsecurity_crs_10_setup.conf

Создаем символьные ссылки на правила для каждого необходимого каталога:

cd /etc/modsecurity/base_rules

for f in * ; do ln -s /etc/modsecurity/base_rules/$f /etc/modsecurity/activated_rules/$f ; done

Включаем в конфигурационный файл /etc/apache2/mods-available/mod-security.conf каталог с символьными ссылками - activated_rules

Include "/etc/modsecurity/activated_rules/*.conf"

Вместо использования символьных ссылок можно включить каталоги с правилами в /etc/apache2/mods-available/mod-security.conf

Include "/etc/modsecurity/*.conf"
Include "/etc/modsecurity/base_rules/*.conf
Include "/etc/modsecurity/optional_rules/*.conf
Include "/etc/modsecurity/slr_rules/*.conf
Include "/etc/modsecurity/experimental_rules/*.conf

Активируем headers:
a2enmod headers

Активируем ModSecurity:
a2enmod mod-security

Перезапускаем Apache:
/etc/init.d/apache2 restart

Проверим успешно ли установлен ModSecurity:

1

cat /var/log/apache2/error.log |grep ModSecurity

2 Создаем файл sectest.php следующего содержания:

<?php
$secret_file
= $_GET['secret_file'];
include (
$secret_file);
?>

Загружаем его в корень сайта, набираем в браузере:

http://mysite.com/sectest.php?secret_file=/etc/passwd

Если файл открывается, Mod Security не работает или настроен неправильно.
Если данные блокируются - настройка произведена успешно.

Ключевые слова: