12 октября 2026 г. · by Alex M.
Web-атаки становятся всё более изощрёнными: SQL-инъекции, XSS, CSRF, path traversal — угрозы реальны и многочисленны. Web Application Firewall (WAF) — это критически важный уровень защиты для любого сервера с веб-приложениями. ModSecurity — один из наиболее мощных и зрелых open-source WAF, совместимый как с Nginx, так и с Apache.
В этом руководстве мы рассмотрим полную установку и настройку ModSecurity на VPS NVMe CLIQHOST под управлением Ubuntu 22.04, включая подключение набора правил OWASP Core Rule Set (CRS).
ModSecurity — это WAF-модуль, который встраивается в веб-сервер и инспектирует каждый HTTP-запрос до того, как он достигает приложения. Он умеет:
Если вы используете VPS SSD CLIQHOST для размещения интернет-магазина, блога или бизнес-приложения, ModSecurity — это вложение времени, которое многократно себя окупит.
Перед началом убедитесь, что у вас есть:
sudoЕсли сервера ещё нет, вы можете быстро заказать VPS Linux у CLIQHOST с предустановленной Ubuntu.
sudo apt update && sudo apt upgrade -y
sudo apt install libapache2-mod-security2 -y
Активируйте модуль:
sudo a2enmod security2
sudo systemctl restart apache2
Проверьте, что модуль активен:
apache2ctl -M | grep security
# Ожидаемый вывод: security2_module (shared)
Скопируйте рекомендованный файл конфигурации:
sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf
Откройте файл и измените режим работы:
sudo nano /etc/modsecurity/modsecurity.conf
Найдите строку:
SecRuleEngine DetectionOnly
Замените на:
SecRuleEngine On
Совет: Рекомендуется сначала поработать в режиме
DetectionOnly, чтобы отследить ложные срабатывания, и только затем переходить вOn.
sudo apt install git -y
sudo git clone https://github.com/coreruleset/coreruleset.git /etc/modsecurity/crs
sudo cp /etc/modsecurity/crs/crs-setup.conf.example /etc/modsecurity/crs/crs-setup.conf
Отредактируйте конфигурацию Apache:
sudo nano /etc/apache2/mods-enabled/security2.conf
Добавьте директивы Include:
<IfModule security2_module>
SecDataDir /tmp/
Include /etc/modsecurity/modsecurity.conf
Include /etc/modsecurity/crs/crs-setup.conf
Include /etc/modsecurity/crs/rules/*.conf
</IfModule>
Перезапустите Apache:
sudo systemctl restart apache2
Для Nginx ModSecurity работает как динамический модуль (libmodsecurity3 + коннектор ngx_http_modsecurity_module).
sudo apt install -y build-essential libpcre3 libpcre3-dev \
libssl-dev libtool autoconf libxml2-dev libgeoip-dev \
libcurl4-openssl-dev libpcre++-dev libyajl-dev git
cd /opt
sudo git clone --depth 1 -b v3/master https://github.com/SpiderLabs/ModSecurity
cd ModSecurity
sudo git submodule init
sudo git submodule update
sudo ./build.sh
sudo ./configure
sudo make
sudo make install
Компиляция занимает 5–15 минут в зависимости от ресурсов сервера. На VPS NVMe CLIQHOST процесс заметно быстрее благодаря высокой скорости дисковых операций.
Узнайте версию Nginx:
nginx -v
# Пример: nginx version: nginx/1.24.0
Загрузите исходники той же версии:
cd /opt
NGINX_VERSION=$(nginx -v 2>&1 | sed 's/.*nginx\///' | tr -d '\n')
wget http://nginx.org/download/nginx-${NGINX_VERSION}.tar.gz
tar -xvzf nginx-${NGINX_VERSION}.tar.gz
Клонируйте коннектор:
sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git
Скомпилируйте только динамический модуль:
cd nginx-${NGINX_VERSION}
sudo ./configure --with-compat --add-dynamic-module=../ModSecurity-nginx
sudo make modules
sudo cp objs/ngx_http_modsecurity_module.so /etc/nginx/modules/
Добавьте в начало /etc/nginx/nginx.conf:
load_module modules/ngx_http_modsecurity_module.so;
Создайте директорию конфигурации:
sudo mkdir /etc/nginx/modsecurity
sudo cp /opt/ModSecurity/modsecurity.conf-recommended /etc/nginx/modsecurity/modsecurity.conf
sudo cp /opt/ModSecurity/unicode.mapping /etc/nginx/modsecurity/
Включите движок правил:
sudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsecurity/modsecurity.conf
sudo git clone https://github.com/coreruleset/coreruleset.git /etc/nginx/modsecurity/crs
sudo cp /etc/nginx/modsecurity/crs/crs-setup.conf.example /etc/nginx/modsecurity/crs/crs-setup.conf
Создайте главный файл включений:
sudo nano /etc/nginx/modsecurity/main.conf
Содержимое:
Include /etc/nginx/modsecurity/modsecurity.conf
Include /etc/nginx/modsecurity/crs/crs-setup.conf
Include /etc/nginx/modsecurity/crs/rules/*.conf
sudo nano /etc/nginx/sites-available/example.com
Добавьте в блок server:
server {
listen 80;
server_name example.com www.example.com;
modsecurity on;
modsecurity_rules_file /etc/nginx/modsecurity/main.conf;
location / {
proxy_pass http://127.0.0.1:8080;
}
}
Проверьте конфигурацию и перезагрузите Nginx:
sudo nginx -t
sudo systemctl reload nginx
Самый простой тест — симуляция SQL-инъекции:
curl -I "http://example.com/?id=1%20UNION%20SELECT%201,2,3--"
Если ModSecurity работает корректно, ответ будет 403 Forbidden.
Проверьте логи:
# Apache
sudo tail -f /var/log/apache2/error.log | grep ModSecurity
# Nginx
sudo tail -f /var/log/nginx/error.log | grep ModSecurity
Пример записи о заблокированной атаке:
ModSecurity: Access denied with code 403 (phase 2).
Matched "Operator `DetectSQLi' with parameter `' at REQUEST_URI.
[id "942100"] [msg "SQL Injection Attack Detected via libinjection"]
OWASP CRS иногда может блокировать легитимные запросы. Правильная стратегия:
<LocationMatch "/wp-admin">
SecRuleRemoveById 942100
</LocationMatch>
Создайте файл исключений:
sudo nano /etc/nginx/modsecurity/exceptions.conf
Содержимое:
SecRuleRemoveById 942100
Подключите его в main.conf перед правилами CRS.
В файле crs-setup.conf настройте paranoia_level:
SecAction \
"id:900000,\
phase:1,\
nolog,\
pass,\
t:none,\
setvar:tx.paranoia_level=1"
Уровень 1 — наиболее мягкий, уровень 4 — самый строгий. Для начала рекомендуется уровень 1–2.
Настройте cron-задание для еженедельного обновления:
sudo crontab -e
Добавьте:
0 3 * * 1 cd /etc/nginx/modsecurity/crs && git pull && systemctl reload nginx
Настройте детальное логирование в modsecurity.conf:
SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsecurity/audit.log
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial
Создайте директорию для логов:
sudo mkdir /var/log/modsecurity
sudo chown www-data:www-data /var/log/modsecurity
Для более глубокого анализа логов ModSecurity можно интегрировать с Fail2Ban. Больше материалов по безопасности серверов вы найдёте в блоге CLIQHOST.
Если вы предпочитаете делегировать настройку и обслуживание специалистам, услуги администрирования серверов CLIQHOST включают установку, настройку и сопровождение WAF. Наша команда настроит ModSecurity с учётом специфики вашего проекта.
Для крупных проектов с высокими требованиями к производительности и безопасности рассмотрите управляемый выделенный сервер CLIQHOST — выделенные ресурсы и техническая поддержка в комплекте.
Также не забудьте защитить соединение с помощью SSL-сертификатов от CLIQHOST — это обязательный элемент безопасной инфраструктуры.
| Шаг | Apache | Nginx |
|---|---|---|
| 1 | apt install libapache2-mod-security2 |
Компиляция libmodsecurity3 |
| 2 | a2enmod security2 |
Компиляция динамического модуля |
| 3 | Копирование modsecurity.conf |
Копирование modsecurity.conf |
| 4 | Клонирование OWASP CRS | Клонирование OWASP CRS |
| 5 | SecRuleEngine On |
SecRuleEngine On |
| 6 | Перезапуск Apache | modsecurity on в vhost + reload |
ModSecurity с OWASP Core Rule Set — это мощное и бесплатное WAF-решение для любого Linux-сервера. Независимо от того, используете ли вы Apache или Nginx, настройка занимает не более часа и добавляет существенный уровень защиты от наиболее распространённых веб-угроз.
Комбинация ModSecurity, SSL-сертификата и производительного VPS NVMe CLIQHOST создаёт надёжную основу для любого серьёзного веб-проекта.
Есть вопросы по настройке сервера? Свяжитесь с командой CLIQHOST — мы готовы помочь.
Real reviews from customers who trust CLIQHOST for performance, reliability and expert technical support.
"We moved our online shop from a foreign host and the difference is night and day — pages load instantly and support replies in minutes, in Romanian."
"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."
"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."