Cosa fa questo modulo #
fail2ban è il guardiano che sorveglia i log del tuo server e, quando rileva tentativi di accesso malevoli (per esempio, molti fallimenti di password via SSH), banna automaticamente l'IP colpevole per un certo tempo. Ogni servizio sorvegliato è organizzato in una jail (per esempio sshd).
Il modulo fail2ban ti dà il controllo di questi ban a runtime, senza dover ricordare la sintassi di fail2ban-client: consulta lo stato delle jail, elenca chi è bannato, verifica se un IP specifico è bloccato, banna o sbanna manualmente, sblocca tutto in una volta in caso di emergenza e ricarica la configurazione dopo una modifica.
Questo modulo agisce su un fail2ban già installato e in esecuzione. Tutti i sottocomandi consultano o modificano lo stato del servizio, quindi richiedono privilegi di root (usa sudo). Se sei rimasto fuori a causa del tuo stesso IP, vai direttamente allo sblocco d'emergenza.
Attività comuni #
Scegli cosa vuoi fare. Ogni ricetta porta il comando già scritto — basta cambiare l'IP o la jail con i tuoi e premere Copia.
1
Vedere lo stato e le jail
Verifica a colpo d'occhio se fail2ban è attivo e quanti sono bannati.
Connettiti via SSH al tuo server con l'utente ubuntu e richiedi lo stato generale:
$ sudo imaxe fail2ban statusLo vuoi in formato leggibile dalla macchina, per uno script o un pannello? Aggiungi --json:
$ sudo imaxe fail2ban status --jsonsshd) e il numero di IP bannati in ciascuna.2
Vedere quali IP sono bannati
Elenca i ban attivi, di tutte le jail o di una specifica.
Tutti gli IP bannati, di tutte le jail insieme:
$ sudo imaxe fail2ban bannedTi interessa solo una jail? Indicala come argomento:
$ sudo imaxe fail2ban banned sshd3
Verificare se un IP è bannato
Scopri in quali jail è bloccato un indirizzo specifico.
Chiedi direttamente per l'IP; ti dirà in quali jail risulta bannato:
$ sudo imaxe fail2ban check 203.0.113.74
Bannare o sbannare un IP
Blocca manualmente un indirizzo abusivo o libera un utente legittimo.
Banna un IP in una jail specifica (se c'è una sola jail, viene dedotta da sola):
$ sudo imaxe fail2ban ban 203.0.113.7 --jail sshdHai bannato qualcuno di legittimo? Sbannalo da tutte le jail in una volta:
$ sudo imaxe fail2ban unban 203.0.113.7imaxe fail2ban check sullo stesso IP.5
Sbloccare tutto (emergenza)
Sei rimasto fuori: libera tutti gli IP di tutte le jail.
Se il tuo stesso IP è rimasto intrappolato e devi recuperare l'accesso subito, sbannali tutti. Aggiungi --yes per saltare la conferma:
$ sudo imaxe fail2ban unban-all --yesDopo una modifica alla configurazione delle jail, ricaricala perché venga applicata:
$ sudo imaxe fail2ban reloadunban-allÈ un'operazione distruttiva del ban: lascia tutti gli IP senza blocco, inclusi quelli malevoli. Usala solo per recuperare l'accesso in caso di emergenza e verifica poi lo stato con imaxe fail2ban status.
Sinossi #
imaxe fail2ban <subcomando> [<ip>|<jail>] [--jail JAIL] [flags]Tutti i sottocomandi richiedono privilegi di root (usa sudo) perché consultano o modificano lo stato di fail2ban tramite fail2ban-client. Aggiungi --json a status, banned o check per ottenere un output leggibile dalla macchina, adatto allo scripting.
Sottocomandi #
| Sottocomando | Cosa fa | Flag rilevanti |
|---|---|---|
| status | Stato di fail2ban: attivo, jail e n° di IP bannati per jail. | --json |
| banned | Elenca gli IP bannati (tutte le jail o una specifica). | --json |
| check | Indica in quali jail è bannato un IP. | --json |
| ban | Banna manualmente un IP in una jail. | --jail |
| unban | Sbanna un IP da tutte le jail. | — |
| unban-all | EMERGENZA: sbanna TUTTI gli IP di tutte le jail. | --yes |
| reload | Ricarica la configurazione di fail2ban (valida jail.local). | — |
Argomenti e flag #
| Argomento / Flag | Tipo | Predefinito | Descrizione |
|---|---|---|---|
| <ip> obbl. | string | — | L'IP su cui operare. Obbligatorio in check, ban e unban. |
| <jail> | string | tutte | In banned, jail specifica da elencare. Senza argomento, si elencano tutte le jail. |
| --jail | string | auto | In ban, jail di destinazione del ban. Se c'è una sola jail, viene dedotta da sola. |
| --yes | bool | false | In unban-all, conferma senza chiedere (operazione distruttiva del ban). |
| --json | bool | false | In status/banned/check, emette il risultato come JSON su stdout. |
File e percorsi #
| Percorso | Contenuto |
|---|---|
| /etc/fail2ban/jail.local | Configurazione locale di fail2ban: jail attive, tempi di ban e soglie. Ciò che valida reload. |
| /var/run/fail2ban/fail2ban.sock | Socket di controllo con cui fail2ban-client comunica con il servizio. |
| /var/log/fail2ban.log | Log di fail2ban stesso: ban, sban e ricariche. |
Codici di uscita e log #
Ogni esecuzione restituisce un codice che puoi verificare con echo $? — utile per concatenare negli script:
Segui il log in tempo reale mentre esegui il debug:
$ sudo journalctl -u fail2ban -f
$ sudo tail -f /var/log/fail2ban.logRisoluzione dei problemi #
| Sintomo | Causa probabile | Soluzione |
|---|---|---|
| Esce SERVICE (codice 3) | fail2ban è fermo o il socket non risponde. | Avvia il servizio con systemctl start fail2ban e riprova. |
| Esce JAIL (codice 4) | La jail di --jail non esiste oppure ce ne sono più di una e non è possibile dedurla. | Guarda le jail con imaxe fail2ban status e indica quella corretta in --jail. |
| Esce RELOAD (codice 5) | C'è un errore di sintassi in jail.local. | Correggi /etc/fail2ban/jail.local e rilancia reload. |
| Sono rimasto fuori via SSH | Il tuo stesso IP ha accumulato fallimenti ed è stato bannato in sshd. | Da un altro canale, sbannalo con unban oppure liberali tutti con unban-all --yes. |
Bloccato con il modulo Fail2ban?
Scrivici allegando l'output di «imaxe <module> status --json» e ti rispondiamo in fretta.