martes, 18 de enero de 2011

Seguridad en asterisk fail2ban

los servidores asterisk son muy atacados en estos días por eso hay que tratar de tenerlos lo mas seguro que se pueda una buena manera de contribuir a eso es con el fail2ban es un software que banea las ip que hacen intento fallidos por entrar el sistema bueno aqui les pongo un pequeño ejemplo de como se puede usar en un asterisk.

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 "" 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 '' - Wrong password
NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch
NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register
NOTICE.* failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' \(from \)
NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
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.

No hay comentarios:

Publicar un comentario