Fail2ban esegue la scansione dei file di registro per vari servizi ( SSH, FTP, SMTP, Apache, ecc., ) e vieta il IP che fa troppi errori di password. Aggiorna anche le regole del firewall per rifiutare questi indirizzi IP.
Fail2ban è un framework di prevenzione delle intrusioni scritto nel linguaggio di programmazione Python.
Lo scopo principale di Fail2ban è prevenire gli attacchi di accesso di forza bruta.
Inoltre, fare riferimento al nostro precedente articolo su Tripwire (sistema di rilevamento delle intrusioni basato su host Linux).
Installa Fail2ban
Per installare fail2ban dal sorgente, scaricalo da sourceforge..
Usa apt-get per installare Fail2ban su un sistema basato su Debian come mostrato di seguito.
# apt-get install fail2ban
Puoi anche installare Fail2ban manualmente scaricando il pacchetto deb fail2ban.
# dpkg -i fail2ban_0.8.1-1_all.deb
Come configurare fail2ban
Tutti i file di configurazione di Fail2ban si trovano nella directory /etc/fail2ban.
/etc/fail2ban/fail2ban.conf
Lo scopo principale di questo file è configurare le direttive relative al registro fail2ban.
- Livello registro:imposta l'output del livello del registro.
- logtarget:specifica il percorso del file di registro
Le azioni intraprese da Fail2ban vengono registrate nel file /var/log/fail2ban.log. Puoi modificare la verbosità nel file conf in una delle seguenti opzioni:1 – ERROR, 2 – WARN, 3 – INFO o 4 – DEBUG.
/etc/fail2ban/jail.conf
Il file jail.conf contiene la dichiarazione delle configurazioni del servizio. Questo file di configurazione è suddiviso in diversi contesti. Le impostazioni PREDEFINITE si applicano a tutte le sezioni.
La seguente sezione DEFAULT di jail.conf dice che dopo cinque tentativi di accesso falliti da un singolo indirizzo IP entro 600 secondi o 10 minuti (findtime), quell'indirizzo verrà automaticamente bloccato per 600 secondi (bantime).
[DEFAULT] ignoreip = 127.0.0.1 maxretry = 5 findtime = 600 bantime = 600
- ignoreip:questo è un elenco separato da spazi di indirizzi IP che non possono essere bloccati da fail2ban.
- maxretry:numero massimo di tentativi di accesso non riusciti prima che un host venga bloccato da fail2ban.
- bantime:tempo in secondi in cui un host viene bloccato se è stato catturato da fail2ban (600 secondi =10 minuti).
Configurazioni del servizio
Per impostazione predefinita, alcuni servizi vengono inseriti come modelli. Di seguito è riportato un esempio della sezione dei servizi ssh.
[ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log action = iptables
- enabled :abilita il controllo fail2ban per il servizio ssh
- porta:porta di servizio (indicata nel file /etc/services)
- filtro:nome del filtro che deve essere utilizzato dal servizio per rilevare le corrispondenze. Questo nome corrisponde a un nome di file in '/etc/fail2ban/filter.d'; senza l'estensione '.conf'. Ad esempio:'filter =sshd' si riferisce a '/etc/fail2ban/filter.d/sshd.conf'.
- logpath:il file di registro che fail2ban verifica i tentativi di accesso non riusciti.
- Azione:questa opzione indica a fail2ban quale azione intraprendere una volta che un filtro corrisponde. Questo nome corrisponde a un nome di file in '/etc/fail2ban/action.d/' senza l'estensione '.conf'. Ad esempio:'action =iptables' si riferisce a /etc/fail2ban/action.d/iptables.conf'.
Fail2ban monitorerà il file /var/log/auth.log per i tentativi di accesso non riusciti e, se trova ripetuti tentativi di accesso ssh falliti dallo stesso indirizzo IP o host, fail2ban interrompe ulteriori tentativi di accesso da quell'indirizzo IP/host bloccandolo con regola del firewall iptables fail2ban.
Filtri Fail2ban
La directory /etc/fail2ban/filter.d contiene espressioni regolari utilizzate per rilevare tentativi di effrazione, errori di password e così via per vari servizi.
Ad esempio:
- sshd.conf – Filtri relativi a ssh Fail2ban
- apache-auth.conf – Filtri del servizio apache Fail2ban
Possiamo anche aggiungere la nostra espressione regolare per trovare azioni indesiderate.
Azioni Fail2ban
La directory /etc/fail2ban/action.d contiene diversi script che definiscono le azioni che verranno eseguite una volta che un filtro corrisponde. È consentito un solo filtro per servizio, ma è possibile specificare più azioni, su righe separate.
Ad esempio:
- IPtables.conf – blocca e sblocca l'indirizzo IP
- Mail.conf – Invio di posta all'utente configurato
Avvia/arresta servizio Fail2ban
Dopo aver apportato le modifiche alla configurazione, arrestare e avviare il demone Fail2ban come mostrato di seguito.
# /etc/init.d/fail2ban stop # /etc/init.d/fail2ban start