// Blog

Как установить и настроить ModSecurity с Nginx и Apache на VPS Linux: полное руководство — CLIQHOST

12 октября 2026 г. · by Alex M.

Как установить и настроить ModSecurity с Nginx и Apache на VPS Linux: полное руководство — CLIQHOST

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 и зачем он нужен?

ModSecurity — это WAF-модуль, который встраивается в веб-сервер и инспектирует каждый HTTP-запрос до того, как он достигает приложения. Он умеет:

  • Блокировать вредоносные запросы в режиме реального времени
  • Логировать попытки атак для последующего анализа
  • Обнаруживать аномалии в HTTP-трафике
  • Фильтровать опасные payload-ы (SQL-инъекции, XSS и т.д.)

Если вы используете VPS SSD CLIQHOST для размещения интернет-магазина, блога или бизнес-приложения, ModSecurity — это вложение времени, которое многократно себя окупит.


Предварительные требования

Перед началом убедитесь, что у вас есть:

  • VPS с Ubuntu 22.04 (или Debian 11/12)
  • Доступ root или пользователь с правами sudo
  • Установленный и работающий Nginx или Apache
  • Активное SSH-соединение

Если сервера ещё нет, вы можете быстро заказать VPS Linux у CLIQHOST с предустановленной Ubuntu.


Часть 1: Установка ModSecurity для Apache

Шаг 1 — Обновите систему и установите ModSecurity

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)

Шаг 2 — Настройте ModSecurity в режиме обнаружения

Скопируйте рекомендованный файл конфигурации:

sudo cp /etc/modsecurity/modsecurity.conf-recommended /etc/modsecurity/modsecurity.conf

Откройте файл и измените режим работы:

sudo nano /etc/modsecurity/modsecurity.conf

Найдите строку:

SecRuleEngine DetectionOnly

Замените на:

SecRuleEngine On

Совет: Рекомендуется сначала поработать в режиме DetectionOnly, чтобы отследить ложные срабатывания, и только затем переходить в On.

Шаг 3 — Установите OWASP Core Rule Set (CRS)

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

Часть 2: Установка ModSecurity для Nginx

Для Nginx ModSecurity работает как динамический модуль (libmodsecurity3 + коннектор ngx_http_modsecurity_module).

Шаг 1 — Установите зависимости

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

Шаг 2 — Скомпилируйте libmodsecurity3

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 процесс заметно быстрее благодаря высокой скорости дисковых операций.

Шаг 3 — Загрузите коннектор Nginx для ModSecurity

Узнайте версию 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/

Шаг 4 — Активируйте модуль в Nginx

Добавьте в начало /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

Шаг 5 — Установите OWASP CRS для Nginx

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

Шаг 6 — Активируйте ModSecurity в виртуальном хосте Nginx

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

Тестирование ModSecurity

Самый простой тест — симуляция 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 иногда может блокировать легитимные запросы. Правильная стратегия:

Отключение конкретного правила (Apache)

<LocationMatch "/wp-admin">
    SecRuleRemoveById 942100
</LocationMatch>

Отключение конкретного правила (Nginx)

Создайте файл исключений:

sudo nano /etc/nginx/modsecurity/exceptions.conf

Содержимое:

SecRuleRemoveById 942100

Подключите его в main.conf перед правилами CRS.

Настройка уровня паранойи CRS

В файле crs-setup.conf настройте paranoia_level:

SecAction \
  "id:900000,\
   phase:1,\
   nolog,\
   pass,\
   t:none,\
   setvar:tx.paranoia_level=1"

Уровень 1 — наиболее мягкий, уровень 4 — самый строгий. Для начала рекомендуется уровень 1–2.


Автоматическое обновление правил OWASP CRS

Настройте 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.


ModSecurity и управляемый хостинг

Если вы предпочитаете делегировать настройку и обслуживание специалистам, услуги администрирования серверов 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 — мы готовы помочь.

SHARE
// what clients say

What Our Clients Say

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."

AM
Andrei M.
eCommerce owner · Chișinău
★★★★★

"Migrated 12 client sites to CLIQHOST. Free migration, zero downtime, and the cPanel setup is exactly what my team needed. Highly recommend."

EV
Elena V.
Web agency · Bălți
★★★★★

"Our NVMe VPS handles traffic spikes without a sweat. Full root, local datacenter, and billing in MDL — everything we wanted from a provider."

DC
Dmitri C.
SaaS founder · Chișinău