Torino ITA)
+39 01119115797
info@netpic.it

NAGIOS: controllo della banda e del fail2ban

NAGIOS: controllo della banda e del fail2ban

Il monitoraggio dei sistemi è diventato una pratica essenziale per qualsiasi azienda che fornisca servizi in ambito IT. Avere strumenti che controllino lo stato dei servizi e delle reti dei clienti, permette di prevenire guasti e può anticipare anche tentativi di intrusione.

Siccome questo strumento che esegue svariati tipi di controlli locali e remoti è largamente utilizzato e documentato sul web, concentriamoci su una sua particolarità, ovvero la possibilità di monitorare remotamente lo stato di sistemi server per quel che riguarda i tentativi di attacco ed il consumo della banda.

Prerequisiti

Per prima cosa  è necessario installare sul client che vogliamo proteggere questi due servizi:

Installiamo fail2ban

E’ un servizio che protegge il nostro sistema dagli attacchi brute force 

# apt install fail2ban

Installiamo portsentry

E’ un servizio che controlla tentativi di portscan al nostro sistema e che normalmente precedono i tentavi di attacchi brute force

# apt install portsentry 
# touch /var/lib/portsentry/portsentry.history

Configuriamo fail2ban con le jail desiderate

# pico /etc/fail2ban/jail.conf
[sshd]
port = ssh
logpath = %(sshd_log)s
[recidive]
logpath = /var/log/fail2ban.log
banaction = iptables-allports
bantime = 604800 ; 1 week
findtime = 86400 ; 1 day
maxretry = 5
[portsentry] enabled = true log
path = /var/lib/portsentry/portsentry.history 
maxretry = 1
# pico /etc/fail2ban/jail.d/defaults-debian.conf
[sshd]
enabled = true
[recidive]
enabled = true
[portsenty]
enabled = true

Riavviamo, fail2ban

# systemctl reload fail2ban

Cosa ci serve avere sul sistema che vogliamo monitorare?

Un server con Nagios installato ed in grado di eseguire comandi NRPE (Nagios Remote Plugin Executor). Questo comodo plugin permette ad un server di collegarsi ad un host, previa autorizzazione, e ottenere in tempo reale lo stato di risorse e servizi.

Invece sul client da monitorare per prima cosa, dobbiamo installare il nagios-nrpe-server (server Remote Plugin Executor per Nagios):

# apr install nagios-nrpe-server nagios-nrpe-plugin 

Successivamente dobbiamo installare nella directory /usr/lib/nagios/plugins, i due i plugin necessari per effettuare il monitoraggio della risorsa locale, questi plugin sono check_eth e check_fail2ban

A questo punto possiamo editare il file nrpe.cfg

# nano /etc/nagios/nrpe.cfg

allowed_hosts=127.0.0.1,::1, X.Y.Z.K

Controlli di default
command[check_users]=/usr/lib/nagios/plugins/check_users -w 5 -c 10
command[check_load]=/usr/lib/nagios/plugins/check_load -r -w .15,.10,.05 -c .30,.25,.20
command[check_hda1]=/usr/lib/nagios/plugins/check_disk -w 20% -c 10% -p /dev/hda1
command[check_zombie_procs]=/usr/lib/nagios/plugins/check_procs -w 5 -c 10 -s Z
command[check_total_procs]=/usr/lib/nagios/plugins/check_procs -w 150 -c 200

Quelli che aggiungiamo noi.
command[check_bandwidth]=/usr/lib/nagios/plugins/check_eth -i eth0 -w 5024K Bps -c 10048K Bps
command[check_fail2ban]=/usr/lib/nagios/plugins/check_fail2ban.sh -w 10 -c 20

Possiamo riavviare il servizio per rendere efficaci le modifche:

# systemctl reload nagios-nrpe-server 

Attenzione!!

  • Può essere utile testare il funzionamento locale dei plugin per verificare configurazioni ed eventuali dipendenze dei moduli Perl necessarie
  • Spesso l’esecuzione del check_fail2ban può presentare problemi di permessi per l’esecuzione remota, ecco una soluzione per risolvere:

Lanciare questo comando per impostare le corrette permissions al file di socket del fail2ban.

# setfacl -m u:nagios:rwx /var/run/fail2ban/fail2ban.sock

Aggiungere questi comandi al file sudoers che permette a nagios di avere le autorizzazioni per eseguire il check

# pico /etc/sudoers

# User alias specification
nagios ALL=NOPASSWD:/usr/bin/fail2ban-client
nagios ALL=NOPASSWD:/usr/bin/fail2ban-server
nagios ALL=NOPASSWD:/usr/share/fail2ban
nagios ALL=NOPASSWD:/usr/lib/nagios/plugins/check_fail2ban.sh

A questo punto, attendendo il giusto tempo per l’esecuzione del check dovremmo avere il risultato in tempo reale sul nostro pannello di controllo del Nagios Server ed eventualmente i warning (via mail) se impostati.

E’ davvero importante far notare come il crescere degli IP bannati ci dia immediatamente un segnale di attacco ai nostri sistemi, allo stesso modo l’aumento oltre i valori normalmente utilizzati della banda dal sistema, ci offre un importantissimo parametro sul suo stato di “salute”.