GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo instalar Fail2ban con Firewalld en Rocky Linux 8

Fail2ban es una solución de software de prevención de intrusiones gratuita y de código abierto que protege los servidores de ataques de inicio de sesión de fuerza bruta. Supervisa varios archivos de registro de SSH y otras aplicaciones web, y cada vez que se detecta una autenticación fallida y alcanza los números máximos, Fail2Ban bloqueará automáticamente la dirección IP utilizando las iptables de Firewalld. Fail2Ban es simple, práctico, fácil de configurar y flexible.

En esta guía, le mostraremos cómo instalar Fail2Ban con firewalld en Rocky Linux 8.

Requisitos

  • Un servidor que ejecuta Rocky Linux 8 en Atlantic.Net Cloud Platform
  • Una contraseña de root configurada en su servidor

Paso 1:crear el servidor en la nube de Atlantic.Net

Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo Rocky Linux 8 como sistema operativo con al menos 2 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.

Una vez que haya iniciado sesión en su servidor, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.

dnf update -y

Paso 2:configurar el cortafuegos

dnf info firewalld

Si está instalado, obtendrá el siguiente resultado:

Last metadata expiration check: 0:34:46 ago on Wednesday 17 November 2021 09:52:51 AM UTC.
Installed Packages
Name         : firewalld
Version      : 0.8.2
Release      : 7.el8_4
Architecture : noarch
Size         : 1.9 M
Source       : firewalld-0.8.2-7.el8_4.src.rpm
Repository   : @System
From repo    : baseos
Summary      : A firewall daemon with D-Bus interface providing a dynamic firewall
URL          : http://www.firewalld.org
License      : GPLv2+
Description  : firewalld is a firewall service daemon that provides a dynamic customizable
             : firewall with a D-Bus interface.

Available Packages
Name         : firewalld
Version      : 0.9.3
Release      : 7.el8
Architecture : noarch
Size         : 501 k
Source       : firewalld-0.9.3-7.el8.src.rpm
Repository   : baseos
Summary      : A firewall daemon with D-Bus interface providing a dynamic firewall
URL          : http://www.firewalld.org
License      : GPLv2+
Description  : firewalld is a firewall service daemon that provides a dynamic customizable
             : firewall with a D-Bus interface.

A continuación, verifique si Firewalld se está ejecutando o no.

systemctl status firewalld

Debería ver que el servicio Firewalld está enmascarado:

● firewalld.service
   Loaded: masked (Reason: Unit firewalld.service is masked.)
   Active: inactive (dead)

Por lo tanto, deberá desenmascarar el servicio Firewalld. Puede desenmascararlo usando el siguiente comando:

systemctl unmask firewalld

A continuación, inicie el servicio Firewalld y habilítelo para que se inicie al reiniciar el sistema:

systemctl start firewalld
systemctl enable firewalld

En este punto, Firewalld está instalado y ejecutándose en su sistema. Ahora puede continuar con el siguiente paso.

Paso 3:Instalar Fail2Ban

dnf install epel-release -y

A continuación, instale el paquete Fail2Ban con el siguiente comando:

dnf install fail2ban fail2ban-firewalld -y

Una vez que Fail2Ban esté instalado, inicie y habilite el servicio Fail2Ban usando el siguiente comando:

systemctl start fail2ban
systemctl enable fail2ban

Puede verificar la versión de Fail2Ban usando el siguiente comando:

fail2ban-client --version

Salida de muestra:

Fail2Ban v0.11.2

Paso 4:configurar Fail2Ban

Primero, cambie el nombre del archivo de configuración de Firewalld para Fail2Ban usando el siguiente comando:

mv /etc/fail2ban/jail.d/00-firewalld.conf /etc/fail2ban/jail.d/00-firewalld.local

A continuación, copie el archivo de configuración predeterminado de Fail2Ban:

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

A continuación, edite el archivo jail.local:

nano /etc/fail2ban/jail.local

Encuentra las siguientes líneas:

banaction = iptables-multiport
banaction_allports = iptables-allports

Y reemplácelos con las siguientes líneas:

banaction = firewallcmd-rich-rules[actiontype=]
banaction_allports = firewallcmd-rich-rules[actiontype=]

Guarde y cierre el archivo, luego reinicie Fail2Ban para aplicar los cambios:

systemctl restart fail2ban

En este punto, Fail2Ban está configurado para funcionar con Firewalld.

Paso 5:Servicio SSH seguro con Fail2Ban

Para proteger el servicio SSHD, edite el archivo jail.local:

nano /etc/fail2ban/jail.local

