Instalar Fail2ban en CentOS, Fedora, y derivados

Instalar Fail2ban en CentOS, Fedora, y derivados.

Fail2ban es la herramienta de prevención de intrusiones por excelencia. De código abierto y totalmente configurable es la más utilizada en servidores y sistemas en red a nivel mundial.

Su forma de operar es bastante simple, ya que tan solo escanea los archivos de registro buscando direcciones IP con síntomas maliciosos, por ejemplo demasiados errores al introducir la contraseña.

Al detectar un dirección ip que incumple con su configuración, automáticamente actualiza las reglas del firewall (normalmente iptables o nftables) de manera que sea rechazada. Por defecto, ya viene con filtros preconfigurados para los servicios más comunes, incluido sshd.

En este artículo, vemos cómo instalar y configurar fail2ban en nuestro servidor o VPS. En este articulo usamos como plataforma un CentOS 8 minimal que hemos instalado con netinstall.

 

Instalar Fail2ban en CentOS o Fedora

El paquete fail2ban no está en los repositorios oficiales pero si en el repositorio EPEL, así que lo habilitamos.

Ahora instalamos Fail2ban.

Instalar Fail2ban

Instalar Fail2ban

 

Configurar Fail2ban

Bien, una vez instalado vamos a configurar fail2ban. Los archivos de configuración los puedes localizar en /etc/fail2ban/, y los filtros en /etc/fail2ban/filter.d/. También tenemos el archivo de configuración general en /etc/fail2ban/jail.conf, pero no te recomiendo que pierdas el tiempo con el, mejor filtro por filtro ya que cada servicio requiere de su propia seguridad.

Lo que te recomiendo encarecidamente es crear un archivo llamado jail.local, y definir o configurar los filtros que necesites. Por ejemplo:

Ejemplo de jails de un servidor web en producción.

[DEFAULT]
ignoreip = 127.0.0.1/8
destemail = webmaster@midominio.es
bantime = 21600
maxretry = 2
findtime = 600

[apache]
maxretry = 4
enabled = true
logpath = /var/www/vhosts/system/*/logs/error_log
/var/log/httpd/*error_log
action = iptables-multiport[name=apache, port=»http,https,7080,7081"]

[a[apache-badbot]em>
enabled = true
action = iptables-multiport[n[name=BadBots, port=»http,https,7080,7081"]em>
logpath = /var/www/vhosts/system/*/logs/*access*log
/var/log/httpd/*access_log

[dov[dovecot]>
enabled = true
action = iptables-multiport[nam[name=»plesk-dovecot», port=»imap,imap3,imaps,pop3,pop3s,4190"]>

[postf[postfix]/span>
enabled = true
action = iptables-multiport[name=[name=»plesk-postfix», port=»smtp,smtps,submission»]/span>

[proft[proftpd]/span>
maxretry = 1
enabled = true
action = iptables-multiport[name=[name=»plesk-proftpd», port=»ftp,ftp-data,ftps,ftps-data»]/span>

[round[roundcube]/span>
enabled = true
action = iptables-multiport[name=[name=»roundcube», port=»http,https,7080,7081"]/span>

[wordpre[wordpress]pan>
enabled = true
logpath = /var/www/vhosts/system/*/logs/*access*log
/var/log/httpd/*access_log
action = iptables-multiport[name=»[name=»plesk-wordpress», port=»http,https,7080,7081"]pan>

[ssh][ssh]n>
enabled = true
action = iptables[name=SSH,[name=SSH, port=ssh, protocol=tcp]n>

Guarda el archivo y cierra el editor.

Iniciamos fail2ban y lo habilitamos para que inicie con el sistema.

6 Comentarios

  1. Marcelo Olcese
    17/10/2019
  2. Fco Jesus
    17/10/2019
    • sololinux
      17/10/2019
      • Fco Jesus
        21/10/2019
        • sololinux
          21/10/2019
  3. Carlos Nunes
    17/10/2019

Agregar comentario