Gli attacchi brute force, o attacchi di forza bruta in italiano, sono attacchi che mirano a provare tutte le combinazioni di username e password possibili al fine di trovare quella corretta e garantirsi l’accesso al server vittima.
Data la latenza di un attacco brute force remoto, molte volte gli hackers preferiscono avviare attacchi wordlist, ovvero attacchi che si limitano a testare una lista di parole contenute in un file di testo anziché generare tutte le combinazioni possibili.
Chi gestisce un server è continuamente sotto attacco da parte di software che tentano di craccare la password di amministratore ed a volte ci riescono, in quanto purtroppo sono ancora in molti a non utilizzare autenticazioni con password robuste o con chiave asimmetrica.
Chi effettua un attacco di questo tipo genera moltissime richieste di accesso non riuscito. Lo scopo è dunque bannare gli indirizzi IP che effettuano continui tentativi di accesso fallito. Uno dei software più appropriati per farlo è Fail2ban.
Indice dei Contenuti
Il software non fa altro che effettuare una scansione dei file di log dei servizi configurati, ad esempio ssh, proftpd, apache, ecc.., e quando trova un numero di tentativi di accesso falliti superiore a quelli configurati, banna l’indirizzo IP inserendo una semplice regola sul firewall iptables per un periodo di tempo prestabilito.
Fail2ban è sicuramente in grado di ridurre il numero di tentativi di autenticazione falliti tuttavia non può eliminare il rischio derivato dall’utilizzo di password deboli o vulnerabilità software che consentono il bypass dell’autenticazione.
A tal proposito è vivamente consigliato utilizzare servizi che utilizzano l’autenticazione a due fattori o mediante chiavi pubbliche e private.
Si ricorda inoltre che un utente locale del server è in grado di iniettare messaggi su syslog e quindi potrebbe potenzialmente effettuare attacchi DoS contro un qualsiasi indirizzo IP.
Installare Fail2ban su un server linux Ubuntu o Debian è semplice come bere un bicchier d’acqua. Prima di tutto aggiornate l’indice dei pacchetti in modo da essere sicuri di installare l’ultima versione di fail2ban disponibile, dopodiché procedete con l’installazione di fail2ban:
$ sudo apt-get update && sudo apt-get install fail2ban
Ad installazione terminata occorre passare alla configurazione.
Fail2ban ha quattro file di configurazione:
Quindi le regole di Fail2ban si chiamano jail e si trovano all’interno del file /etc/fail2ban/jail.conf. Il file è suddiviso in sezioni di cui una di default globale le cui regole generiche possono essere sovrascritte dalle sezioni più specifiche.
Il nome di ogni sezione è racchiuso tra parentesi quadre e contiene alcuni parametri, esempio:
[ssh]
enabled = true
port = 2222
filter = sshd
maxretry = 3
bantime = 24h
findtime = 1h
logpath = /var/log/auth.log
destemail = miaemail@gmail.com
sendername = 'Fail2Ban Server 1'
action = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"] %(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"]
Di seguito la spiegazione dei vari parametri:
È vivamente sconsigliato modificare il file jail.conf. Le regole personalizzate occorre scriverle all’interno della directory jail.d affinché jail.conf possa essere sovrascritto in caso di aggiornamenti senza perdere le regole.
Quindi creare all’interno di jail.d un file con estensione .conf ed inserire al suo interno le regole Fail2Ban. Salvare e verificare con fail2ban-server che non siano presenti errori di configurazione:
$ sudo fail2ban-server -t OK: configuration test is successful
Se tutto va bene, riavviare il servizio per rendere le modifiche effettive:
$ sudo service fail2ban restart
Per togliere il ban ad uno specifico indirizzo IP occorre utilizzare il seguente comando avendo l’accortezza di sostituire il nome della jail e l’indirizzo IP:
sudo fail2ban-client set nome-jail unbanip indirizzo-ip
Se ad esempio volessimo togliere il ban per la jail sshd all’indirizzo IP 99.88.77.66, lanceremo il seguente comando:
sudo fail2ban-client set sshd unbanip 99.88.77.66
Vi sono principalmente tre tipi di azioni: ban semplice, ban con notifica e ban con notifica avanzata.
La seguente azione si limita a bannare semplicemente l’indirizzo IP sul protocollo e sulla porta specificata nella chain di default.
action = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
Oltre a bannare come nella regola precedente, invia il whois dell’indirizzo IP bannato all’indirizzo email specificato in destemail.
action = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s", chain="%(chain)s", sendername="%(sendername)s"]
Come la regola precedente ma oltre al whois invia anche le linee di file di log interessate che hanno fatto scattare il ban.
action = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s", chain="%(chain)s"]
%(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s, chain="%(chain)s", sendername="%(sendername)s"]
Per monitorare lo status dei servizi analizzati, esiste il comando fail2ban-client. Per visualizzare le jail attive basta lanciare il seguente comando:
$ sudo fail2ban-client status
Status
|- Number of jail: 3
`- Jail list: vsftpd, ssh, ssh-ddos
Se volessimo monitorare una jail nello specifico, basta far seguire il nome della regola a status:
$ sudo fail2ban-client status ssh
Status for the jail: ssh
|- filter
| |- File list: /var/log/auth.log
| |- Currently failed: 0
| `- Total failed: 5
`- action
|- Currently banned: 0
| `- IP list:
`- Total banned: 1
Una volta configurate tutte le jail del caso ed eseguito i vari test, il server può ritenersi al sicuro da attacchi brute force e wordlist da parte di utenti malintenzionati.
Come aumentare i Mi Piace su Facebook? È uno dei bisogni primari di chi si…
L'utilizzo del Pixel di Facebook è fondamentale per l'ottimizzazione di una campagna pubblicitaria Facebook ma…
Quali sono i social network più famosi? Ormai i social network a disposizione del pubblico…
Google BERT è l'algoritmo di Google entrato in funzione il 25 Ottobre del 2019. A…
L'analisi SWOT è parte integrante e importantissima di un piano marketing efficace. Grazie a questo…
Apparire su Google Maps è estremamente importante per un'attività locale. Consente non solo di ottenere…
Visualizza Commenti
Modificando /etc/fail2ban/jail.conf e successivo sudo service fail2ban restart fail2ban non funziona più.....
Con sudo fail2ban-client status non trova il server..... come se non fosse installato
Se non faccio alcuna modifica a jail.conf allora funziona solo però con ssh jail
Come mai ?
Io abilito solo alcuni jail.....
Hai info in merito ^
Grazie