В статье описан способ быстрого запуска ModSecurity в CentOS . Web Application Firewall (ModSecurity) - это сетевой экран веб приложений, позволяющий блокировать атаки на уровне веб сервера, до того как они "достигнут" веб-приложения.
ModSecurity - является брандмауэром веб-приложений (WAF) с открытым исходным кодом. Первоначально разработанный как модуль для Apache HTTP Server, он развивался, чтобы обеспечить множество возможностей фильтрации запросов и ответов протокола Hypertext Transfer Protocol наряду с другими функциями безопасности на ряде различных платформ, включая Apache HTTP Server, Microsoft IIS и Nginx.
Установка mod_security в CentOS
До окончания настройки не стоит перезапускать веб-сервер, это приведет к блокировки всех запросов.
Перед установкой пакета, дополнительно ставим пакет git, он понадобиться для получения правил работы
yum install git
Устанавливаем mod_security
yum install mod_security
Настройка правил mod_security
В качестве правил будем использовать правила OWASP
Скачиваем правила:
git clone https://github.com/coreruleset/coreruleset.git
копируем файл crs-setup.conf, без него mod_security будет блокировать все запросы
cp coreruleset/crs-setup.conf.example /etc/httpd/modsecurity.d/activated_rules/00-crs-setup.conf
копируем правила, в директорию /etc/httpd/modsecurity.d/activated_rules/
cp coreruleset/rules/* /etc/httpd/modsecurity.d/activated_rules/
после этого можно перезапустить apache
systemctl restart httpd
Дополнительной настройки не требуется, так как ModSecurity настроен на блокирование всех обнаруженных атак.
Ошибка при запросе
Если журналах веб сервиса присутствует следующая ошибка
[Fri Mar 04 07:26:04.516164 2022] [:error] [pid 2078:tid 140249942456064] [client 192.168.153.1:2203] [client 192.168.153.1] ModSecurity: Access denied with code 500 (phase 1). Operator EQ matched 0 at TX. [file "/etc/httpd/modsecurity.d/activated_rules/REQUEST-901-INITIALIZATION.conf"] [line "63"] [id "901001"] [msg "ModSecurity Core Rule Set is deployed without configuration! Please copy the crs-setup.conf.example template to crs-setup.conf, and include the crs-setup.conf file in your webserver configuration before including the CRS rules. See the INSTALL file in the CRS directory for detailed instructions"] [severity "CRITICAL"] [ver "OWASP_CRS/3.4.0-dev"] [hostname "192.168.153.128"] [uri "/"] [unique_id "YiIFXIj7rlMc5p57Jzu2sAAAAEA"]
значит не был скопирован файл "crs-setup.conf.example" отключающий правило 900990