OPCIONAL: Se prefiere instalar como prevención de fuerza bruta la funcionalidad LFD para los servidores de producción ya que esta integrado al CSF y este al WHM y permite una mejor interacción y manejo de aspectos de seguridad el cPanel/WHM.
Ataque de fuerza bruta
Se denomina “ataque de fuerza bruta” a la forma de obtener una contraseña probando todas las combinaciones posibles hasta encontrar aquella que permite el acceso. Estos intentos múltiples pueden hacerse tanto a nivel de interfaces web como a través de conexiones SSH, FTP, entre otros.
Analizando el registro de eventos de las aplicaciones (archivos logs) para verificar los errores de autenticación (errores de login y contraseñas de acceso), es posible determinar si existen múltiples intentos de violación de usuarios y/o contraseñas.
BFD es un script de consola modular para el análisis de registros de eventos de aplicaciones y comprobación de errores de autenticación. Esto se consigue mediante un sistema de reglas donde se almacenan opciones específicas de aplicaciones incluyendo expresiones regulares para cada formato único auth. Las expresiones regulares se analizan contra los registros de eventos con la herramienta ‘sed’ (editor de secuencias) que permite un rendimiento excelente en todos los entornos. Además de los beneficios del análisis de registros de eventos en secuencias con “sed”, BFD también utiliza un sistema de seguimiento de los registros de eventos para que sólo se analicen los registros desde el último punto leído previamente. Esto ayuda a ampliar enormemente el rendimiento de BFD ya que no estamos leyendo continuamente los mismos registros. El sistema de seguimiento de registros de eventos es compatible con las rotaciones de registros de eventos al estilo de syslog/logrotate que le permite detectar cuando han ocurrido rotaciones y agarrar colas de registros del nuevo archivo de registros y del archivo de registro rotado.
Es posible utilizar al BFD para bloquear atacantes utilizando cualquier número de herramientas tales como el firewall APF, así como, iptables crudas, enrutamiento de ips o ejecutar cualquier comando personalizado. También permite crear un mensaje de correo electrónico completamente personalizable con las alertas del sistema utilizando una sencilla plantilla de correo electrónico editable por el administrador. El seguimiento de atacantes en BFD se administra mediante archivos de texto plano simples, que están controlados en tamaño para evitar las limitaciones de espacio con el tiempo, haciéndolo ideal para dispositivos sin disco. También hay un histórico de ataques que almacena datos de las tendencias de todos los hosts que se han bloqueado, incluyendo qué reglas de bloqueo fueron aplicadas.
El proceso de ejecución es simplemente una tarea de cron que ejecuta el BFD una vez cada 3 minutos en forma predeterminada. El cronjob puede ejecutarse con más frecuencia para aquellos que deseen hacerlo y no provocará ningún problema de rendimiento (no colocar con menos de una vez por minuto). Aunque la ejecución del cron no permite al BFD actuar en tiempo real, el sistema de seguimiento de registros de eventos asegura que nunca se pierda nada en errores de autenticación.
Instalación
Para realizar la instalación de BFD debemos ejecutar:
cd /usr/local/src
wget http://www.rfxn.com/downloads/bfd-current.tar.gz
tar -xvzf bfd-current.tar.gz
cd bfd-1.5-2
Ejecutar el archive de instalación:
./install.sh
Se presentará un mensaje indicando que ha sido instalado con la siguiente información:
BFD installed
Install path: /usr/local/bfd
Config path: /usr/local/bfd/conf.bfd
Executable path: /usr/local/sbin/bfd
Ahora debemos editar la configuración del BFD con:
nano /usr/local/bfd/conf.bfd
Debemos habilitar las Alertas de Fuerza Bruta y configurar el Email:
Buscar:
ALERT_USR="0"
EMAIL_USR="root"
Y cambiar a:
ALERT_USR="1" (EMAIL_ALERTS="1")
EMAIL_USR="hostmaster@sudominio.com" (EMAIL_ADDRESS="hostmaster@sudominio.com")
EMAIL_SUBJECT="ADVERTENCIA: Intento de Ataque de Fuerza Bruta en el servidor $HOSTNAME"
Guardar los cambios (CTRL X, Y, Enter)
Luego debemos prevenir que nos bloquee a nosotros mismos, para ello:
nano -w /usr/local/bfd/ignore.hosts
Colocar nuestras direcciones IP posibles, por ejemplo:
190.199.193.0/255.255.255.0
201.208.115.0/255.255.255.0
200.44.189.0/255.255.255.0
192.168.1.0/255.255.255.0
Guardar los cambios (CTRL X, Y, Enter)
Para ejecutar el programa se debe usar:
/usr/local/sbin/bfd -s
NOTA: Para personalizar la configuración del BFD para aplicaciones específicas se debe revisar el directorio de reglas en:
/usr/local/bfd
Finalmente, para ejecutar el BFD a través de un cron diario debemos ejecutar:
cd /etc/cron.d
nano bfd
Agregar:
MAILTO=
SHELL=/bin/sh
*/10 * * * * root /usr/local/sbin/bfd -q
Salir y Guardar
Cambiar Permisos:
chmod 644 bfd
Reiniciar el servicio de Cron con:
/etc/rc.d/init.d/crond restart
Enlaces a Recursos:
http://www.rfxn.com/appdocs/README.bfd
http://www.rfxn.com/appdocs/CHANGELOG.bfd