Kako postaviti ModSecurity s Apacheom na Debian/Ubuntu


Apache web server je vrlo prilagodljiv i može se konfigurirati na više načina kako bi odgovarao vašim potrebama. Postoji mnogo modula trećih strana koje možete koristiti da konfigurišete Apache prema vašim željama.

ModSecurity je WAF otvorenog koda (Zaštitni zid za web aplikacije) koji je izvorni za Apache web server. U početku je to bio samo Apache modul, ali je tokom godine narastao i postao punopravni zaštitni zid za web aplikacije. Sada ga podržavaju Nginx, pa čak i IIS.

ModSecurity provjerava dolazne zahtjeve web serveru prema unaprijed definiranom skupu pravila. Obično pruža skup pravila poznatih kao CRS (Set osnovnih pravila) koji štite web stranicu od niza napada na web aplikacije kao što su SQL injekcija, XSS i sesija otmice između ostalih podviga.

Vatrozid aplikacije ModSecurity čini sastavni dio PCI DSS usklađenosti u zaštiti lokacija od vanjskih napada. Kada je modul omogućen, on pokreće „403 Forbidden Error“ što jednostavno implicira da nemate dovoljno dozvola za pristup resursu na web serveru.

U ovom vodiču ćemo vam pokazati kako postaviti i konfigurirati ModSecurity za rad s Apacheom na Debian i Ubuntu > Linux.

Korak 1: Instalirajte ModSecurity na Ubuntu

Prvi korak je instaliranje ModSecurity. Počećemo tako što ćemo prvo osvežiti listu paketa na sledeći način:

sudo apt update

Zatim instalirajte paket ModSecurity zajedno s drugim ovisnostima i bibliotekama.

sudo apt install libapache2-mod-security2

Nakon toga, omogućite modul.

sudo a2enmod security2

Zatim ponovo pokrenite Apache web server da biste primijenili promjene.

sudo systemctl restart apache2

U ovom trenutku, ModSecurity je uspješno instaliran. Hajde da ga sada konfigurišemo.

Korak 2: Konfigurišite ModSecurity u Ubuntu

Prema zadanim postavkama, ModSecurity je konfiguriran samo za otkrivanje i evidentiranje sumnjivih aktivnosti. Moramo napraviti dodatni korak i konfigurirati ga da ne samo otkrije već i blokira sumnjivu aktivnost.

Kopirajte zadanu ModSecurity konfiguracijsku datoteku – modsecurity.conf-recommended – u novu datoteku kao što je navedeno u naredbi ispod.

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

Koristeći željeni uređivač teksta, otvorite datoteku

sudo nano /etc/modsecurity/modsecurity.conf

Pronađite liniju:

SecRuleEngine DetectionOnly

Postavite na:

SecRuleEngine On

Sačuvajte promjene i izađite iz datoteke.

Da biste primijenili promjene u Apacheu, ponovo pokrenite web server.

sudo systemctl restart apache2

Korak 3: Preuzmite OWASP ModSecurity Core Ruleset

Sljedeći korak je preuzimanje najnovijeg OWASP ModSecurity Core Rule Set (CRS) sa GitHub stranice.

Klonirajte OWASP git spremište kao što je prikazano.

git clone https://github.com/coreruleset/coreruleset.git

Idite u direktorij.

cd coreruleset/

Obavezno premjestite datoteku crs-setup.conf.example u modsecurity direktorij i preimenujte je u crs-setup.conf.

sudo mv crs-setup.conf.example /etc/modsecurity/crs-setup.conf

Osim toga, premjestite direktorij pravila u direktorij modsecurity.

sudo mv rules/ /etc/modsecurity/

Zatim uredite datoteku security2.conf.

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

Uvjerite se da sadrži sljedeće redove.

IncludeOptional /etc/modsecurity/*.conf
Include /etc/modsecurity/rules/*.conf

Zatim ponovo pokrenite Apache da promjene ostanu.

sudo systemctl restart apache2

Hajde da sada testiramo našu ModSecurity konfiguraciju.

Korak 4: Testiranje ModSecurity konfiguracije na Ubuntu

Na kraju, moramo testirati da ModSecurity može otkriti i blokirati sumnjivi HTTP promet. Da bismo to postigli, moramo urediti zadanu datoteku virtualnog hosta.

sudo nano /etc/apache2/sites-available/000-default.conf

Zatim ćemo kreirati pravilo blokiranja koje će blokirati pristup određenom URL-u kada mu pristupi web pretraživač.

Dodajte ove redove na kraj prije završne oznake ‘Virtualhost’.

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:254,deny,status:403,msg:'Test Successful'"

Slobodno postavite oznake 'id' i 'msg' na željene vrijednosti.

Zatim ponovo pokrenite Apache web server da biste primijenili promjene napravljene na konfiguracijski fajl virtuelnog hosta.

sudo systemctl restart apache2

Na vašem web pretraživaču pokušajte posjetiti URL prikazan sa ?testparam=test na kraju.

http://server-ip/?testparam=test

Dobijate ‘403 Forbidden error’ što ukazuje da vam je blokiran pristup resursu.

Dodatno možete potvrditi da je klijent blokiran provjerom evidencije grešaka na sljedeći način.

cat /var/log/apache2/error.log | grep “Test Successful”

Ovo je potvrda da smo uspješno postavili ModSecurity za otkrivanje i blokiranje neželjenog saobraćaja. U ovom vodiču smo vas proveli kroz proces postavljanja ModSecurity s Apacheom na Debian/Ubuntu sustavima.