Blindiamo apache con mod_dosevasive

Situazione tipo: Sei a casa di venerdi sera che stai cazzeggiando felicemente, fino a che non ti rendi conto che uno dei server sta subendo uno scan su una determinata url…

Famoso cracker sgamato ad effettuare un attacco Dos...

questo è quanto deve essere accaduto al mio collega ieri analizzando i log si apache di una delle macchine in nostra gestione…

Come fare quindi per prevenire, ed evitare danni da determinate situazioni? la risposta si chiama mod_dosevasive.

Con questo modulo per apache, abilitiamo un controllo sulle richieste verso l’intero sito e la singola pagina in un arco di tempo definibile; se le richieste superano un determinato margine l’ip in questione verrà messo in blacklist, e da quel momento verrà restituita una pagina 403 (Non permesso) per un lasso di tempo, anch’esso definibile.

L’installazione è di una facilità disarmante:

apt-get install libapache-mod-dosevasive

finito Laughing

Adesso dobbiamo configurarlo, inserendo nel file di configurazione di apache quanto segue:

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

Vediamo cosa significano i parametri:

DOSHashTableSizeDimensione della tabella di hash, più è grande più memoria è richiesta, ma più veloce saranno i lookups
DOSPageCountNumero di richieste, per la stessa pagina, massime concesse prima che l'indirizzo finisca in blacklist
DOSSiteCountNumero di richieste, per l'intero sito, massime concesse prima che l'indirizzo finisca in blacklist
DOSPageIntervalArco di tempo, in secondi, entro il quale devono rientrare le richieste massime definite nel PageCount
DOSSiteIntervalArco di tempo, in secondi, entro il quale devono rientrare le richieste massime definite nel SiteCount
DOSBlockingPeriodArco di tempo, in secondi, durante il quale verrà restituito un errore di tipo 403 all'ip blacklistato, il timer verrà resettato qualora durante il conteggio l'ip faccia un altra hit, ricevendo quindi, l'errore per più tempo ancora.

Adesso possiamo relodare apache per rendere effettive le modifiche:

/etc/init.d/apache2 force-reload


Altri articoli che potrebbero interessarti

Rallentamenti e disservizi Tutto inizia ieri sera, con l'arrivo dei primi allarmi sul carico eccessivo della macchina. A fatica...
Mod dosevasive su OpenBSD ed apache reverse proxy Cos'è DosEvasive DosEvasive è un modulo per Apache sviluppato da Jonathan Zdziarski (alias Nuclear...
In effetti… Eravamo rimasti a giovedi sera, quando un fantomatico rilascio ultraurgente, che apparentemente non serve...
Come ti setto l’https su porte non-443 con apache2 Ieri in azienda abbiamo dovuto settare l'apache di alcune macchine in modo che risponda in https ma in...
Apre il mini-forum :D A seguito del sondaggio svoltosi fino ad oggi, concluso con una parità, ho deciso di aprire un mini-forum,...

About the Author

M0rF3uS al secolo Alex è un ggiovine 25enne appassionato di informatica e linux. Lavora come Network and System Administrator e nel tempo libero gioca un pò con la sua fotocamera (Canon EOS 1000D) riuscendo a volte, per sbaglio, a fare qualche scatto decente. Completano il corredo, degli hobbies "vorrei ma non posso" ossia l'astronomia e l'astronautica....si è uno di quelli che da grande vorrebbe fare l'astronauta (povero coglione vero?).