GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come configurare e configurare ModSecurity su Apache

Introduzione

ModSecurity è un modulo plug-in per Apache che funziona come un firewall. Funziona tramite set di regole, che ti consentono di personalizzare e configurare la sicurezza del tuo server.

ModSecurity può anche monitorare il traffico web in tempo reale e aiutarti a rilevare e rispondere alle intrusioni. Può essere utilizzato con Apache, Nginx e IIF ed è compatibile con Debian, Ubuntu e CentOS.

Questo tutorial spiega come installare e configurare ModSecurity sui server Web Apache.

Prerequisiti

  • Lo stack LAMP (Linux, Apache, MySQL, PHP) installato e configurato
  • Accesso a un account utente con sudo o root privilegi
  • Un gestore di pacchetti (APT o YUM), incluso per impostazione predefinita
  • Una riga di comando/finestra del terminale (Ctrl-Alt-T, Ctrl-Alt-F1)
  • Un editor di testo, come nano

Fase 1:aggiorna i repository software

Apri una finestra di terminale e inserisci quanto segue:

Su Debian/Ubuntu

sudo apt update -y

Su CentOS

sudo yum update -y

Fase 2:installazione di ModSecurity su Apache

Installa ModSecurity su Debian

1. In una finestra del terminale, immettere quanto segue:

sudo apt install libapache2-modsecurity

Se richiesto, premi y e premi Invio per consentire il completamento del processo.

2. Riavvia il servizio Apache:

sudo systemctl restart apache2

Non ci sarà output se Apache è stato riavviato correttamente.

3. Verifica la versione del software (dovrebbe essere 2.8.0 o successiva):

apt-cache show libapache2-modsecurity

Installa ModSecurity su Ubuntu 18.04

1. In una finestra del terminale, immettere:

sudo apt install libapache2-mod-security2

Se richiesto, premi y e premi Invio per consentire il completamento del processo.

2. Riavvia il servizio Apache:

sudo systemctl restart apache2

Non ci sarà output se Apache è stato riavviato correttamente.

3. Verifica la versione del software (dovrebbe essere 2.8.0 o successiva):

apt-cache show libapache2-mod-security2

Installa ModSecurity su CentOS 7

1. Immettere quanto segue in una finestra del terminale:

sudo yum install mod_security

Se richiesto, premi y e premi Invio per consentire il completamento del processo.

2. Riavvia il servizio Apache:

sudo systemctl restart httpd.service

3. Verifica la versione del software (dovrebbe essere 2.8.0 o successiva):

yum info mod_security

Passaggio:3 Configura ModSecurity

Al momento dell'installazione, ModSecurity è impostato per registrare gli eventi in base alle regole predefinite. Dovrai modificare il file di configurazione per regolare le regole per rilevare e bloccare il traffico.

Il file di configurazione predefinito è /etc/modsecurity/modsecurity.conf-recommended.

1. Copia e rinomina il file:

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

2. Quindi, cambia la Modalità di rilevamento ModSecurity . Per prima cosa, passa a /etc/modsecurity cartella:

sudo cd /etc/modsecurity

3. Apri il file di configurazione in un editor di testo (useremo nano):

sudo nano modsecurity.conf

Vicino alla parte superiore, dovresti vedere una voce etichettata:

SecRuleEngine DetectionOnly

Modificalo per leggere come segue:

SecRuleEngine On

4. Usa CTRL+X per uscire, quindi premi y quindi Invio per salvare le modifiche.

5. Allontanati dalla cartella /etc/modsecurity:

cd

6. Riavvia Apache:

Su Debian/Ubuntu

sudo systemctl restart apache2

Su CentOS

sudo systemctl restart httpd.service

Questo attiverà ModSecurity utilizzando le regole predefinite di base. In alcune versioni di Linux, questo include il set di regole di base OWASP. Tuttavia, potrebbe differire dall'ultima versione gestita dagli sviluppatori.

Fase 4:scarica le ultime regole OWASP ModSecurity

L'ultimo Core Rule Set (CRS) per ModSecurity viene mantenuto su GitHub.

1. Installa G esso se non è già incluso nel tuo sistema.

Installa Git su Debian/Ubuntu:

sudo apt install git

Installa Git su CentOS:

sudo yum install git

2. Scarica una copia del CRS:

git clone https://github.com/SpiderLabs/owasp-modsecurity-crs.git

Questo inserisce una copia della directory come sottodirectory della tua posizione di lavoro corrente.

3. Apri una nuova directory:

cd owasp-modsecurity-crs

4. Sposta il file crs-setup:

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

5. Quindi sposta la directory delle regole:

sudo mv rules/ /etc/modsecurity

