Cómo instalar Fail2Ban para proteger SSH en CentOS / RHEL 8
Fail2ban es una herramienta de prevención de intrusiones gratuita, de código abierto y ampliamente utilizada que escanea los archivos de registro en busca de direcciones IP que muestren señales maliciosas, como demasiadas fallas de contraseña, y mucho más, y las prohíbe (actualiza las reglas del firewall para rechazar las direcciones IP) . De forma predeterminada, se envía con filtros para varios servicios, incluido sshd.
En este artículo, explicaremos cómo instalar y configurar fail2ban para proteger SSH y mejorar la seguridad del servidor SSH contra ataques de fuerza bruta en CentOS/RHEL 8.
Instalación de Fail2ban en CentOS / RHEL 8
El paquete fail2ban no está en los repositorios oficiales pero está disponible en el repositorio de EPEL. Después de iniciar sesión en su sistema, acceda a una interfaz de línea de comandos, luego habilite el repositorio EPEL en su sistema como se muestra.
# dnf install epel-release OR # dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Luego, instale el paquete Fail2ban ejecutando el siguiente comando.
# dnf install fail2ban

Configuración de Fail2ban para proteger SSH
Los archivos de configuración de fail2ban se encuentran en el directorio/etc/fail2ban/y los filtros se almacenan en el directorio /etc/fail2ban/filter.d/ (el archivo de filtro para sshd es /etc/fail2ban/filter.d/sshd.conf) .
El archivo de configuración global para el servidor fail2ban es /etc/fail2ban/jail.conf, sin embargo, no se recomienda modificar este archivo directamente, ya que probablemente se sobrescribirá o mejorará en caso de una actualización de paquete en el futuro.
Como alternativa, se recomienda crear y agregar sus configuraciones en un archivo jail.local o archivos .conf
separados en el directorio /etc/fail2ban/jail.d/. Tenga en cuenta que los parámetros de configuración establecidos en jail.local anularán lo que esté definido en jail.conf.
Para este artículo, crearemos un archivo separado llamado jail.local en el directorio/etc/fail2ban/como se muestra.
# vi /etc/fail2ban/jail.local
Una vez que el archivo esté abierto, copie y pegue la siguiente configuración en él. El [DEFAULT]
la sección contiene opciones globales y [sshd]
contiene parámetros para la cárcel sshd.
[DEFAULT] ignoreip = 192.168.56.2/24 bantime = 21600 findtime = 300 maxretry = 3 banaction = iptables-multiport backend = systemd [sshd] enabled = true

Expliquemos brevemente las opciones en la configuración anterior:
- ignoreip: specifies the list of IP addresses or hostnames not to ban.
- bantime: specified the number of seconds that a host is banned for (i.e effective ban duration).
- maxretry: specifies the number of failures before a host gets banned.
- findtime: fail2ban will ban a host if it has generated “maxretry” during the last “findtime” seconds.
- banaction: banning action.
- backend: specifies the backend used to get log file modification.
Por lo tanto, la configuración anterior significa que si una IP ha fallado 3 veces en los últimos 5 minutos, prohíbala durante 6 horas e ignore la dirección IP 192.168.56.2.
A continuación, inicie y habilite el servicio fail2ban por ahora y verifique si está funcionando con el siguiente comando systemctl.
# systemctl start fail2ban # systemctl enable fail2ban # systemctl status fail2ban

Supervisión de direcciones IP fallidas y prohibidas mediante fail2ban-client
Después de configurar fail2ban para asegurar sshd, puede monitorear las direcciones IP fallidas y prohibidas usando el fail2ban-client. Para ver el estado actual del servidor fail2ban, ejecute el siguiente comando.
# fail2ban-client status

Para monitorear la cárcel sshd, ejecute.
# fail2ban-client status sshd

Para desbloquear una dirección IP en fail2ban (en todas las cárceles y bases de datos), ejecute el siguiente comando.
# fail2ban-client unban 192.168.56.1
Para obtener más información sobre fail2ban, lea las siguientes páginas de manual.
# man jail.conf # man fail2ban-client
¡Eso resume esta guía! Si tiene alguna pregunta o pensamiento que desee compartir sobre este tema, no dude en comunicarse con nosotros a través del formulario de comentarios a continuación.