// Blog

Cum instalezi și configurezi ModSecurity cu Nginx și Apache pe un VPS Linux: ghid complet — CLIQHOST

12 octombrie 2026 · by Alex M.

Cum instalezi și configurezi ModSecurity cu Nginx și Apache pe un VPS Linux: ghid complet — CLIQHOST

Atacurile web au devenit din ce în ce mai sofisticate: SQL injection, XSS, CSRF, path traversal — lista este lungă. Un Web Application Firewall (WAF) reprezintă un strat esențial de apărare pentru orice server care găzduiește aplicații web. ModSecurity este unul dintre cele mai cunoscute și eficiente WAF open-source disponibile, compatibil atât cu Nginx, cât și cu Apache.

În acest ghid complet vei vedea cum instalezi și configurezi ModSecurity pe un VPS NVMe CLIQHOST rulând Ubuntu 22.04, împreună cu regulile OWASP Core Rule Set (CRS) — standardul de facto în protecția aplicațiilor web.


Ce este ModSecurity și de ce ai nevoie de el?

ModSecurity este un modul WAF (Web Application Firewall) care se integrează direct în serverul web și inspectează fiecare cerere HTTP înainte ca aceasta să ajungă la aplicație. Poate:

  • Bloca cererile malițioase în timp real
  • Loga tentativele de atac pentru analiză ulterioară
  • Detecta anomalii de comportament HTTP
  • Filtra payload-uri periculoase (SQL injection, XSS etc.)

Dacă folosești un VPS SSD CLIQHOST pentru a găzdui un magazin online, un blog sau o aplicație business, ModSecurity este o investiție de timp care merită cu prisosință.


Cerințe preliminare

Înainte de a începe, asigură-te că ai:

  • Un VPS cu Ubuntu 22.04 (sau Debian 11/12)
  • Acces root sau utilizator cu privilegii sudo
  • Nginx sau Apache instalat și funcțional
  • Conexiune SSH activă

Dacă nu ai încă un server, poți comanda rapid un VPS Linux la CLIQHOST cu Ubuntu preinstalat.


Partea 1: Instalarea ModSecurity cu Apache

Pasul 1 — Actualizează sistemul și instalează ModSecurity

sudo apt update && sudo apt upgrade -y
sudo apt install libapache2-mod-security2 -y

Activează modulul:

sudo a2enmod security2
sudo systemctl restart apache2

Verifică dacă modulul este activ:

apache2ctl -M | grep security
# Output așteptat: security2_module (shared)

Pasul 2 — Configurează ModSecurity în modul Detection

Fișierul de configurare implicit se află la /etc/modsecurity/modsecurity.conf-recommended. Copiază-l:

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

Deschide fișierul și modifică modul de operare:

sudo nano /etc/modsecurity/modsecurity.conf

Găsește linia:

SecRuleEngine DetectionOnly

Înlocuiește cu:

SecRuleEngine On

Notă: Este recomandat să pornești întâi în modul DetectionOnly pentru a monitoriza ce reguli s-ar declanșa, apoi să treci la On după ce ai verificat că nu există false pozitive.

Pasul 3 — Instalează OWASP Core Rule Set (CRS)

sudo apt install git -y
cd /etc/modsecurity/
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

Include regulile în configurația Apache:

sudo nano /etc/apache2/mods-enabled/security2.conf

Adaugă sau modifică directivele 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>

Repornește Apache:

sudo systemctl restart apache2

Partea 2: Instalarea ModSecurity cu Nginx

Pentru Nginx, ModSecurity funcționează ca modul dinamic (libmodsecurity3 + conectorul ngx_http_modsecurity_module).

Pasul 1 — Instalează dependențele necesare

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

Pasul 2 — Compilează 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

Compilarea poate dura 5–15 minute în funcție de resursele VPS-ului. Pe un VPS NVMe CLIQHOST procesul este semnificativ mai rapid datorită disk I/O rapid.

Pasul 3 — Descarcă conectorul Nginx pentru ModSecurity

Verifică versiunea Nginx:

nginx -v
# Exemplu: nginx version: nginx/1.24.0

Descarcă sursa Nginx (aceeași versiune):

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

Clonează conectorul:

sudo git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx.git

Compilează doar modulul dinamic:

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/

Pasul 4 — Activează modulul în Nginx

Adaugă la începutul fișierului /etc/nginx/nginx.conf:

load_module modules/ngx_http_modsecurity_module.so;

Creează directorul de configurare ModSecurity pentru Nginx:

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/

Modifică SecRuleEngine:

sudo sed -i 's/SecRuleEngine DetectionOnly/SecRuleEngine On/' /etc/nginx/modsecurity/modsecurity.conf

Pasul 5 — Instalează OWASP CRS pentru 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

Creează un fișier principal de incluziune:

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

Conținut:

Include /etc/nginx/modsecurity/modsecurity.conf
Include /etc/nginx/modsecurity/crs/crs-setup.conf
Include /etc/nginx/modsecurity/crs/rules/*.conf

Pasul 6 — Activează ModSecurity în Virtual Host Nginx

Editează fișierul de configurare al site-ului:

sudo nano /etc/nginx/sites-available/example.com

Adaugă în blocul 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;
    }
}

Verifică configurația și reîncarcă Nginx:

sudo nginx -t
sudo systemctl reload nginx

Testarea ModSecurity

Cel mai simplu test pentru a verifica că ModSecurity funcționează corect este simularea unui atac SQL injection:

curl -I "http://example.com/?id=1%20UNION%20SELECT%201,2,3--"

Dacă ModSecurity funcționează, răspunsul va fi 403 Forbidden.

Puteți verifica și logurile:

# Apache
sudo tail -f /var/log/apache2/error.log | grep ModSecurity

# Nginx
sudo tail -f /var/log/nginx/error.log | grep ModSecurity

Un log de atac blocat arată astfel:

[Tue Jan 14 12:34:56.789012 2025] [:error] [pid 12345] [client 1.2.3.4:56789]
ModSecurity: Access denied with code 403 (phase 2).
Matched "Operator `DetectSQLi' with parameter `' at REQUEST_URI.
[id "942100"] [rev ""] [msg "SQL Injection Attack Detected via libinjection"]

Gestionarea False Pozitive

OWASP CRS poate bloca uneori cereri legitime. Strategia corectă:

Dezactivarea unei reguli specifice (Apache)

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

Dezactivarea unei reguli specifice (Nginx)

Creează un fișier de excepții:

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

Conținut:

SecRuleRemoveById 942100

Include-l în main.conf înainte de regulile CRS.

Ajustarea nivelului de paranoia CRS

În crs-setup.conf poți ajusta paranoia_level:

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

Nivelul 1 este cel mai permisiv, nivelul 4 este cel mai strict. Recomandăm nivelul 1–2 pentru început.


Actualizarea regulilor OWASP CRS

Regulile OWASP CRS sunt actualizate frecvent. Configurează un cron job pentru actualizare automată:

sudo crontab -e

Adaugă:

0 3 * * 1 cd /etc/nginx/modsecurity/crs && git pull && systemctl reload nginx

Monitorizare și loguri avansate

ModSecurity poate trimite loguri detaliate. Configurează în modsecurity.conf:

SecAuditEngine RelevantOnly
SecAuditLog /var/log/modsecurity/audit.log
SecAuditLogParts ABIJDEFHZ
SecAuditLogType Serial

Creează directorul de loguri:

sudo mkdir /var/log/modsecurity
sudo chown www-data:www-data /var/log/modsecurity

Pentru analiză vizuală a logurilor ModSecurity, poți integra cu Fail2Ban — instrument despre care am scris detaliat pe blogul CLIQHOST.


ModSecurity în context hosting gestionat

Dacă preferi să nu te ocupi tu de configurare și actualizare, serviciile de administrare servere CLIQHOST includ configurarea și mentenanța WAF. Echipa noastră poate instala, testa și optimiza ModSecurity pentru specificul aplicației tale.

De asemenea, pentru proiecte mai mari care necesită performanță și izolare completă, un server dedicat gestionat CLIQHOST oferă resurse dedicate cu suport tehnic inclus.


Rezumat — pașii esențiali

Pas Apache Nginx
1 apt install libapache2-mod-security2 Compilare libmodsecurity3
2 a2enmod security2 Compilare modul dinamic Nginx
3 Copiere modsecurity.conf Copiere modsecurity.conf
4 Clone OWASP CRS Clone OWASP CRS
5 SecRuleEngine On SecRuleEngine On
6 Restart Apache modsecurity on în vhost + reload Nginx

Concluzie

ModSecurity cu OWASP Core Rule Set reprezintă o soluție WAF robustă și gratuită pentru orice server web Linux. Fie că rulezi Apache sau Nginx, configurarea nu durează mai mult de o oră și adaugă un strat semnificativ de protecție împotriva celor mai comune atacuri web.

Combinarea ModSecurity cu certificate SSL de la CLIQHOST și un VPS NVMe performant îți oferă o fundație solidă pentru orice proiect web serios.

Ai nevoie de ajutor cu configurarea serverului tău? Contactează echipa CLIQHOST — suntem gata să te ajutăm.

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