Nginx i ModSecurity 3.0 – konfiguracja reguł OWASP

Konrad Kowalski
  • Konrad Kowalski
  • 19/03/2018
  • Nginx
  • 0 komentarzy
Nginx

W artykule Nginx – integracja z ModSecurity 3.0 przedstawiony został proces konfiguracji Nginx, ModSecurity 3.0 oraz reguł testowych. W środowisku produkcyjnym należy oczywiście używać reguł, które faktycznie chronią przed złośliwym ruchem, takich jak np. bezpłatny zestaw reguł OWASP.

Archiwum z regułami OWASP należy pobrać z repozytorium GitHub, a następnie rozpakować

[email protected]:/# cd /opt/
[email protected]:/opt# wget https://github.com/SpiderLabs/owasp-modsecurity-crs/archive/v3.0.0.tar.gz
[email protected]:/opt# tar -xzvf v3.0.0.tar.gz

Po rozpakowaniu niezbędne jest przygotowanie pliku konfiguracyjnego. Można również skorzystać z gotowego pliku konfiguracyjnego.

[email protected]:/opt# cd owasp-modsecurity-crs-3.0.0/
[email protected]:/opt# cp crs-setup.conf.example crs-setup.conf

W następnym kroku należy zmodyfikować plik konfiguracyjny modułu ModSecurity /etc/nginx/modsec/main.conf oraz dodać wpisy ładujące reguły OWASP.

/etc/nginx/modsec/main.conf
# From https://github.com/SpiderLabs/ModSecurity/blob/master/\
# modsecurity.conf-recommended
#
# Edit to set SecRuleEngine On
Include "/etc/nginx/modsec/modsecurity.conf"
Include "/opt/owasp-modsecurity-crs-3.0.0/crs-setup.conf"
Include "/opt/owasp-modsecurity-crs-3.0.0/rules/*.conf"
  
# Basic test rule
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403"   

Pod wprowadzeniu zmian niezbędne jest dokonanie restartu serwera Nginx.

systemctl restart nginx

W przypadku wystąpienia błędu:

2018/03/13 14:18:56 [emerg] 26130#26130: "modsecurity_rules_file" directive Rules error. File: /opt/owasp-modsecurity-crs-3.0.0/crs-setup.conf. Line: 96. Column: 43. SecCollectionTimeout is not yet supported.  in /etc/nginx/sites-enabled/default:6

Należy zmodyfikować plik /opt/owasp-modsecurity-crs-3.0.0/crs-setup.conf i zakomentować linie:

#SecCollectionTimeout 600

Po dodaniu reguł można przeprowadzić testy

curl -H "User-Agent: Nikto" http://localhost/

Jeśli wszystko przebiegło pomyślnie, reguły OWASP w ModSecurity powinny automatycznie zablokować żądania z User-Agent: Nikto (skaner stron www) wyświetlając komunikat 403 – Forbidden.


403 Forbidden

403 Forbidden


nginx

Dodaj komentarz