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 archivos de registro en busca de direcciones IP que muestren signos maliciosos, como demasiadas contraseñas fallidas y mucho más, y las prohíbe (actualiza el firewall reglas para rechazar las direcciones IP). De forma predeterminada, viene con filtros para varios servicios, incluido sshd.
Lea también: Configuración inicial del servidor con CentOS/RHEL 8
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 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 fail2ban se encuentran en el directorio /etc/fail2ban/ y los filtros se almacenan en el directorio /etc/fail2ban/filter.d/. directorio (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 un paquete. actualizar en el futuro.
Como alternativa, se recomienda crear y agregar sus configuraciones en un archivo jail.local o archivos .conf
separados en /etc/fail2ban/jail. directorio 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. La sección [DEFAULT]
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: especifica la lista de direcciones IP o nombres de host que no se prohibirán.
- bantime: especifica el número de segundos que un host está prohibido (es decir, la duración efectiva de la prohibición).
- maxretry: especifica el número de errores antes de que se prohíba un host.
- findtime: fail2ban prohibirá un host si ha generado "maxretry" durante los últimos "findtime" segundos.
- banaction: acción de prohibición.
- backend: especifica el backend utilizado para obtener la modificación del archivo de registro.
La configuración anterior, por lo tanto, significa que si una IP ha fallado 3 veces en los últimos 5 minutos, prohibirla durante 6 horas e ignorar el Dirección IP 192.168.56.2.
A continuación, inicie y habilite el servicio fail2ban por ahora y verifique si está funcionando usando el siguiente comando systemctl.
systemctl start fail2ban
systemctl enable fail2ban
systemctl status fail2ban
Monitoreo de direcciones IP fallidas y prohibidas usando fail2ban-client
Después de configurar fail2ban para proteger sshd, puede monitorear las direcciones IP fallidas y prohibidas utilizando 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 idea que desee compartir sobre este tema, no dude en comunicarse con nosotros a través del formulario de comentarios a continuación.