Difendetevi da attacchi DoS e DDoS su web server Apache con il modulo mod_evasive

Pubblicità

Seguendo i recenti annunci riguardo attacchi informatici diretti verso il nostro Paese volti ad interruzione di servizio (DDoS – Distributed Denial of Service), consiglio di mitigare (o quanto meno provare a farlo) questi attacchi proteggendo i servizi web esposti sulla rete pubblica.

Per chi possiede o ospita piattaforme “on premises” su web server Apache (httpd) consiglio l’attivazione del modulo “mod_evasive” che consente, con poche righe di configurazione, di limitare i tentativi ripetuti di accesso alle risorse e il flood di richieste HTTP.

In primis, consiglio l’impiego di un reverse proxy (per le architetture più complesse anche in load balance) per l’esposizione di servizi web sulla rete pubblica. Per i più esigenti, consiglio vivamente l’uso di CDN e sistemi di protezione frontend come Cloudflare.

Ad ogni modo, nei prossimi paragrafi, vedremo l’installazione e la configurazione del modulo descritto su un ambiente Ubuntu Server.

Premessa: come funziona il modulo “mod_evasive”

Il modulo “mod_evasive” di Apache lavora monitorando le richieste ricevute dal web server.
Questo modulo controlla anche attività sospette provinienti da ogni singolo indirizzo IP, del tipo:

  • numero di richieste per la stessa risorsa nella finestra temporale di un secondo;
  • più di 50 richieste simultanee per secondo;
  • richieste ricevute da un indirizzo IP che è già stato temporaneamente messo in blacklist.

Il modulo risponderà alle richieste con un errore “403 – Forbidden” se si verificheranno le condizioni riportate sopra. Nella configurazione di default è presente anche un tempo di 10 secondi di “wait period” che deve trascorrere prima che un indirizzo IP venga rimosso dalla blacklist.

Se l’indirizzo IP continua a fare richieste durante questa finestra temporale, il tempo di attesa prima di essere rimosso dalla blacklist verrà progressivamente aumentato.

Installazione

Procedere all’installazione eseguendo questi comandi:

sudo apt update
sudo apt install apache2-utils libapache2-mod-evasive

Verrà installato anche il relay server “Postfix” per permettere la configurazione di alert via email (la configurazione può essere omessa se non ci interessa essere avvertiti).

Configurazione

Come tutti i pacchetti software, la configurazione è raggiungibile tramite un file “.conf” che viene poi caricato all’avvio del web server.

sudo pico /etc/apache2/mods-enabled/evasive.conf

Rimuovere i commenti nel file di configurazione esistente per ottenere una configurazione di questo tipo:

<IfModule mod_evasive20.c>
    DOSHashTableSize 3097
    DOSPageCount 2
    DOSSiteCount 50
    DOSPageInterval 1
    DOSSiteInterval 1
    DOSBlockingPeriod 10
</IfModule>

Ricaricare la configurazione del web server per applicare le modifiche apportate:

sudo systemctl reload apache2

Test di funzionamento del modulo

E’ presente un script di test che viene scaricato durante l’installazione del modulo.
Eseguirlo con il seguente comando per verificare che le richieste vengano respinte:

perl /usr/share/doc/libapache2-mod-evasive/examples/test.pl

Vi rimando all’articolo originale in lingua inglese per tutti i dettagli sui parametri di configurazione aggiuntivi che sono presenti in questo modulo.

Tag

Pubblicità

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *