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:
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:
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:
Vi rimando all’articolo originale in lingua inglese per tutti i dettagli sui parametri di configurazione aggiuntivi che sono presenti in questo modulo.
In questo articolo vi guiderò passo passo nella configurazione di un server OpenVPN su un router Mikrotik. Verrà illustrata anche la configurazione del firewall per permettere ai client connessi in...
Se state leggendo questo articolo, probabilmente avete già familiarità con l'argomento, specie con il firmware open source "OpenWRT". Le indicazioni che sto per darvi sono frutto di una mia esperienza...
W3C e FIDO Alliance hanno approvato le specifiche finali dello standard Web Authentication che permette il login con metodi più sicuri delle password. Il World Wide Web Consortium (W3C) e...
I cookie ci aiutano a fornire i nostri servizi. Utilizzando tali servizi, accetti il nostro utilizzo dei cookie. Ulteriori informazioniOK
Ulteriori informazioni
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.