Image

Base de conocimientos → Configurar Fail2Ban para protegerse contra adivinar contraseñas

[Servidores virtuales]
Fecha de publicación: 27.01.2023

El servicio Fail2Ban ayuda a bloquear las direcciones IP de los robots que adivinan las contraseñas de su sitio. Recientemente, se ha utilizado a menudo para realizar ataques, ya que una gran cantidad de solicitudes de publicación crea una carga significativa en el servidor web. En nuestros ejemplos, veremos el bloqueo de direcciones IP utilizando el ejemplo del popular CMS: Wordpress, así como el servicio ssh.

1. Instale el servicio Fail2Ban

1.1 Conectar el repositorio de Epel

yum install epel-release 

luego en /etc/yum.repos.d/epel.repo necesitas habilitarlo, enable=1

yum install fail2ban

2. Configuraciones generales

El servicio Fail2ban almacena sus archivos de configuración en el directorio /etc/fail2ban. Existe un archivo con valores predeterminados llamado jail.conf. Dado que este archivo puede sobrescribirse con actualizaciones de paquetes, no debemos usarlo. En su lugar, escribiremos un nuevo archivo llamado jail.local. Cualquier valor definido en jail.local anula los valores en jail.conf.

jail.conf contiene una sección [DEFAULT], seguida de secciones para servicios individuales. jail.local puede anular cualquiera de estos valores. Además, los archivos en /etc/fail2ban/jail.d/ se pueden usar para anular la configuración en ambos archivos. Los archivos se aplican en el siguiente orden:

    /etc/fail2ban/jail.conf
    /etc/fail2ban/jail.d/*.conf, alphabetically
    /etc/fail2ban/jail.local
    /etc/fail2ban/jail.d/*.local, alphabetically

Comprobemos y agreguemos configuraciones predeterminadas al archivo /etc/fail2ban/jail.local

[DEFAULT]

# Ban hosts for one hour:
bantime = 3600

# Override /etc/fail2ban/jail.d/00-firewalld.conf:
banaction = iptables-multiport

[sshd]
enabled = true

Reiniciemos el servicio.

service fail2ban restart

Comprobemos el estado con el comando.

fail2ban-client status

3. Filtro de WordPress

Agreguemos un filtro y una regla (cárcel) para bloquear las direcciones IP que accedieron a la dirección /wp-login.php (administrador de WordPress) más de 10 veces desde la misma dirección IP en 10 minutos.

3.1 Filtro

/etc/fail2ban/filter.d/wordpress.conf

[Definition]

failregex = ^.* "POST .*/wp-login.php([/\?#\\].*)? HTTP/.*" 200
ignoreregex =

Usando este filtro buscaremos direcciones IP.

3.2 Agregar cárcel

/etc/fail2ban/jail.d/wordpress.conf

[wordpress]

action = iptables-multiport[name="wordpress", port="http,https"]
filter = admin-wordpress
logpath = /var/www/vhosts/system/*/logs/*access*log
/var/log/httpd/*access_log

Si está utilizando otro servidor web, debe cambiar el filtro de acuerdo con cómo genera el registro y especificar la ruta correcta al archivo de registro (access_log). Después de realizar cambios, debe reiniciar el servicio.





Sin comentarios aún