Ricerca nel sito web

Come configurare un IPS (Fail2ban) per proteggersi da diversi attacchi


IPS o Intrusion Prevention System è una tecnologia utilizzata nella sicurezza di rete per esaminare il traffico di rete e prevenire diversi attacchi rilevando input dannosi. Oltre a rilevare solo input dannosi come fa Intrusion Detection System, impedisce anche alla rete di attacchi dannosi. Può impedire alla rete attacchi di forza bruta, DoS (Denial of Service), DDoS (Distributed Denial of Service), exploit, worm, virus e altri attacchi comuni. Gli IPS sono posizionati proprio dietro il firewall e possono inviare allarmi, eliminare pacchetti dannosi e bloccare indirizzi IP offensivi. In questo tutorial utilizzeremo Fail2ban, un pacchetto software di prevenzione delle intrusioni, per aggiungere un livello di sicurezza contro diversi attacchi di forza bruta.

Come funziona Fail2ban

Fail2ban legge i file di registro (ad esempio /var/log/apache/error_log) e ottiene gli IP offensivi che stanno tentando troppe password non riuscite o cercando exploit. Fondamentalmente, Fail2ban aggiorna le regole del firewall per bloccare diversi IP sul server. Fail2ban fornisce anche filtri che possiamo utilizzare per un servizio specifico (ad esempio apache, ssh, ecc.).

Installazione di Fail2ban

Fail2ban non è preinstallato su Ubuntu, quindi prima di usarlo dobbiamo installarlo.

ubuntu@ubuntu:~$ sudo apt-get update -y

ubuntu@ubuntu:~$ sudo apt-get install fail2ban

Dopo aver installato Fail2ban, avvia e abilita il servizio Fail2ban utilizzando la riga di comando.

ubuntu@ubuntu:~$ sudo systemctl start fail2ban

ubuntu@ubuntu:~$ sudo systemctl enable fail2ban

Ora controlla lo stato del servizio fail2ban per confermare se è stato avviato o meno.

ubuntu@ubuntu:~$ sudo systemctl status fail2ban

Configurazione di Fail2ban per SSH

Possiamo configurare Fail2ban modificando il file /etc/fail2ban/jail.conf. Prima di modificarlo, esegui un backup di questo file.

ubuntu@ubuntu:~$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ora configureremo Fail2ban per impedire al servizio sshd input dannosi. Apri il file /etc/fail2ban/jail.local nel tuo editor preferito.

ubuntu@ubuntu:~$ sudo nano /etc/fail2ban/jail.local

Vai alla sezione [default] e inserisci i parametri di configurazione nella sezione [default].

[DEFAULT]

ignoreip = 127.0.0.1/8 192.168.18.10/32

bantime = 300

maxretry = 2

findtime = 600

ignoreip è l'elenco di maschera cidr, indirizzo IP o host DNS separati da uno spazio. Aggiungi i tuoi IP attendibili a questo elenco e questi IP verranno inseriti nella whitelist e non verranno bloccati da fail2ban anche se eseguono un attacco di forza bruta sul server.

bantime è il tempo in cui un IP verrà bloccato dopo aver effettuato un numero specifico di tentativi falliti al server.

maxretry è il numero massimo di tentativi falliti dopo il quale un IP viene bloccato da fail2ban per un periodo di tempo specifico.

findtime è il periodo di tempo durante il quale se un host effettua tentativi maxretry falliti, verrà bloccato.

Dopo aver configurato i parametri di cui sopra, ora configureremo il servizio su cui verranno applicate le regole di cui sopra. Per impostazione predefinita, Fail2ban dispone di filtri predefiniti per diversi servizi, quindi non è necessario inserire voci specifiche per i servizi. Abilitiamo o disabilitiamo solo servizi diversi nel file di configurazione. Apri il file /etc/fail2ban/jail.local nel tuo editor preferito.

ubuntu@ubuntu:~$ sudo nano /etc/fail2ban/jail.local

Trova la sezione [sshd] nel file e inserisci i seguenti parametri nella sezione.

[sshd]

enable = true

port = ssh

filter = sshd

logpath = /var/log/auth.log

maxretry = 3

abilitato definisce se questo servizio è protetto da fail2ban o meno. Se abilitato è vero, il servizio è protetto; in caso contrario, non viene protetto.

porta definisce la porta del servizio.

filtro si riferisce al file di configurazione che fail2ban utilizzerà. Per impostazione predefinita utilizzerà il file /etc/fail2ban/filter.d/sshd.conf per il servizio ssh.

logpath definisce il percorso dei log, fail2ban monitorerà per proteggere il servizio da diversi attacchi. Per il servizio ssh, i log di autenticazione possono essere trovati su /var/log/auth.log, quindi fail2ban monitorerà questo file di log e aggiornerà il firewall rilevando i tentativi di accesso non riusciti.

maxretry definisce il numero di tentativi di accesso falliti prima di essere bloccati da fail2ban.

Dopo aver applicato la configurazione precedente per fail2ban, riavviare il servizio per salvare le modifiche.

ubuntu@ubuntu:~$ sudo systemctl restart fail2ban.service

ubuntu@ubuntu:~$ sudo systemctl status fail2ban.service

Test di Fail2ban

Abbiamo configurato fail2ban per proteggere il nostro sistema dagli attacchi di forza bruta sul servizio ssh. Ora effettueremo tentativi di accesso falliti sul nostro sistema da un altro sistema per verificare se fail2ban funziona o meno. Dopo aver effettuato alcuni tentativi di accesso non riusciti, controlleremo i registri fail2ban.

ubuntu@ubuntu:~$ cat /var/log/fail2ban.log

Possiamo vedere che dopo tentativi di accesso falliti, l'IP è stato bloccato da fail2ban.

Possiamo ottenere un elenco di tutti i servizi per i quali è abilitato fail2ban utilizzando il seguente comando.

ubuntu@ubuntu:~$ sudo fail2ban-client status

La figura sopra mostra che abbiamo abilitato fail2ban solo per il servizio sshd. Possiamo ottenere ulteriori informazioni sul servizio sshd specificando il nome del servizio nel comando precedente.

ubuntu@ubuntu:~$ sudo fail2ban-client status sshd

Fail2ban sblocca automaticamente l'indirizzo IP bannato dopo il bantime, ma possiamo sbloccare qualsiasi IP in qualsiasi momento utilizzando la riga di comando. Ciò darà maggiore controllo su fail2ban. Utilizzare il seguente comando per sbloccare l'indirizzo IP.

ubuntu@ubuntu:~$ sudo fail2ban-client set sshd unbanip 192.168.43.35

Se provi a sbloccare un indirizzo IP che non è bloccato da fail2ban, ti dirà semplicemente che l'IP non è bloccato.

ubuntu@ubuntu:~$ sudo fail2ban-client set sshd unbanip 192.168.43.35

Conclusione

Per un amministratore di sistema o un ingegnere della sicurezza, è una grande sfida mantenere la sicurezza dei server. Se il tuo server è protetto da una password e non da una coppia di chiavi pubblica e privata, è più vulnerabile agli attacchi di forza bruta. Possono entrare nel tuo sistema applicando diverse combinazioni di password. Fail2ban è uno strumento che può impedire agli aggressori di lanciare diversi tipi di attacchi, inclusi attacchi di forza bruta e attacchi DDoS sul tuo server. In questo tutorial, abbiamo discusso di come utilizzare Fail2ban per proteggere il nostro server da diversi attacchi. Possiamo anche utilizzare Fail2ban per proteggere altri servizi come apache, nginx, ecc.

Articoli correlati: