Seguridad Fail2band en Elastix

mm.alpha2k

Joined
Jun 19, 2010
Messages
165
Likes
0
Points
0
#1
Le dejo el tutorial para ponerle un granito mas de seguridad al asterisk

Esto nunca lo habia tenido en cuenta hasta que un amigo Rodrigo de Cordoba que nos dio una pequeña explicacion, y demostracion de como funciona el FAIL2BAN en Asterisk.

Fail2ban es un programa que lee los registros (por ejemplo /var/log/asterisk/messages) y si hay un numero determinado de intentos de conexión sin éxito, banea (bloquea) las IP de donde se han originados los intentos interactuando con iptables (cortafuegos).

Algunos ejemplos de intentos de registracion que el fai2ban bloquearia
[Jul 13 12:35:47] NOTICE[4248] chan_sip.c: Registration from '"1696068786"<sip:1696068786@33.42.29.162>' failed for '200.40.29.85' - No matching peer found
[Jul 13 12:35:47] NOTICE[4248] chan_sip.c: Registration from '"995617902"<sip:995617902@33.42.29.162>' failed for '202.32.221.136' - No matching peer found
[Jul 13 15:36:38] NOTICE[4248] chan_sip.c: Registration from '"745981797"<sip:745981797@33.42.29.162>' failed for '72.4.146.76' - No matching peer found
[Jul 19 17:08:33] NOTICE[4248] chan_sip.c: Registration from '"2128566433"

Fail2ban está escrito en Python y para que funcione tenemos que instalar este lenguaje de programación:

yum install python

luego bajamos el programa:

cd /usr/src

wget http://downloads.sourceforge.net/projec ... .4.tar.bz2

lo descomprimimos

tar -xf fail2ban-0.8.4.tar.bz2

entramos en la carpeta

cd fail2ban-0.8.4

y lo instalamos

python setup.py install

ahora instalamos el script para arrancarlo como un servicio (para Centos)

cp /usr/src/fail2ban-0.8.4/files/redhat-initd /etc/init.d/fail2ban

Ahora podemos configurarlo para que lea los registros de Asterisk

cd /etc/fail2ban/filter.d

nano asterisk.conf

y copiamos estas líneas

# 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.* <HOST> failed to authenticate as '.*'$
NOTICE.* .*: No registration for peer '.*' (from <HOST>)
NOTICE.* .*: Host <HOST> failed MD5 authentication for '.*' (.*)

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

con estas líneas le decimos a fail2ban que tiene que controlar eventuales accesos indeseados en el archivo de registro de Asterisk.

Ahora tenemos que modificar el archivo de configuración de fail2ban

cd /etc/fail2ban

nano jail.conf

y añadimos al final del archivo de texto estas líneas

[asterisk-iptables]

enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root@localhost, [email=sender=fail2ban@pbx.dyndns.org]sender=fail2ban@pbx.dyndns.org[/email]]
logpath = /var/log/asterisk/messages
maxretry = 5
bantime = 1800

En la línea en negrita aparece el archivo de registro que fail2ban leerá para averiguar intentos frustrados de conexión a nuestra centralita. En la configuración tenemos que modificar la dirección de correo electrónico. En lugar de root@localhost ponemos la dirección de correo electrónico donde queremos recibir los avisos. Para enviar los correos, fail2ban está configurado con Sendmail

Para que funcione tenemos que modificar la configuración del los archivos de registro de Asterisk:

nano /etc/asterisk/logger.conf

y averiguar que la línea messages tenga el parámetro que aparece en negrita

messages => notice,debug

Terminamos con la configuración del script de arranque:

chkconfig fail2ban on

/etc/init.d/fail2ban start

Starting fail2ban: [ OK ]

Si sale algún error tenemos que revisar la configuración.

Si todo sale ok, vamos a ver si hacemos un 'iptables -vnL' vamos a ver que tenemos algo

Chain fail2ban-ASTERISK (1 references)
pkts bytes target prot opt in out source destination
6687K 527M RETURN all -- * * 0.0.0.0/0 0.0.0.0/0
 

Members online

No members online now.

Latest posts

Forum statistics

Threads
30,902
Messages
130,886
Members
17,563
Latest member
dineshr
Top