Come mettere una protezione di base al proprio server web contro gli attacchi Dos

Vi propongo una semplice (e obsoleta?) soluzione per limitare gli attacchi Dos sulla porta 80 del proprio server web linux usando mod_evasive. Questa mod semplicissima dopo un determinato numero di richieste dallo stesso ip in un breve intervallo di tempo fa un “drop” di tutte le successive richieste spendendo un errore 403. Questa soluzione è di semplice configurazione grazie ad un semplice file che ora vi scriverò.

Intanto, installiamo mod_evasive:

apt-get install libapache2-mod-evasive

ora configuriamo il modulo modificando il file /etc/apache2/mods-available/mod-evasive.load
con il comando
nano /etc/apache2/mods-available/mod-evasive.load
in modo che sia fatto così:

LoadModule evasive20_module/usr/lib/apache2/modules/mod_evasive20.so


DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 5
DOSSiteInterval 1
DOSBlockingPeriod 10
DOSLogDir “/var/log/apache2/evasive”

riavviamo Apache:
/etc/init.d/apache2 restart

La protezione è attiva.
Per chiudere vi spiego cosa vogliono dire le righe del file di configurazione

DOSHashTableSize

La dimensione della tabella di hash che definisce il numero di nodi di primo livello. Aumentare questo numero incrementa le prestazioni del mod ma fa aumentare la dimensione della tabella in Ram.

DOSPageCount

E’ la soglia in secondi tale che il superamento di una richiesta ogni n secondi sullo stesso URI provoca il ban dell’ip.

DOSSiteCount

E’ una soglia che determina il numero massimo di richieste per uno stesso oggetto in una pagina in un secondo. Il superamento provoca il ban dell’ip.

DOSPageInterval

L’intevallo per le soglie delle pagine; default 1 secondo.

DOSSiteInterval

L’intervallo per le soglie relativi ai siti (apache); default 1 secondo.

DOSBlockingPeriod

Il tempo in secondi in cui il client è aggiunto alla ban list. Durante questo tempo riceverà per le ulteriori richieste un errore 403(Forbidden).

Lascia un commento

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