guía

Cómo instalar y configurar Fail2Ban.

por Lógico (@LogicoDev)

En esta guía te enseñamos a instalar y configurar esta herramienta para mejorar la seguridad de nuestros servidores.

PUBLICADO 12:00
19.10.2019
Imágen de portada

Mantener los servidores protegidos es una tarea de monitoreo y atención constante. Mantener el sistema actualizado, revisión de puertos abiertos y logs del sistema. En este último punto, Fail2ban nos permite automatizar la navegación entre los logs para detectar intentos de ingresos no autorizados al server y tomar acciones para mitigarlos.

La premisa de fail2ban es simple: automáticamente revisa los registros de acceso y si se repiten una cantidad de intentos fallidos de conexión, se bloquea la dirección de IP por un período de tiempo. La cantidad de tiempo e intentos son controlados por nosotros mediante un archivo de configuración. Cabe destacar que si bien este programa ayuda a asegurar nuestro servidor no elimina todos los riesgos.

Instalar fail2ban.

Para instalarlo en Ubuntu y Debian ejecutar como root

apt-get install fail2ban

Si tu servidor es CentOS o Fedora, vas a necesitar tener instalado el repositorio EPEL (Extra Packages for Enterprise Linux). Podés ver la guía acá. Una vez instalado ejecutar como root

yum install fail2ban

Configurar fail2ban.

Una vez instalado, lo primero que hay que hacer es copiar la configuración base que se encuentra en el archivo /etc/fail2ban/jail.conf. Nota: si utilizas VestaCP cómo panel de control es muy posible que ya esté preconfigurado. Puedes verlo en https://tuserver:puerto_vesta/edit/server/fail2ban/.

Copiar configuración básica

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ahora vamos a editar el archivo de configuración de fail2ban

vi /etc/fail2ban/jail.conf 
# o usando nano
nano /etc/fail2ban/jail.conf 

Lo que tenemos que editar es la sección [DEFAULT]

  • ignoreip: Es la lista blanca de IPs que no van a ser analizadas ni bloqueadas. Pueden ser direcciones IP o nombre de dominio separados por , (comas).
  • bantime: El tiempo en segundos que van a ser bloqueadas las conexiones.
  • maxretry: La cantidad de rechazos que son aceptados antes de ser baneados.
  • findtime: El período de tiempo en el que se realizan los intentos (maxretry) fallidos.

Una vez configurado, guardamos y reiniciamos el servicio para aplicar las nuevas configuraciones.

service fail2ban restart

Acá dejamos la configuración por defecto de VestaCP para tener cómo referencia

[ssh-iptables]
enabled  = true
filter   = sshd
action   = vesta[name=SSH]
logpath  = /var/log/secure
maxretry = 5

[vsftpd-iptables]
enabled  = false
filter   = vsftpd
action   = vesta[name=FTP]
logpath  = /var/log/vsftpd.log
maxretry = 5

[exim-iptables]
enabled = true
filter  = exim
action  = vesta[name=MAIL]
logpath = /var/log/exim/main.log

[dovecot-iptables]
enabled = true
filter  = dovecot
action  = vesta[name=MAIL]
logpath = /var/log/dovecot.log

[mysqld-iptables]
enabled  = false
filter   = mysqld-auth
action   = vesta[name=DB]
logpath  = /var/log/mysqld.log
maxretry = 5

[vesta-iptables]
enabled = true
filter  = vesta
action  = vesta[name=VESTA]
logpath = /var/log/vesta/auth.log
maxretry = 5

Portada.

unsplash-logoJohn Moeses Bauan


Comentarios