InicioInfoSeguridad en Asterisk con fail2ban

Seguridad en Asterisk con fail2ban

Info12/3/2011

Actualmente es muy común encontrar sistemas de telefonía ip basados en asterisk en las empresas, estos sistemas tienen grandes ventajas como ahorro en costos, en teléfonos, permite mayor escalabilidad, y otras ventajas. Pero como todo sistema nada puede ser perfecto, los servidores asterisk son muy utilizados también por hackers y compañias que utilizan estos servicios para realizar llamadas a múltiples destinos desde nuestro PBX.

Existen varias herramientas que permiten escanear servicios SIP y mostrarnos las extensiones y contraseñas 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.
Instalación Debian/Ubuntu
apt-get install python iptables fail2ban
Instalación 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/ fail2ban -0.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 ejecución
cp /usr/src/ fail2ban -0.8.4/files/redhat-initd /etc/init.d/fail2ban
chmod 755 /etc/init.d/fail2ban
Configuración

Ahora ingresamos a 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 información

# 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 “<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 configuración de Fail2Ban )
cd /etc/ fail2ban /
vi jail.conf

Colocamos la siguiente información:

[ 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 configuración es importante que coloquemos nuestra dirección ip para que no nos bloquee el fail2ban , en el campo default búscamos el parámetro ignoreip y allí colocamos nuestras direcciones ip separadas por espacios. La siguiente imágen sirve de ejemplo:



Ahora editamos el archivo logger.conf de asterisk
vi /etc/ asterisk /logger.conf

Agregamos la siguiente información
[general]
dateformat=%F %T
Verificamos que el campo messages tenga el parámetro 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 extensión 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 , próximamente veremos nuevas formas de asegurar nuestros servidores de telefonía ip.

Fuente


Datos archivados del Taringa! original
0puntos
50visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
4visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

o
oskr0977🇦🇷
Usuario
Puntos0
Posts9
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.