Hvordan sette opp ModSecurity med Apache på Debian/Ubuntu


Apache-nettserveren er svært tilpassbar og kan konfigureres på flere måter for å passe dine behov. Det er mange tredjepartsmoduler som du kan bruke til å konfigurere Apache til dine preferanser.

ModSecurity er en åpen kildekode WAF (Web Application Firewall) som er hjemmehørende i Apache-nettserveren. Det var opprinnelig bare en Apache-modul, men har vokst i løpet av året til å bli en fullverdig nettapp-brannmur. Det støttes nå av Nginx og til og med IIS.

ModSecurity inspiserer innkommende forespørsler til webserveren mot et forhåndsdefinert sett med regler. Vanligvis gir det et sett med regler kjent som CRS (Core Rule Set) som beskytter et nettsted fra en rekke nettapplikasjonsangrep som SQL-injeksjon, XSS og øktkapring blant andre utnyttelser.

[Du vil kanskje også like: 5 verktøy for å skanne en Linux-server for skadelig programvare og rootkits ]

ModSecurity-applikasjonens brannmur utgjør en integrert del av PCI DSS-samsvar for å skjerme nettsteder fra eksterne angrep. Når modulen er aktivert utløser den en 403 Forbidden Error som ganske enkelt antyder at du ikke har tilstrekkelige tillatelser til å få tilgang til ressursen på webserveren.

I denne guiden vil vi vise deg hvordan du setter opp og konfigurerer ModSecurity til å fungere med Apache på Debian og Ubuntu Linux.

Trinn 1: Installer ModSecurity på Ubuntu

Det første trinnet er å installere ModSecurity. Vi begynner med først å oppdatere pakkelistene som følger:

$ sudo apt update

Installer deretter ModSecurity-pakken sammen med andre avhengigheter og biblioteker.

$ sudo apt install libapache2-mod-security2

Aktiver modulen etterpå.

$ sudo a2enmod security2

Start deretter Apache-nettserveren på nytt for å bruke endringene.

$ sudo systemctl restart apache2

På dette tidspunktet er ModSecurity installert. La oss nå konfigurere det.

Trinn 2: Konfigurer ModSecurity i Ubuntu

Som standard er ModSecurity kun konfigurert til å oppdage og logge mistenkelig aktivitet. Vi må gå et ekstra skritt og konfigurere det til ikke bare å oppdage, men også blokkere mistenkelig aktivitet.

Kopier standard ModSecurity-konfigurasjonsfilen – modsecurity.conf-recommended – til en ny fil som gitt i kommandoen nedenfor.

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

Åpne filen med ønsket tekstredigeringsprogram

$ sudo nano /etc/modsecurity/modsecurity.conf

Finn linjen:

SecRuleEngine DetectionOnly

Sett den til:

SecRuleEngine On

Lagre endringene og avslutt filen.

For å bruke endringene i Apache, start webserveren på nytt.

$ sudo systemctl restart apache2

Trinn 3: Last ned OWASP ModSecurity Core Ruleset

Det neste trinnet er å laste ned det siste OWASP ModSecurity Core Rule Set (CRS) fra GitHub-siden.

Klon OWASP git-depotet som vist.

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

Naviger inn i katalogen.

$ cd coreruleset/

Sørg for å flytte filen crs-setup.conf.example til modsecurity-katalogen og gi den nytt navn til crs-setup.conf.

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

Flytt i tillegg regelkatalogen til modsecurity-katalogen også.

$ sudo mv rules/ /etc/modsecurity/

Deretter redigerer du filen security2.conf.

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

Sørg for at den inneholder følgende linjer.

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

Start deretter Apache på nytt for at endringene skal vedvare.

$ sudo systemctl restart apache2

La oss nå teste ModSecurity-konfigurasjonen vår.

Trinn 4: Testing av ModSecurity-konfigurasjonen på Ubuntu

Til slutt må vi teste at ModSecurity kan oppdage og blokkere mistenkelig HTTP-trafikk. For å oppnå dette må vi redigere standard virtuell vertsfil.

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

Deretter vil vi lage en blokkeringsregel som vil blokkere tilgang til en bestemt URL når den åpnes av en nettleser.

Legg til disse linjene på slutten før «Virtualhost»-avslutningskoden.

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

Sett gjerne id og msg-taggene til de ønskede verdiene.

Start deretter Apache-nettserveren på nytt for å bruke endringene som er gjort på konfigurasjonsfilen for den virtuelle verten.

$ sudo systemctl restart apache2

På nettleseren din, prøv å besøke URL-en som vises med ?testparam=test på slutten.

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

Du får en 403 Forbidden error som indikerer at du har blitt blokkert fra å få tilgang til ressursen.

Du kan ytterligere bekrefte at klienten ble blokkert ved å sjekke feilloggene som følger.

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

[Du vil kanskje også like: Hvordan installere ModSecurity for Nginx på Debian/Ubuntu]

Dette er en bekreftelse på at vi har satt opp ModSecurity for å oppdage og blokkere uønsket trafikk. I denne veiledningen har vi ledet deg gjennom prosessen med å sette opp ModSecurity med Apache på Debian/Ubuntu-systemer.