Fail2ban

Fail2ban esegue la scansione dei file di log (ad esempio /var/log/apache/error_log) e blocca gli IP che manifestano comportamenti potenzialmente dannosi: troppi errori di password, ricerca di exploit, ecc. In generale Fail2Ban viene quindi utilizzato per aggiornare le regole del firewall per rifiutare le richieste da questi indirizzi IP per un determinato periodo di tempo, sebbene sia possibile configurare qualsiasi altra azione arbitraria (ad esempio l’invio di un’e-mail). Fail2Ban viene fornito con a bordo una serie filtri per vari servizi (Apache, Dovecot, Ssh, Postfix, ecc.).

Fail2Ban è in grado di ridurre il numero di tentativi di autenticazione errati, tuttavia non può eliminare il rischio che presenta un’autenticazione debole. Per migliorare la sicurezza, aprire l’accesso ai servizi alle sole reti conosciute e protette utilizzando il firewall o Servizi.

Configurazione

Accedere a Applicazioni > fail2ban e fare clic sul pulsante Impostazioni dell’applicazione Fail2ban. La configurazione è suddivisa in due pagine:

  • Impostazioni: opzioni di configurazione globali

  • Jail: permette di gestire le Jail disponibili

Una jail viene abilitata e inizia a proteggere un servizio quando si installa un nuovo modulo, la relativa jail (se esistente) viene automaticamente attivata dopo l’installazione del pacchetto. Tutte le jail possono essere disabilitate individualmente nelle impostazioni delle jail.

Le configurazioni disponibili sono:

  • Whitelist IP: gli IP elencati nell’area di testo non saranno mai bloccati da fail2ba (inserire un IP per riga).

  • Ban recidivo: estende il blocco degli attaccanti recidivi. Il ban recidivo può avere 2 comportamenti diversi:

    • Tempo di ban statico: blocca gli host recidivi per 2 settimane, come i bot eseguono attachi di forza bruta. La regola si applica quando un IP è già stato bloccato più volte.

    • Temp di ban incrementale: aumenta il tempo di blocco ad ogni tentativo fallito nel log. Quando abilitato, se si configura un tempo di blocco breve, un utente valido sarà bloccato per poco tempo mentre un attaccante verrà bloccato per un periodo molto lungo.

  • : guilabel: Consenti ban sulla LAN: per impostazione predefinita i tentativi falliti dalla rete locale vengono ignorati, tranne quando è abilitata questa opzione. : ref: trusted_networks-section sono considerati parte della LAN.

  • Livello di log: aumenta o diminuisce il livello di log

  • Numero di tentativi: numero di corrispondenze (cioè valore del contatore) che innesca un’azione di ban sull’IP.

  • Intervallo: il contatore viene impostato a zero se non viene trovata alcuna corrispondenza entro l’intervallo di tempo impostato.

  • Tempo di Ban: durata del Ban per l’IP

Notifiche mail

Le notifiche tramite mail sono disabilitate per impostazione predefinita. Per abilitarle, fare clic sul pulsante Notifiche mail, quindi aggiungere uno o più indirizzi di posta utilizzando il pulsante Aggiungi email e compilando il campo Invia a. Gli indirizzi di posta esistenti possono essere rimossi facendo clic sul pulsante -.

Per ricevere una notifica quando una jail è abilitata o disabilitata, seleziona l’opzione: guilabel: Notifica eventi di start/stop delle jail.

Unban IP

Gli IP vengono bannati quando nei log sono presenti più tentativi di accesso in uno specifico intervallo di tempo. Vengono archiviati in un database per essere nuovamente bannati ogni volta che il server (o il servizio) viene riavviato. L’elenco dei ban attuali è disponibile nella pagina: guilabel: Unban. Per sbloccare un IP è sufficiente fare clic sul pulsante corrispondente: guilabel: Unban.

Strumenti a linea di comando

fail2ban-client

fail2ban-client fornisce lo stato di fail2ban e tutte le jail disponibili:

fail2ban-client status

Per ispezionare una jail specifica:

fail2ban-client status sshd

Per verificare quali file di log siano monitorati da una jail:

fail2ban-client get nginx-http-auth logpath

fail2ban-listban

fail2ban-listban permette di contare gli IP attualmente bannati nelle varie jail attivate e mostra anche gli IP che risultano bannati da shorewall.

fail2ban-listban

fail2ban-regex

fail2ban-regex è uno strumento che viene utilizzato per testare le regex sui log, è una parte del software fail2ban. È consentito un solo filtro per jail, ma è possibile specificare diverse azioni, su righe separate.

La documentazione è `consultabile sul sito del progetto fail2ban<http://fail2ban.readthedocs.io/en/latest/filters.html>`_.

fail2ban-regex /var/log/YOUR_LOG /etc/fail2ban/filter.d/YOUR_JAIL.conf --print-all-matched

E” possibile anche testare direttamente una regex personalizzata:

fail2ban-regex /var/log/secure '^%(__prefix_line)s(?:error: PAM: )?[aA]uthentication (?:failure|error) for .* from <HOST>( via \S+)?\s*$'

fail2ban-unban

ail2ban-unban è usato per sbloccare un IP nel caso in cui il ban debba essere rimosso manualmente.

fail2ban-unban <IP>

È possibile utilizzare anche il comando integrato con fail2ban-client:

fail2ban-client set <JAIL> unbanip <IP>

Whois

Se si desidera ottenere informazioni sull’origine dell’IP bannato via e-mail, è possibile utilizzare il database whois installando l’rpm whois.