12 octombrie 2026 · by Alex M.
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.
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:
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ță.
Înainte de a începe, asigură-te că ai:
sudoDacă nu ai încă un server, poți comanda rapid un VPS Linux la CLIQHOST cu Ubuntu preinstalat.
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)
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
DetectionOnlypentru a monitoriza ce reguli s-ar declanșa, apoi să treci laOndupă ce ai verificat că nu există false pozitive.
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
Pentru Nginx, ModSecurity funcționează ca modul dinamic (libmodsecurity3 + conectorul 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
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.
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/
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
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
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
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"]
OWASP CRS poate bloca uneori cereri legitime. Strategia corectă:
<LocationMatch "/wp-admin">
SecRuleRemoveById 942100
</LocationMatch>
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.
Î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.
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
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.
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.
| 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 |
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.
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."