GNU/Linux >> Linux Esercitazione >  >> Linux

Protezione del tuo server Web Apache con Mod Security

ModSecurity, noto anche come Modsec, è un firewall per applicazioni Web gratuito e open source per il server Web Apache. ModSecurity è un modulo Apache che ti aiuta a proteggere il tuo server web da diversi tipi di attacchi tra cui SQL injection, XSS, trojan, bot, acquisizione/hijacking di sessioni e molti altri. ModSecurity fornisce potenti set di regole con monitoraggio web in tempo reale, registrazione e controllo degli accessi.

In questo tutorial, ti mostreremo come installare e configurare Mod Security con Apache su Ubuntu 18.04.

Prerequisiti

  • Un nuovo VPS Ubuntu 18.04 sulla piattaforma Atlantic.Net Cloud.
  • Un indirizzo IP statico configurato sul tuo server.

Fase 1:crea un server cloud Atlantic.Net

Per prima cosa, accedi al tuo server Atlantic.Net Cloud. Crea un nuovo server, scegliendo Ubuntu 18.04 come sistema operativo con almeno 2GB di RAM. Collegati al tuo Cloud Server tramite SSH e accedi utilizzando le credenziali evidenziate in alto nella pagina.

Dopo aver effettuato l'accesso al tuo server Ubuntu 18.04, esegui il comando seguente per aggiornare il tuo sistema di base con gli ultimi pacchetti disponibili.

apt-get update -y

Passaggio 2:installazione dello stack LAMP

Innanzitutto, dovrai installare LAMP Stack sul tuo server. Puoi installarlo eseguendo il seguente comando:

apt-get install apache2 mariadb-server php7.2-mysql php7.2 libapache2-mod-php7.2 unzip git -y

Dopo aver installato LAMP, avvia il servizio Apache e abilitalo all'avvio dopo il riavvio del sistema con il seguente comando:

systemctl start apache2
systemctl enable apache2

A questo punto, il server web Apache è installato ed è in esecuzione sul tuo server.

Fase 3 – Installa ModSecurity

apt-get install libapache2-mod-security2 -y

Una volta completata l'installazione, riavvia il servizio Apache per applicare le modifiche.

systemctl restart apache2

Successivamente, puoi anche verificare se il modulo è stato caricato o meno eseguendo il seguente comando:

apachectl -M | grep security

Dovresti ottenere il seguente output:

security2_module (shared)

Fase 4 – Configura ModSecurity

Non ci sono regole di sicurezza configurate per impostazione predefinita, quindi dovrai prima abilitarlo. Per farlo, rinomina il file di configurazione predefinito di ModSecurity /etc/modsecurity/modsecurity.conf-recommended in /etc/modsecurity/modsecurity.conf.

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

Quindi, modifica il file utilizzando il tuo editor di testo preferito:

nano /etc/modsecurity/modsecurity.conf

Trova la seguente riga:

SecRuleEngine DetectionOnly

Sostituiscilo con il seguente:

SecRuleEngine On

Salva e chiudi il file quando hai finito. Quindi, riavvia il servizio Apache per rendere effettive le modifiche.

systemctl restart apache2

Passaggio 5:scarica e configura la regola principale di ModSecurity

Il set di regole predefinito di ModSecurity è disponibile all'interno della directory /usr/share/modsecurity-crs, ma si consiglia di scaricare un nuovo set di regole da GitHub.

Innanzitutto, rimuovi le vecchie regole con il seguente comando:

rm -rf /usr/share/modsecurity-crs

Quindi, scarica l'ultima serie di regole con il seguente comando:

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

Successivamente, dovrai abilitare questa regola impostata nella configurazione di Apache. Puoi abilitarlo modificando il file /etc/apache2/mods-enabled/security2.conf:

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

Aggiungi le seguenti righe sopra la riga ""

     IncludeOptional "/usr/share/modsecurity-crs/*.conf
     IncludeOptional "/usr/share/modsecurity-crs/rules/*.conf

Salva e chiudi il file. Quindi, riavvia il servizio Apache e abilita il modulo di intestazione Apache per implementare le modifiche.

a2enmod headers
systemctl restart apache2

A questo punto, ModSecurity è configurato per funzionare con il server web Apache.

Fase 6:verifica ModSecurity

Dopo aver configurato ModSecurity, puoi provare a eseguire script dannosi su un browser web e verificare se le regole di ModSecurity verranno attivate.

Apri il tuo browser web e digita l'URL http://your-server-ip/index.html?exec=/bin/bash . Dovresti ricevere un messaggio di errore non consentito nella pagina seguente:

Per testare le regole di ModSecurity per la protezione contro un attacco XSS simulato, accedi all'URL http://your-server-ip/?q=”> dal tuo browser web. Dovresti vedere la seguente schermata:

Per testare le regole di ModSecurity rispetto alle scansioni Nessus, usa un comando curl con gli scanner Nessus per inviare richieste HTTP al server Apache come mostrato di seguito:

curl -i http://your-server-ip -A Nessus

Dovresti ricevere una risposta 403 Forbidden perché ModSecurity ha identificato lo User Agent come scansione Nessus:

HTTP/1.1 403 Forbidden
Date: Sat, 21 Dec 2019 04:17:24 GMT
Server: Apache/2.4.29 (Ubuntu)
Content-Length: 278
Content-Type: text/html; charset=iso-8859-1

Fase 7 – Escludi un dominio specifico da ModSecurity

In alcuni casi, è necessario escludere un dominio specifico dalla protezione ModSecurity. Per disabilitare ModSecurity per un dominio specifico, apri il file di configurazione dell'host virtuale Apache per un dominio specifico:

nano /etc/apache2/site-enabled/your-domain.conf

Aggiungi le seguenti righe all'interno del blocco ...:

<IfModule security2_module>
    SecRuleEngine Off
</IfModule>

Salva e chiudi il file. Quindi, riavvia il servizio Apache per applicare le modifiche.

systemctl restart apache2

Conclusione

Abbiamo esaminato come installare e configurare ModSecurity per proteggere il tuo server web Apache da attacchi dannosi. Per ulteriori informazioni, visita la documentazione di ModSecurity su ModSecurity.


Linux
  1. Come configurare un server web Apache

  2. Scansiona la tua sicurezza Linux con Lynis

  3. 7 passaggi per proteggere il tuo server Linux

  4. Come configurare più siti Web con il server Web Apache

  5. Come scansionare il tuo server con cPanel Security Advisor

Cos'è Apache? Una panoramica approfondita di Apache Web Server

Vulnerabilità HTTPOXY:come proteggere e testare il tuo server web

Protezione del server di posta gestito da ISPConfig 3 con un certificato SSL Lets Encrypt valido

Proteggi il tuo server Web Apache Best Practice

Procedura:proteggere il tuo server Ubuntu o Debian con IPTables

Come confrontare le prestazioni del server Web con Apache Bench