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.