Fail2Ban para centrales telefónicas
Fail2Ban es una aplicación escrita en Phyton para la prevención de intrusos a un sistema, actúa penalizando (baneando) las conexiones remotas que intentan ingresar a los puertos de nuestro equipo mediante el método de fuerza bruta.
Fail2Ban lee en los registros del sistema o logs, para evaluar los intentos de conexiones maliciosas. Para nuestra explicación le vamos a llamar a este proceso, el PULPO QUE LEE.
Tan pronto el PULPO QUE LEE encuentra intentos de autenticación no deseados (intentos exagerados) entendiendo que es un ataque de fuerza bruta, le notifica a su hermano, EL PULPO QUE ATACA que hay un posible intruso a la casa. Desde que conocen la IP origen del ataque, se coloca en una lista negra por un tiempo definido. Así se ve el PULPO QUE ATACA.
La aplicación Fail2ban se utiliza en Linux.
Existe un archivo llamado jails.conf en /etc/fail2ban donde configuramos varios parámetros importantes para la detección del intruso. El concepto utilizado para determinar el ataque es llamado Jail (cárcel). Dentro del Jail configuramos, puerto a evaluar, ubicación de los logs, filtro a aplicar para considerar un ataque, cantidad de intentos permitidos, tiempo de baneo y otros menos importantes.
Para el protocolo SSH (Secure Shell) utilizamos el puerto 22, logs ubicados en /var/log/secure, intentos permitidos 5, tiempo de baneo 86000 segundos.
En Issabel, una distribución de voz sobre IP opensource, tenemos Fail2Ban instalado por defecto desde hace unas cuentas versiones atrás. Para trabajar Fail2Ban vamos a Security y luego el menú Fail2Ban.
Por defecto tenemos 5 Jails que son asterisk, sshd, postfix, apache y cyrus. Estos jails utilizan puertos específicos para cada servicio. Para asterisk evalúa el 5060 y sus derivados. Tienen un tiempo de baneo de 12 horas y los intentos permitidos son 5.
Podemos editar cada Jail para colocar algunas IPs o segmentos de red completa en el White List, así evitamos Banear nuestras IP en procesos de prueba.
Así se ven las IP baneadas luego de que el atacante ha intentado 5 veces ingresar a los puertos de Asterisk sin la clave correcta. Este baneo estará vigente por 12 horas como mencionamos para evitar que se llenen nuestras tablas de bloqueo en IPTABLES.
Los atacantes regularmente cesan cuando ven que nuestra seguridad es aceptable.
Si deseas saber con mucho más detalles las configuraciones puntuales de esta tecnología, te recomiendo que veas este Webinar.
Webinar complementario
Te recomiendo iniciar en el minuto 39:40.