Instalar y configurar Fail2ban en CentOS 8 | RHEL 8 |
En esta guía discutiremos cómo instalar y configurar Fail2ban en Centos 8 | RHEL 8. Fail2ban es una herramienta de prevención y detección de intrusiones de código abierto que busca direcciones IP maliciosas en los registros de acceso que muestran signos de múltiples intentos fallidos de inicio de sesión con contraseña. Luego, la herramienta prohíbe las IP actualizando las reglas del firewall para rechazar las direcciones IP.
Fail2ban se puede utilizar para proteger diferentes servicios en un sistema Linux, incluidos sshd, wordpress access, postfix, etc.
Instale Fail2ban en CentOS 8 | RHEL 8
Debe instalar el repositorio EPEL en su sistema CentOS/RHEL 8 para obtener el paquete Fail2ban.
sudo dnf -y install epel-release
Instale el paquete Fail2ban:
sudo dnf -y install fail2ban
Iniciar y habilitar Fail2ban
sudo systemctl start fail2ban
sudo systemctl enable fail2ban
Configurar Fail2ban en CentOS 8 | RHEL 8
Después de una instalación exitosa, el siguiente paso es configurar fail2ban.
Los archivos de configuración de Fail2ban residen en el directorio /etc/fail2ban/
.
El archivo de configuración principal es /etc/fail2ban/jail.conf
. Los filtros se almacenan en el directorio /etc/fail2ban/filter.d/
.
No se recomienda realizar ningún cambio en el archivo jail.conf
ya que la configuración será sobrescrita por aquellos en los archivos en *.local.
Entonces, la mejor práctica es crear un archivo separado, jail.local que contendrá nuestras configuraciones.
Configuremos algunos valores predeterminados en /etc/fail2ban/jail.local
sudo vi /etc/fail2ban/jail.local
Agregue los siguientes parámetros:
[DEFAULT]
bantime = 21600
findtime = 300
maxretry = 3
banaction = iptables-multiport
backend = systemd
banaction_allports = iptables-allports
Una breve descripción de los parámetros anteriores:
- Bantime: la cantidad de tiempo que la IP estará prohibida en segundos.
- maxretry: el número de reintentos antes de que se prohíba un host
- Findtime: fail2ban prohíbe el host si ha generado "maxretry" en los últimos "findtime" segundos.
- banaction: el tipo de acción de prohibición que se implementará
- ignoreip: puede especificar las direcciones IP que serán ignoradas por fail2ban
- backend: el backend utilizado para obtener la modificación del archivo de registro.
- Banaction_allports: Fail2ban bloquea la IP remota en cada puerto
Configuración de cárceles para proteger SSH, Postfix y Dovecot
En esta sección veremos cómo configurar cárceles Fail2ban para SSH, Postfix y dovecot.
En el archivo /etc/fail2ban/jail.local
, agregue parámetros para los servicios que desea habilitar.
Para SSH:
[ssh]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
Para Postfix:
[postfix]
enabled = true
port = smtp,465,submission
Palomar:
[dovecot]
enabled = true
port = pop3,pop3s,imap,imaps,submission,465,sieve
Postfix-SASL
[postfix-sasl]
enabled = true
port = smtp,465,submission,imap,imaps,pop3,pop3s
En la configuración anterior, se han utilizado los siguientes atributos:
- Habilitado: se puede establecer en verdadero o falso para habilitar/deshabilitar el filtro.
- Puerto: el puerto en el que se ejecuta el servicio. Puede utilizar los nombres del servicio si los puertos que se utilizan son los predeterminados; de lo contrario, deberá especificar explícitamente el número de puerto.
- Filtro: el nombre del archivo de filtro ubicado en el directorio /etc/fail2ban/filter.d/ que contiene la información fileregex utilizada para analizar los registros.
- Logpath: la ruta a los registros del servicio.
Usando el cliente Fail2ban
Fail2ban-client es la herramienta de línea de comandos que se utiliza para ejecutar Fail2ban desde el shell.
El uso general es fail2ban-client
A continuación se muestra una lista de comandos del cliente Fail2ban:
start
: se utiliza para iniciar el servidor fail2ban y las cárceles.reload
: usado para recargar la configuración de Fail2banstop
: detiene el servidorstatus
: Se utiliza para comprobar el estado del servidor y habilitar jails.status JAIL
: Muestra el estado de las cárceles y las IP actualmente prohibidas.
Ejemplos:
- Estado del cliente Fail2ban
$ sudo fail2ban-client status
Status
|- Number of jail: 6
`- Jail list: dovecot, postfix, postfix-sasl, proftpd, sshd, webmin-auth
2. Estado del cliente Fail2ban sshd
$ sudo fail2ban-client status sshd
Status for the jail: sshd
|- Filter
| |- Currently failed: 0
| |- Total failed: 22
| `- Journal matches: _SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
|- Currently banned: 0
|- Total banned: 4
`- Banned IP list:
3. IP prohibidas:
Para eliminar una IP de una cárcel, puede hacerlo con el siguiente comando:
$ sudo fail2ban-client set <jailname> unbanip <IP>
Ejemplo :
$ sudo fail2ban-client set sshd unbanip 192.168.100.12
En el ejemplo anterior, hemos eliminado la IP 192.168.100.12 de la cárcel sshd.
Conclusión
Hemos revisado una guía sobre cómo configurar Fail2ban en CentOS/RHEL 8. La herramienta es útil para la detección de intrusiones y la prevención de ataques como la fuerza bruta en un sistema RHEL/CentOS 8.
Consulte otros artículos relacionados en nuestro sitio web;
- Automatice las operaciones de pruebas de penetración con Infection Monkey
- Faraday: IDE de pruebas de penetración y plataforma de gestión de vulnerabilidades