Fail2Ban: Proteggersi dagli attacchi di forza bruta

Fail2Ban è un software che analizza i file di log del server, relativi ai servizi attivi (es. FTP, SSH, etc.) e banna gli IP dai quali si sono effettuati un numero massimo consentito di login che non sono andati a buon fine.

A cosa serve? protegge i nostri server da attacchi di forza bruta.

Per installare fail2ban:
apt-get install fail2ban

Una volta installato andiamo a configurarlo attraverso il file:
/etc/fail2ban/jail.conf

in questo file troviamo la sezione [DEFAULT]attraverso la quale possiamo modificare le impostazioni generali di fail2ban. 

[DEFAULT]
# configurazione generale
ignoreip = 127.0.0.1 192.168.3.0/24
bantime = 600
maxretry = 3
backend = polling
destemail = root@localhost
banaction = iptables-multiport
mta = sendmail
protocol = tcp
# template di azioni da intraprendere
action_ = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
action_mw = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois[name=%(__name__)s, dest="%(destemail)s", protocol="%(protocol)s]
action_mwl = %(banaction)s[name=%(__name__)s, port="%(port)s", protocol="%(protocol)s]
%(mta)s-whois-lines[name=%(__name__)s, dest="%(destemail)s", logpath=%(logpath)s]
# indico quale azione intraprendere da uno dei template di azioni descritte sopra
action = %(action_)s
Nell'esempio riportato ho suddiviso la sezione [DEFAULT] con commenti. La prima parte riguarda la configurazione generale che descrivo di seguito:
  • attraverso ignoreip possiamo specificare gli indirizzi ip che devono essere ignorati. Nell'esempio si ignorano i tentativi falliti di login provenienti da localhost e dalla rete 192.168.1.0 
  • bantime indica il tempo in secondi per cui l'ip che ha effettuato login non andati a buon fine deve essere bannato. Nell'esempio il ban dura 10 minuti
  • maxretry indica il numero massimo di tentativi falliti prima di bannare l'ip. Nell'esempio il numero massimo di tentativi consentiti è 3
  • backend metodo usato per intercettare le modifiche sui file di log
  • destemail indica a quale indirizzo devono essere inviate le notifiche generate da fail2ban
  • banaction
  • mta
  • protocol
Sempre nella sezione [DEFAULT] troviamo di seguito una serie di "template" di azioni predefinite che possiamo selezionare andando ad impostarne il valore nella variabile action:
  • l'azione action_  si limita a bannare solamente l'ip selezionato
  • l'azione action_mw banna l'ip e invia notifica via mail
  • l'azione action_mwl banna l'ip e invia notifica via mail includendo le righe di log interessate
Nell'esempio l'action prescelta è action_ indicata attraveso:

action = %(action_)s

dove possiamo modificare action_ in action_mw o action_mwl per l'invio delle notifiche.

Definito il comportamento generale possiamo andare ad indicare quali servizi devono essere tenuti sotto controllo. Ciò viene fatto attraverso la definizione dei jail (prigioni) che sono indicate da altre sezioni, che seguono la sezione [DEFAULT] ed avranno, di base, la struttura riportata di seguito:

[NOME_SEZIONE]
enabled = true | false
port = porta
filter = cosa filtrare nel log
logpath = path del log da analizzare
Anche se possiamo definirne di nuove, nel file di configurazione si troveranno già tutte le jail che ci occorrono e basterà solo abilitare quelle che ci interessano mettendo enabled a true

TO BE CONTINUED ...

Riferimenti

0 commenti:

Posta un commento

Lettori fissi

 
DISCLAIMER: Questo blog non costituisce una testata giornalistica. Non ha carattere periodico ed è aggiornato secondo la disponibilità e la reperibilità dei materiali. Pertanto non può essere considerato in alcun modo un prodotto editoriale ai sensi della Legge. n. 62 del 2001.
COPYRIGHT: Tutti i diritti sui testi/contenuti presenti su questo blog sono di proprietà dell'autore. Per utilizzare il materiale contattarmi all'indirizzo: nevit76@gmail.com