Mantener seguros nuestros servidores es lo primordial, y más cuando hablamos de servidores de telefonía IP. En esta oportunidad vamos a configurar Fail2ban en un servidor CentOS 7 de 64 bits.
Fail2ban es una aplicación escrita en Python que previene conexiones no deseadas en nuestros servidores: penaliza o bloquea cualquier intento de conexión por fuerza bruta. Se distribuye bajo licencia GNU.
Vamos a instalar Fail2ban para luego configurarlo.
1. Descargar Fail2ban
cd /usr/src
wget https://github.com/fail2ban/fail2ban/archive/0.9.6.tar.gz
Descomprimimos el paquete:
tar -xf 0.9.6.tar.gz
Entramos en la carpeta creada:
cd fail2ban-0.9.6
Y comenzamos la instalación:
python setup.py install
2. Activar Fail2ban como servicio
cp files/fail2ban.service /usr/lib/systemd/system/
cp /usr/src/fail2ban-0.9.6/files/redhat-initd /etc/init.d/fail2ban
chkconfig --add fail2ban
chkconfig fail2ban on
cd /etc/fail2ban/filter.d
systemctl enable fail2ban
Created symlink from /etc/systemd/system/multi-user.target.wants/fail2ban.service to /usr/lib/systemd/system/fail2ban.service.
3. Configuración general de Fail2ban
cd /etc/fail2ban
nano jail.conf
Al final del archivo debemos copiar las siguientes líneas:
[asterisk-fail2ban]
enabled = true
filter = asterisk
action = iptables-allports[name=ASTERISK, protocol=all]
sendmail-whois[name=ASTERISK, dest=root@localhost, sender=fail2ban@192.168.1.2]
logpath = /var/log/asterisk/security
maxretry = 5
bantime = 3600
En las líneas copiadas debemos cambiar root@localhost por el correo donde recibiremos las notificaciones de conexiones bloqueadas, y fail2ban@192.168.1.2 por la cuenta de correo que usaremos para enviar los emails (Fail2ban trabaja con Sendmail).
En maxretry y bantime podemos ajustar los valores a lo que creamos conveniente:
- maxretry: cantidad de intentos fallidos que vamos a permitir.
- bantime: tiempo, en segundos, durante el que se bloqueará la IP desde donde se realizaron los intentos.
4. Configurar los registros de Asterisk
Ahora debemos modificar el archivo de registro de Asterisk:
nano /etc/asterisk/logger.conf
Buscamos esta línea:
;security => security
Y la modificamos para que quede así:
security => security,notice
Guardamos el archivo y reiniciamos nuestro servicio Asterisk:
service asterisk restart
5. Ajustar iptables-common.conf
Por último modificamos este archivo:
nano +59 /etc/fail2ban/action.d/iptables-common.conf
Debemos modificar esta línea:
lockingopt = -w
Para que quede de la siguiente forma:
lockingopt =
Guardamos los cambios e iniciamos el servicio Fail2ban:
/etc/init.d/fail2ban start
Iniciando fail2ban: [ OK ]
Probar la configuración
Para comprobar que Fail2ban está bien configurado podemos probar con algún softphone realizando intentos con una contraseña equivocada: veremos que, después de 5 intentos, la dirección IP queda bloqueada.