Lo primero es instalarlo
EN centos serial algo como esto
yum -y install fail2ban
Si tienen debian o ubuntu
aptitude install fail2ban
Luego hay que mostrarle al fail2ban donde se generan las estadisiticas del asterisk y como las va a tratar esto se hace en el archivo /etc/fail2ban/jail.conf
# FAIL2BAN ASTERISK
[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=MIDIRECCIONDEEMAIL@EXAMPLE.COM, sender=fail2ban@example.com]
logpath = /var/log/asterisk/full
maxretry = 40
bantime = 12960
El parámetro "bantime" esta en segundos, en este ejemplo he puesto que bloquee las IP que intentan atacar por 36 horas
El parametro "maxretry" es el numero de intentos fallidos antes de bloquear la ip aqui ustedes ponen lo que ustedes crean conveniente
Para que fail2ban pueda ubicarse en el log de Asterisk debemos cambiar el formato de hora y fecha. Eso lo hacemos editando el archivo /etc/asterisk/logger.conf y poniendo al inicio del archivo las siguientes lineas:
[general]
dateformat=%F %T
Y debajo de [logfiles] la siguiente linea
fail2ban => notice
Luego debemos reiniciar el modulo de logger de asterisk de la siguiente manera asterisk -rx "logger reload" con esto ya hemos termiando con asterisk
Ahora debemos crear el archivo asterisk.conf que es el que usara fail2ban para los bloqueos en la sigueitne ruta /etc/fail2ban/filter.d/ aqui les pongo el contenido del mismo
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#
[INCLUDES]
# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf
[Definition]
#_daemon = asterisk
# 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 "
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6}:)?(?P
# Values: TEXT
#
failregex = NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.* .*: Registration from '.*' failed for '
NOTICE.*
NOTICE.* .*: No registration for peer '.*' \(from
NOTICE.* .*: Host
NOTICE.* .*: Failed to authenticate user .*@
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.
# Values: TEXT
#
ignoreregex =
Ahora solo nos queda aplicar los cambios en el fail2ban con el comando /etc/init.d/fail2ban restart y listo ya tenemos nuestro asterisk un poco mas seguro.