Clark's Home page

Tecnicismi vari di un Sysadmin Linux ma anche qualcosa della sua vita

fail2ban —

Durante un controllo di routine su una macchina che è su internet ho trovato un auth.log da 689 MB cosa che mi ha subito messo in allarme ovviamente, analizzando il log ho trovato una quantità esagerata di righe di questo tipo

Jun 18 11:00:57 aliseo sshd[5657]: Failed password for root from 95.58.255.xxx port 38980 ssh2
Jun 18 23:08:26 aliseo sshd[5768]: Failed password for root from 91.205.189.xx port 38156 ssh2
Jun 18 23:08:30 aliseo sshd[5770]: Failed password for nobody from 91.205.189.xx port 38556 ssh2

OK... stanno cercando di sfondare la macchina, per il momento non posso mettere l'autenticazione
con certificati su SSH ma non posso neanche lasciare tutto così fidandomi della robustezza della password 
quel che mi serve è fail2ban.
Fail2ban è un software per la prevenzione alle intrusioni scritto nel linguaggio di programmazione Python.
È in grado di girare su sistemi POSIX che hanno un interfaccia ad un sistema di pacchetti di controllo o firewall installato localmente (per esempio, iptables o TCP Wrapper).
La funzione principale di Fail2ban è quella di bloccare gli indirizzi IP selezionati che possono appartenere a host che sta tentando di violare la sicurezza del sistema.
Determina i server che devono essere bloccati da un controllo dei file di log (per esempio  /var/log/auth.log, ecc) e proibisce l’accesso ad ogni host IP che ha troppi tentativi di accesso o esegue altre azioni indesiderate in un arco di tempo definito da SysAdmin.
Il file che ci interessa è /etc/fail2ban/jail.conf, in questo file andiamo ad inserire gli indirizzi da non controllare e attiviamo i servizi da monitorare.
Dopo aver installato il software con apt-get install in /etc/fail2ban modifico il file jail.conf in modo 
che appaia in questo modo 
[ssh]

enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 6
lasciando il default come si trova.
root@aliseo:/etc/fail2ban# /etc/init.d/fail2ban restart
[ ok ] Restarting authentication failure monitor: fail2ban.
root@aliseo:/etc/fail2ban# 
Con un iptables -L troveremo una cosa di questo tipo

# iptables -L 

Chain fail2ban-ssh (1 references)
target     prot opt source               destination
DROP       all  --91.205.189.xx  anywhere
questo significa che per 10 minuti l'IP e' in ban e quando la regola scadrà dopo 6 tentativi sarà 
di nuovo messo in condizione di non nuocere.
Fail2ban funziona su diverse porte ma ATTENZIONE se un IP viene bloccato sulla porta SSH può tranquillamente 
continuare l'attacco su altre porte come la web o la FTP.
N.B.
Se nella sezione [DEFAULT] alla voce bantime si mette il valore -1 il ban sarà permanente

 


Categorised as: IDS | Linux | Networking | Work

Comments are disabled on this post


Comments are closed.