Aggiungiamo il filtro asterisk in fail2ban

Come promesso eccovi in questo articolo dove parlo di fail2ban, eccovi la mia regola per bloccare i tentativi di utilizzo imporprio del vostro asterisk per usare i vostri provider SIP.
Per prima cosa, se non vi serve l’accesso dall’esterno al vostro asterisk, non fatelo 😀 che vivrete meglio, dato che degli attacchi sono sempre più comuni.

Ho preso un filtro preesitente e lo modificato inserendo le failregex adeguate, io sono partito da postfix
Verificando il chan_sip.c ho notato che tutti i fail sono composti cosi (le mie regole sono per 1.4 potrebbero differire dalla 1.6, quando passero ad asterisk 1.6 o ad asterisk 1.8 le modifichero)

Registration from ‘%s’ failed for ‘%s’ – %s
Failed to authenticate user %s for SUBSCRIBE

# Fail2Ban file di configurazione
#
#
# $Revision: 1 $
#

[Definition]

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P\S+)
# Values:  TEXT
#

failregex = NOTICE.* .*: Registration from '.*' failed for '' - .*
            NOTICE.* .*: Failed to authenticate user .*@.*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

Questo file lo salvo in /etc/fail2ban/filter.d/asterisk.conf

Ora modifico il file jail.conf aggiungendo il blocco seguente
Ho settato il ban time ad 1 ora sono buono 😀

[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables[name=ASTERISK, port=5060, protocol=udp]
           sendmail-whois[name=ASTERISK, dest=ILTUOEMAIL, sender=fail2ban@ILTUODOMINIO]
logpath  = /var/log/asterisk/full
bantime = 3600
maxretry = 5

La linea

           sendmail-whois[name=ASTERISK, dest=ILTUOEMAIL, sender=fail2ban@ILTUODOMINIO]

è facoltativa

Modifichiamo il log di asterisk /etc/asterisk/logger.conf
In general assicuriamoci che la linea dateformat non sia commentata

 [general]
 dateformat=%F %T

Nella sezione logfiles, che la linea full non sia commentata

full => notice,warning,error

Entriamo nella console di asterisk e ricarichiamo il logger
logger reload

Infine ricarichiamo le regole in fail2ban

failban-client reload

Leave a Reply

Your email address will not be published. Required fields are marked *