Se si verifica un errore durante il tentativo di spostare questa directory, immettere:

sudo mkdir /etc/modsecurity/rules
cd rules 
sudo cp *.* /etc/modsecurity/rules

6. Quindi, controlla il tuo security2.conf per verificare che sia impostato per caricare le regole di ModSecurity:

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

Verifica di avere le seguenti righe incluse e non commentate:

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

Se non ci sono, aggiungili. Non duplicarli, o rischi di disabilitare il tuo servizio Apache.

7. Riavvia il servizio Apache:

Su Debian/Ubuntu

sudo systemctl restart apache2

Su CentOS

sudo systemctl restart httpd.service

Fase 5:verifica la configurazione di Apache

1. Apri il file di configurazione di Apache predefinito:

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

2. Individua il </VirtualHost> tag in basso e aggiungi le seguenti righe:

SecRuleEngine On
SecRule ARGS:testparam "@contains test" "id:1234,deny,status:403,msg:'phoenixNAP test rule was triggered'"

Puoi modificare il msg a quello che preferisci.

Salva ed esci dal file (CTRL+X> y> Entra ).

3. Riavvia il servizio Apache:

Su Debian/Ubuntu

sudo systemctl restart apache2

Su CentOS

sudo systemctl restart httpd.service

4. Quindi, inserisci il seguente comando:

curl localhost/index.html?testparam=test

Il sistema risponde tentando di visualizzare la pagina Web predefinita. Al posto del contenuto, genera codici di errore e messaggi all'interno dei tag:

5. Puoi confermare che ModSecurity ha funzionato cercando il codice 403 nei log degli errori di Apache con il comando:

sudo tail -f /var/log/apache2/error.log

Una delle voci verso il basso dovrebbe essere il codice di errore ModSecurity:

Testa ModSecurity e OWASP CRS con lo script Bash

Un altro metodo che puoi utilizzare per testare ModSecurity è utilizzare una B cenere copione.

1. Immettere il seguente comando nel terminale:

curl localhost/index.html?exec=/bin/bash

L'output mostra gli stessi messaggi di errore dell'ultima volta.

2. Visualizza nuovamente il file Apache error.log e scoprirai che la regola è stata attivata:

sudo tail -f /var/log/apache2/error.log

L'output visualizza il messaggio di errore ModSecurity relativo a OWASP.

Fase 6:crea le regole ModSecurity

Di seguito è riportato un esempio di test su come utilizzare ModSecurity per bloccare parole chiave specifiche su un modulo PHP.

1. Crea un file PHP all'interno della directory html con il comando:

sudo nano /var/www//html/test.php

2. Inserisci il seguente codice nel file:

<html>
<body>
<?php
if(isset($_POST['data']))
echo $_POST['data'];
else
{
?>
<form method="post" action="">
Enter text here:<textarea name="data"></textarea>
<input type="submit"/>
</form>
<?php
}
?>
</body>
</html>

Salva il file ed esci.

3. Quindi, crea un nuovo file di regole personalizzate ModSecurity:

sudo nano /etc/modsecurity/modsecurity_custom_rules.conf

Aggiungi le seguenti righe:

SecRule REQUEST_FILENAME "test.php" "id:'400001',chain,deny,log,msg:'Spam detected'"
SecRule REQUEST_METHOD "POST" chain
SecRule REQUEST_BODY "@rx (?i:(enlarge|Nigerian|gold))"

Ovviamente, cambia le parole chiave nell'ultima riga con quelle che vuoi.

Salva il file ed esci.

4. Ricarica il servizio Apache:

Su Debian/Ubuntu

sudo systemctl restart apache2

Su CentOS

sudo systemctl restart httpd.service

5. Avvia il modulo in un browser web

localhost/test.php

6. Digitare una delle parole chiave dalla regola nel modulo. In questo esempio:ingrandisci, nigeriano, o oro .

Dovresti ricevere un messaggio di errore 403 Proibito.

Puoi anche controllare il /var/log/apache2/error.log file per verificare l'azione di ModSecurity.


Ubuntu
  1. Come abilitare e configurare il file .htaccess su Apache

  2. Come installare Apache su CentOS 8

  3. Come installare Apache su Ubuntu 18.04

  4. Come configurare gli host virtuali Apache su Ubuntu 18.04

  5. Come configurare vHost in Apache

Come installare Apache su Ubuntu 20.04 LTS

Come installare ModSecurity Apache su Ubuntu 20.04 LTS

Come configurare un server Apt-cacher?

Come installare e configurare Apache 2?

Come installare ModSecurity Apache su Ubuntu 20.04

Come installare Apache su Ubuntu 22.04