Installare OpenWRT su Fritz!Box 7530
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...
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.
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:
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.
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).
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
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.