Busque la sección [sshd] y actívela agregando las siguientes líneas:

[sshd]

enabled = true
port    = ssh
logpath = %(sshd_log)s
backend = %(sshd_backend)s
bantime = 10m
findtime = 10m
maxretry = 5

Guarde y cierre el archivo, luego reinicie Fail2Ban para aplicar los cambios:

systemctl restart fail2ban

Ahora puede verificar el estado de Fail2Ban usando el siguiente comando:

systemctl status fail2ban

Obtendrá el siguiente resultado:

● fail2ban.service - Fail2Ban Service
   Loaded: loaded (/usr/lib/systemd/system/fail2ban.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2021-11-17 10:34:49 UTC; 2s ago
     Docs: man:fail2ban(1)
  Process: 21154 ExecStop=/usr/bin/fail2ban-client stop (code=exited, status=0/SUCCESS)
  Process: 21185 ExecStartPre=/bin/mkdir -p /run/fail2ban (code=exited, status=0/SUCCESS)
 Main PID: 21186 (fail2ban-server)
    Tasks: 5 (limit: 11411)
   Memory: 14.6M
   CGroup: /system.slice/fail2ban.service
           └─21186 /usr/bin/python3.6 -s /usr/bin/fail2ban-server -xf start

Nov 17 10:34:49 rockylinux systemd[1]: Starting Fail2Ban Service...
Nov 17 10:34:49 rockylinux systemd[1]: Started Fail2Ban Service.
Nov 17 10:34:49 rockylinux fail2ban-server[21186]: Server ready

Paso 6:verificar el cortafuegos Fail2Ban

En este punto, Fail2Ban está configurado para proteger el servicio SSH. Ahora es el momento de comprobar si Fail2Ban está funcionando.

Primero, verifique la configuración de la cárcel usando el siguiente comando:

fail2ban-client status

Debería ver el siguiente resultado:

Status
|- Number of jail:	1
`- Jail list:	sshd

Ahora, vaya a la máquina remota e intente conectarse al servidor SSH con una contraseña incorrecta. Después de alcanzar el número máximo de reintentos (5 veces), Fail2Ban bloqueará su dirección IP.

Ahora, verifique la dirección IP bloqueada por Fail2Ban usando el siguiente comando:

fail2ban-client status sshd

Deberías obtener el siguiente resultado:

Status for the jail: sshd
|- Filter
|  |- Currently failed:	1
|  |- Total failed:	6
|  `- Journal matches:	_SYSTEMD_UNIT=sshd.service + _COMM=sshd
`- Actions
   |- Currently banned:	1
   |- Total banned:	1
   `- Banned IP list:	27.61.171.115

Puede verificar las reglas agregadas por Firewalld con el siguiente comando:

firewall-cmd --list-rich-rules

Obtendrá el siguiente resultado:

rule family="ipv4" source address="27.61.171.115" port port="ssh" protocol="tcp" reject type="icmp-port-unreachable"

También puede consultar los registros de Fail2Ban para obtener más información:

tail -f /var/log/fail2ban.log

Salida de muestra:

2021-11-17 10:37:21,837 fail2ban.filter         [21186]: INFO    [sshd] Found 27.61.171.115 - 2021-11-17 10:37:21
2021-11-17 10:37:21,859 fail2ban.actions        [21186]: NOTICE  [sshd] Ban 27.61.171.115
2021-11-17 10:37:27,220 fail2ban.filter         [21186]: INFO    [sshd] Found 27.61.171.115 - 2021-11-17 10:37:27

Conclusión

¡Felicidades! Ha instalado correctamente Fail2Ban con Firewalld. Ahora puede implementar Fail2Ban en su servidor para protegerlo contra ataques de inicio de sesión de fuerza bruta. ¡Pruébelo en su cuenta de alojamiento VPS de Atlantic.Net!


Linux
  1. Cómo instalar y configurar Fail2ban en Alma Linux 8

  2. Cómo instalar ModSecurity con Nginx en Rocky Linux 8

  3. Cómo instalar Gulp.js en Rocky Linux 8

  4. Cómo instalar Apache Kafka en Rocky Linux 8

  5. Cómo instalar Python 3.10 en Rocky Linux 8

Cómo instalar el marco Sails.js con Nginx en Rocky Linux 8

Cómo instalar Memcached en Rocky Linux 8

Cómo instalar phpBB con LEMP en Rocky Linux 8

Cómo instalar Anaconda Python en Rocky Linux 8

Cómo instalar Jenkins en Rocky Linux 8

Cómo instalar Fail2ban en Rocky Linux 8