Com configurar ModSecurity amb Apache a Debian/Ubuntu


El servidor web Apache és altament personalitzable i es pot configurar de diverses maneres per adaptar-se a les vostres necessitats. Hi ha molts mòduls de tercers que podeu utilitzar per configurar Apache segons les vostres preferències.

ModSecurity és un WAF (Tallafocs d'aplicacions web) de codi obert que és natiu del servidor web Apache. Inicialment només era un mòdul Apache, però ha crescut al llarg de l'any fins a convertir-se en un tallafoc d'aplicacions web complet. Ara és compatible amb Nginx i fins i tot IIS.

ModSecurity inspecciona les sol·licituds entrants al servidor web amb un conjunt de regles predefinits. Normalment, proporciona un conjunt de regles conegudes com a CRS (Core Rule Set) que protegeixen un lloc web d'una sèrie d'atacs d'aplicacions web com la injecció SQL, XSS i el segrest de sessions, entre altres exploits.

[També us pot agradar: 5 eines per escanejar un servidor Linux per trobar programari maliciós i rootkits]

El tallafoc de l'aplicació ModSecurity forma part integral del compliment de PCI DSS per protegir els llocs d'atacs externs. Quan el mòdul està habilitat, activa un Error prohibit 403 que simplement implica que no teniu permisos suficients per accedir al recurs al servidor web.

En aquesta guia, us mostrarem com configurar i configurar ModSecurity per treballar amb Apache a Debian i Ubuntu Linux.

Pas 1: instal·leu ModSecurity a Ubuntu

El primer pas és instal·lar ModSecurity. Començarem, primer, actualitzant les llistes de paquets de la següent manera:

$ sudo apt update

A continuació, instal·leu el paquet ModSecurity juntament amb altres dependències i biblioteques.

$ sudo apt install libapache2-mod-security2

Després, activeu el mòdul.

$ sudo a2enmod security2

A continuació, reinicieu el servidor web Apache per aplicar els canvis.

$ sudo systemctl restart apache2

En aquest punt, ModSecurity s'ha instal·lat correctament. Ara el configurem.

Pas 2: configureu ModSecurity a Ubuntu

Per defecte, ModSecurity només està configurat per detectar i registrar activitats sospitoses. Hem de fer un pas addicional i configurar-lo per no només detectar sinó també bloquejar l'activitat sospitosa.

Copieu el fitxer de configuració per defecte de ModSecurity (modsecurity.conf-recommended) a un fitxer nou tal com s'indica a l'ordre següent.

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

Amb el vostre editor de text preferit, obriu el fitxer

$ sudo nano /etc/modsecurity/modsecurity.conf

Localitza la línia:

SecRuleEngine DetectionOnly

Estableix-ho a:

SecRuleEngine On

Deseu els canvis i sortiu del fitxer.

Per aplicar els canvis a Apache, reinicieu el servidor web.

$ sudo systemctl restart apache2

Pas 3: descarregueu el conjunt de regles bàsics de ModSecurity OWASP

El següent pas és descarregar l'últim conjunt de regles bàsiques de ModSecurity (CRS) OWASP des de la pàgina de GitHub.

Cloneu el repositori git OWASP tal com es mostra.

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

Navegueu al directori.

$ cd coreruleset/

Assegureu-vos de moure el fitxer crs-setup.conf.example al directori modsecurity i canviar-lo com a crs-setup.conf.

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

A més, també moveu el directori de regles al directori modsecurity.

$ sudo mv rules/ /etc/modsecurity/

A continuació, editeu el fitxer security2.conf.

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

Assegureu-vos que conté les línies següents.

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

A continuació, reinicieu Apache perquè els canvis persisteixin.

$ sudo systemctl restart apache2

Ara provem la nostra configuració de ModSecurity.

Pas 4: prova de la configuració de ModSecurity a Ubuntu

Finalment, hem de provar que ModSecurity pot detectar i bloquejar el trànsit HTTP sospitós. Per aconseguir-ho, hem d'editar el fitxer d'amfitrió virtual predeterminat.

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

A continuació, crearem una regla de bloqueig que bloquejarà l'accés a una URL determinada quan hi accedeixi un navegador web.

Afegiu aquestes línies al final abans de l'etiqueta de tancament Virtualhost.

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

No dubteu a establir les etiquetes id i msg amb els valors desitjables.

A continuació, reinicieu el servidor web Apache per aplicar els canvis fets al fitxer de configuració de l'amfitrió virtual.

$ sudo systemctl restart apache2

Al vostre navegador web, proveu de visitar l'URL que es mostra amb ?testparam=test al final.

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

Obteniu un error prohibit 403 que indica que se us ha bloquejat l'accés al recurs.

Podeu confirmar més que el client s'ha bloquejat comprovant els registres d'errors de la següent manera.

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

[També us pot agradar: Com instal·lar ModSecurity per a Nginx a Debian/Ubuntu]

Aquesta és la confirmació que hem configurat correctament ModSecurity per detectar i bloquejar el trànsit no desitjat. En aquesta guia, us hem explicat el procés de configuració de ModSecurity amb Apache en sistemes Debian/Ubuntu.