Corsi on-line

mod_evasive per proteggere Apache dagli attacchi DoS

Dovendo operare spesso interventi che sono propri più di un sysadmin che di uno sviluppatore, ho potuto valutare che in non pochi casi NGINX si dimostra una soluzione più sicura e performante di Apache, quest’ultimo però è ancora oggi il Web server più diffuso nella gestione di siti Internet e Web applications, motivo per il quale è sempre utile conoscere a fondo gli strumenti disponibili per la sua protezione.

ApacheNello specifico di questo post parleremo del mod_evasive di Apache come opzione per la difesa contro gli attacchi di tipo DoS (Denial-of-Service) e DDoS (Distributed Denial-of-Service), cioè quelle azioni malevole il cui obbiettivo è rendere indisponibile una risorsa raggiungibile online in condizioni normali. Il mod_evasive è in pratica un modulo dell’engine HTTP in grado di generare azioni evasive nel caso in cui dovessero verificarsi incursioni basate su DoS, DDoS o brute force.

Quello inizializzato da mod_evasive rappresenta una sorta di processo “sentinella” per la network detection e può essere integrato con altre soluzioni per la sicurezza come per esempio i firewall. Nel caso specifico di questo articolo gli esempio riportati sono stati testati su una configurazione basata su 14.04.3 LTS e Apache 2.4.10. Passiamo subito alla fase di installazione:

# apt-get update
# apt-get install libapache2-mod-evasive

Fatto questo si potrà passare alla configurazione del modulo editando il file evasive.conf presente sul percorso /etc/apache2/mods-available/; un’impostazione ottimale potrebbe essere la seguente:

<IfModule mod_evasive20.c>
DOSHashTableSize    2048
DOSPageCount        5
DOSSiteCount        100
DOSPageInterval     1
DOSSiteInterval     2
DOSBlockingPeriod   10
DOSEmailNotify      tua@email.com
#DOSSystemCommand    "su - someuser -c '/sbin/... %s ...'"
DOSLogDir           "/var/log/mod_evasive"
</IfModule>

Una volta salvate le modifiche al file di configurazione, per inizializzare il modulo si dovrà prima abilitarlo per poi riavviare il Web server allo scopo di renderlo operativo:

# a2enmod evasive
# systemctl restart apache2

Dato che il modulo non dovrebbe essere in grado di generare autonomamente il file per la registrazione dei log, i suoi registri di attività, tale operazione potrà essere effettuata manualmente:

# mkdir /var/log/mod_evasive
# chown :www-data /var/log/mod_evasive
# chmod 771 /var/log/mod_evasive

Per maggiori informazioni riguardo all’utilizzo e ai benchmark del mod_evasive è possibile fare riferimento al contributo di Don Jajo che è stato fonte di ispirazione per la stesura di questo articolo.

Post correlati
I più letti del mese
Tematiche