Для быстрого внедрения WAF клиентам Cloud4Y в Public Catalogs доступен шаблон WAF-modsecurity.
Шаблон на Ubuntu 16.04 LTS включает:
- Nginx/1.13.12
- ModSecurity for Nginx/3.0.0
- OWASP ModSecurity Core Rule Set Version 3.0.0
- Модуль Nginx Length Hiding Filter Module
- Модуль Nginx Headers More Module
- OpenSSL 1.0.2g
- Fail2Ban
- Форму обратной связи для оповещения о ложных срабатываниях WAF
Для первоначальной настройки необходимо:
1. Скопировать имеющиеся у Вас SSL сертификаты в папку /opt/ssl, переименовав их в ssl_certificate.crt и ssl_certificate.key (шаблон WAF подразумевает, что защищаемый сайт использует HTTPS);
2. Внести в файл /opt/config/userparams следующие данные:
3. Выполнить скрипт /opt/config/set_userparams.sh, который перенесёт указанные параметры в конфигурацию Nginx и форму обратной связи.
После этого WAF готов к работе.
Для проверки WAF можно открыть сайт, добавив в адресную строку ?testparam=test
Например, https://Ваш IP/?testparam=test
Если все настроено правильно, откроется форма обратной связи с предложением отправить сообщение администратору о ложном срабатывании WAF.
При нажатии на кнопку "Unblock \\ Разблокировать" на указанный ранее E-mail будет отправлено письмо с техническими данными, данными из логов и текстом сообщения администратору.
Код и картинки формы обратной связи находятся в папке /opt/403/. Форма написана на языке PHP.
Вы можете изменять внешний вид формы и её поведение при необходимости, например, для адаптации её вида к общему дизайну сайта и т.п.
Также в папке /opt/config находятся файлы конфигурации:
- custom_rules.conf - сюда можно вносить собственные правила для Mod_Security
- disabled_rules.conf - сюда можно вносить ID отключенных правил.
Для применения изменений в этих файлах необходимо выполнить systemctl reload nginx
Все основные конфигурационные файлы Nginx и Mod_security находятся в папке /etc/nginx
Они могут пригодиться Вам для более тонкой настройки WAF.
FAQ по Mod_Security https://github.com/SpiderLabs/ModSecurity/wiki/ModSecurity-Frequently-Asked-Questions-(FAQ)