Você está na página 1de 5

Seguridad

fail2ban

en

Asterisk

con

Actualmente es muy comn encontrar sistemas de telefona ip basados en asterisk en las


empresas, estos sistemas tienen grandes ventajas como ahorro en costos, en telfonos,
permite mayor escalabilidad, y otras ventajas. Pero como todo sistema nada puede ser
perfecto, los servidores asterisk son muy utilizados tambin por hackers y compaias que
utilizan estos servicios para realizar llamadas a mltiples destinos desde nuestro PBX.
Existen varias herramientas que permiten escanear servicios SIP y mostrarnos las
extensiones y contraseas configuradas, con esto registrar extensiones y realizar
llamadas.
Hoy veremos como asegurar nuestros servidores Asterisk con una herramienta llamada
Fail2Ban, la cual crea reglas de iptables dependiendo de la conexiones y comportamientos
que se registren en los logs de nuestros servicios.
Instalacin Debian/Ubuntu
apt-get install python iptables fail2ban
Instalacin CentOS
Primero instalaremos python e iptables
yum install python iptables
Nos ubicamos en la carpeta /usr/src/
cd /usr/src/
Descargamos, Desempaquetamos e instalamos Fail2Ban
wget
http://ufpr.dl.sourceforge.net/project/fail2ban/fail2ban-stable/fail2ban-0.8.4/fail2ban0.8.4.tar.bz2
tar -xjf fail2ban-0.8.4.tar.bz2
cd fail2ban-0.8.4
python setup.py install
Instalamos el script para que funcione como un servicio y le damos permisos para su
ejecucin
cp /usr/src/fail2ban-0.8.4/files/redhat-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban
Configuracin

Ahora

ingresamos

la

carpeta

de

archivos

para

los

filtros

de

Fail2Ban

cd /etc/fail2ban/filter.d
Creamos el archivo asterisk.conf
vi asterisk.conf
Pegamos en el archivo la siguiente informacin
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#
# 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 <HOST> can
# be used for standard IP/hostname matching and is only an alias for
# (?:::f{4,6} ?(?P<host>S+)
# Values: TEXT
#
failregex = NOTICE.* .*: Registration from .* failed for <HOST> Wrong password
NOTICE.* .*: Registration from .* failed for <HOST> No matching peer found
NOTICE.* .*: Registration from .* failed for <HOST> Username/auth name mismatch
NOTICE.* .*: Registration from .* failed for <HOST> Device does not match ACL
NOTICE.* .*: Registration from .* .* failed for <HOST> Peer is not supposed to register
NOTICE.* .*: <HOST> failed to authenticate as .*$
NOTICE.* .*: No registration for peer .* (from <HOST>
NOTICE.* .*: Host <HOST> failed MD5 authentication for .* (.*)
NOTICE.* .*: Failed to authenticate user .*@<HOST>.*
# Option: ignoreregex
# Notes.: regex to ignore. If this regex matches, the line is ignored.

# Values: TEXT
#
ignoreregex

Ahora editamos el archivo jail.conf (archivo de configuracin de Fail2Ban)


cd /etc/fail2ban/
vi jail.conf
Colocamos la siguiente informacin:
[asterisk-iptables]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK,dest=root@localhost, sender=fail2ban@pbx.dyndns.org]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 1800
En la parte inicial de este archivo de configuracin es importante que coloquemos nuestra
direccin ip para que no nos bloquee el fail2ban, en el campo default bscamos el
parmetro ignoreip y all colocamos nuestras direcciones ip separadas por espacios. La
siguiente imgen sirve de ejemplo:

Ahora editamos el archivo logger.conf de asterisk


vi /etc/asterisk/logger.conf
Agregamos la siguiente informacin
dateformat=%F %T
Verificamos que el campo messages tenga el parmetro notice.
luego de ejecutar estos dos pasos debe quedar algo como esto:

Para que Asterisk tome los cambios ejecutamos:


asterisk -rx logger reload
Iniciamos los servicios iptables y fail2ban
/etc/init.d/iptables start
/etc/init.d/fail2ban start
Probando el funcionamiento:
Para las pruebas he configurado un softphone con una extensin iax y un password
cualquiera.

Al verificar los logs del /var/log/asterisk/messages, aparecieron estos registros:


[2010-09-30 11:59:04] NOTICE[2935] chan_iax2.c: No registration for peer 1005 (from
186.80.111.59)
[2010-09-30 11:59:04] NOTICE[2940] chan_iax2.c: No registration for peer 1005 (from
186.80.111.59)
[2010-09-30 11:59:07] NOTICE[2934] chan_iax2.c: No registration for peer 1005 (from
186.80.111.59)
Con estos datos Fail2Ban se encarga de crear las reglas de iptables, como podemos ver
luego de realizar 3 conexiones fallidas a nuestra PBX, se cra una regla de Iptables que
Banea la ip desde donde se realiz la prueba.
iptables L

iptables-asterisk
Bueno, como vemos Fail2Ban es una herramienta de gran ayuda para proteger nuestros
servidores asterisk, prximamente veremos nuevas formas de asegurar nuestros
servidores

de

telefona

Fuente http://www.fenixsolutions.com.ar/telefonia/asterisk/seguridad-en-asterisk-confail2ban/

http://www.fenixsolutions.com.ar/

ip.

Você também pode gostar