ModSecurity — это WAF (web application firewall), т.е. файервол для веб-приложений. Его смысл заключается в том, что он проверяет все приходящие на веб-сервер запросы и отфильтровывает те из них, которые соответствуют правилам безопасности. WAF может предотвратить атаки самого разного рода — инъекции (инжекты) в базы данных, межсайтовый скриптинг.
Разберем установку и настройку WAF с использованием ModSecurity. Для тестирования используйте VPS для кратковременного использования.
⏺Установка ModSecurity
Для примера рассмотрим настройку WAF с использованием ModSecurity — одного из самых популярных и мощных инструментов для защиты веб-приложений.
Установите ModSecurity на ваш сервер:
sudo apt-get install libapache2-mod-security2
⏺Активация конфигурационного файла
Скопируйте рекомендуемый конфигурационный файл:
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
# Включить (On) или выключить (Off) механизм фильтрации SecRuleEngine On # Механизм аудита работает независимо и может быть включен (On) или # выключен (Off) на уровне сервера или директории SecAuditEngine RelevantOnly # Имя файла журнала для записи событий аудита SecAuditLog /var/log/apache2/modsec_audit.log # Имя файла журнала SecDebugLog /var/log/apache2/modsec_debug.log # Maximum request body size we will # accept for buffering SecRequestBodyLimit 131072
⏺Включение правил защиты
Активируйте модуль security2 и перезапустите Apache:
sudo a2enmod security2 sudo systemctl restart apache2
⏺Проверка работы WAF
Чтобы убедиться, что WAF работает, попробуйте отправить подозрительный запрос:
curl -H "User-Agent: <script>alert(1)</script>" http://<your_server>
Если WAF настроен правильно, он заблокирует этот запрос, обнаружив потенциальную XSS-атаку.
⏺Настройка дополнительных правил
Для повышения уровня защиты вы можете добавить дополнительные правила в конфигурационный файл:
sudo vim /etc/modsecurity/modsecurity.conf
# Пример добавления правила SecRule REQUEST_HEADERS:User-Agent "curl" "id:1000,deny,log,msg:'Curl tool detected'"
⏺Логирование и мониторинг
ModSecurity ведет журналы всех заблокированных запросов, что позволяет проводить анализ инцидентов и улучшать защиту. Логи можно найти по пути:
/var/log/apache2/modsec_audit.log