Proteger Centrales VoIP basadas en Asterisk contra ataques de fuerza bruta usando BFD

Proteger Centrales VoIP basadas en Asterisk contra ataques de fuerza bruta usando BFD

Este procedimiento busca defender a las centrales telefónicas VoIP basadas en Asterisk de ataques de fuerza bruta a través de conexiones SIP e IAX.

Lo que hace es crear diversas reglas para la aplicación de seguridad BFD (que debe haber sido previamente instalada junto con el Firewall APF) y revisar los logins fallidos en el archivo de log  /var/log/asterisk/full para bloquear dichas IPs.  El nivel de TRIG se ha colocado bajo por lo que podemos cambiarlo si así lo deseamos.

Para esto debemos ejecutar:

cd /usr/local/bfd/rules/

1. Regla para SIP cuando las contraseñas son incorrectas:

nano asterisksip

Colocar el siguiente código:

# failed logins from a single address before ban
# uncomment to override conf.bfd trig value
TRIG="5"

# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.sip"
TMP="/usr/local/bfd/tmp"
## ASTERISK: SIP wrong password
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "wrong password" | grep chan_sip | awk '{NF=NF-3} {print $NF}'| tr -d '\'\' `
fi

Guardar y Salir

2. Regla para SIP cuando las extensiones están incorrectas o no existen:

nano asterisksip2

Colocar el siguiente código:

# failed logins from a single address before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.sip2"
TMP="/usr/local/bfd/tmp"
## ASTERISK: SIP no extension
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "No matching peer found" | grep chan_sip | awk '{NF=NF-5} {print $NF}'| tr -d '\'\' `
fi

Guardar y Salir

3. Regla para IAX:

nano asteriskiax

Colocar el siguiente código:

# failed logins from a single address before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active

REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.iax"
TMP="/usr/local/bfd/tmp"
## ASTERISK: IAX2 auth failed
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "failed MD5 authentication" | grep chan_iax2 | awk '{NF=NF-8} {print $NF}'`
fi

Guardar y Salir

4. Regla para transmisión de paquetes indebidos:

nano -w asteriskpacket

Colocar el siguiente código:

# transmission error of packets not permitted
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.packet"
TMP="/usr/local/bfd/tmp"
## ASTERISK: Transmission error of Packet - operation not permitted
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "RTP Transmission error of packet" | grep "Operation not permitted" | awk '{NF=NF-3} {print $NF}'  | awk 'BEGIN { FS = ":" } ; { print $1 }'`
fi

Guardar y Salir

5. Regla por errores en los nombres de usuarios

nano -w asteriskuser

Colocar el siguiente código:

# failed Username/auth name mismatch before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.user"
TMP="/usr/local/bfd/tmp"
## ASTERISK: Registration from - Username/auth name mismatch
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "Registration from" | grep "Username/auth name mismatch" | awk '{NF=NF-4} {print $NF}' | tr -d '\'\'`
fi

Guardar y Salir

6. Regla por falla en ACL de dispositivos

nano -w asteriskacl

Colocar el siguiente código:

# failed Device does not match ACL before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.acl"
TMP="/usr/local/bfd/tmp"
## ASTERISK: Registration from - Device does not match ACL
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "Registration from" | grep "Device does not match ACL" | awk '{NF=NF-6} {print $NF}' | tr -d '\'\'`
fi

Guardar y Salir

7. Regla por falla de autenticación

nano -w asteriskhost

Colocar el siguiente código:

# Host failed to authenticate as, before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.host"
TMP="/usr/local/bfd/tmp"
## ASTERISK: Host - failed to authenticate as
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "Host" | grep "failed to authenticate as" | awk '{NF=NF-5} {print $NF}'`
fi

Guardar y Salir

8. Regla por Peer sin registro

nano -w asteriskpeer

Colocar el siguiente código:

# failed registration for peer before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.peer"
TMP="/usr/local/bfd/tmp"
## ASTERISK: No registration for peer
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "chan_iax2" | grep "No registration for peer" | awk '{NF} {print $NF}' | awk 'BEGIN { FS = ")" } ; { print $1 }' `
fi

Guardar y Salir

9. Falla de autenticación de usuario SIP

nano -w asterisksip3

Colocar el siguiente código:

# failed logins from a single address before ban
# uncomment to override conf.bfd trig value
TRIG="5"
# file must exist for rule to be active
REQ="/usr/sbin/asterisk"
if [ -f "$REQ" ]
then
LP="/var/log/asterisk/full"
TLOG_TF="asterisk.sip3"
TMP="/usr/local/bfd/tmp"
## ASTERISK: Sip Failed to authenticate user
ARG_VAL=`$TLOG_PATH $LP $TLOG_TF | grep -i "chan_sip" | grep "Failed to authenticate user" | awk '{NF} {print $NF}' | awk 'BEGIN { FS = "@" } ; { print $2 }' | awk 'BEGIN { FS = ">" } ; { print $1 }'`
fi

Guardar y Salir

VN:F [1.9.22_1171]
Rating: 8.5/10 (2 votes cast)
VN:F [1.9.22_1171]
Rating: +1 (from 1 vote)
Proteger Centrales VoIP basadas en Asterisk contra ataques de fuerza bruta usando BFD, 8.5 out of 10 based on 2 ratings
Daniel Rodriguez

Acerca del Autor: Daniel Rodriguez C.

Consultor Senior de Soluciones de Negocios en Internet, Desarrollo y Diseño Web, SysAdmin, Gerencia de Proyectos, Ventas, Mercadeo con más de 25 años de experiencia en empresas de tecnología.

Deje un mensaje

Por favor llene el siguiente formulario.

Usted puede usar las siguientes etiquetas HTML y atributos: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.