Saltar al contenido principal.

Lucha contra la fuerza bruta de wordpress.



Durante bastante tiempo en varios sitios web y foros hubo artículos y temas que hablaron de numerosos ataques de fuerza bruta en sitios de WordPress. Recientemente tuve que enfrentar esta infección. :)

En esta publicación, me gustaría contarles acerca de mi experiencia al tratar con la selección de una contraseña en los sitios que funcionan en WordPress. Inmediatamente, observo que todos mis sitios funcionan en nginx + php-fpm .



Como una instrucción, un artículo fue tomado como base. Sin embargo, la receta descrita tuvo que ser ligeramente modificada para los detalles de sus atacantes. :)

Personalización



El primer paso es instalar fail2ban. Esto no debería causar dificultades.

  aptitude instalar fail2ban 

Después de eso , agregamos lo siguiente al final del archivo de configuración /etc/fail2ban/jail.conf :

  [nginx-wp-auth]
 enabled = true
 filtro = nginx-wp-auth
 acción = iptables-multiport [nombre = wp-auth, puerto = "http, https"]
 logpath = /var/log/nginx/*.access.log
 maxretry = 3
 bantime = 3600 

En este caso, la acción bloqueará el acceso de los infractores solo en los protocolos especificados y los marcará como wp-auth. En el logpath especifique la ruta a los registros.



Se analizarán todos los registros, como example.com.access.log. Para los registros del sitio web, puede establecer nombres especiales, por ejemplo, wordpress-example.com.access.log, para que solo se analicen estos archivos de registro.

El número máximo de intentos de autorización para una ip es tres. El tiempo de bloqueo es de una hora. Ambos parámetros se pueden seleccionar individualmente.

El siguiente paso es crear un filtro.

  toque /etc/fail2ban/filter.d/nginx-wp-auth.conf 

Durante esta acción, tuve dificultades: el ejemplo del artículo original no funcionó. Y tuvo que cambiar. :)

  [Definición]
 failregex = <HOST>. * / wp-login.php HTTP / 1.1 "200
      <HOST>. * / Wp-login.php / HTTP / 1.1 "302
      <HOST>. * / Wp-login.php HTTP / 1.0 "200
 ignoreregex =

El primer parámetro contiene todas las coincidencias que deben encontrarse en los archivos de registro. Aquí debe analizar las solicitudes de los atacantes en los registros de su servidor y agregar todas las sospechosas relacionadas con wp-login.php.

El segundo parámetro está destinado a excepciones de la primera línea. No es obligatorio y permanece vacío.

Pruebas

Después de crear el filtro, verifique su funcionamiento con el comando:

  fail2ban-regex / var / log / nginx / example.com .access.log /etc/fail2ban/filter.d/nginx-wp-auth.conf 

Los resultados encontrados se mostrarán en los resultados de la prueba. Por ejemplo:

  Pruebas de carrera
 =============

 Utilice el archivo regex: /etc/fail2ban/filter.d/nginx-wp-auth.conf
 Utilice el archivo de registro: /var/log/nginx/***.ru..access.log


 Resultados
 =======

 Failregex
 | - Expresiones regulares:
 |  [1]. * / Wp-login.php HTTP / 1.1 "200
 |  [2]. * / Wp-login.php / HTTP / 1.1 "302
 |  [3]. * / Wp-login.php HTTP / 1.0 "200
 |
 `- Número de partidos:
    [1] 1 match (es)
    [2] 0 match (es)
    [3] 0 match (es)

 Ignoreregex
 | - Expresiones regulares:
 |
 `- Número de partidos:

 Resumen
 =======

 Direcciones encontradas:
 [1]
     192.99.186.30 (vie 4 de julio, 07:29:20 de 2014)
 [2]
 [3]

 Golpes de plantilla de fecha:
 0 hit (s): MES Hora del día: Minuto: Segundo
 0 aciertos: MES DE LA SEMANA Día Hora: Minuto: Segundo año
 0 aciertos: MES DE LA SEMANA Hora del día: Minuto: Segundo
 0 aciertos: Año / Mes / Día Hora: Minuto: Segundo
 0 aciertos: Día / Mes / Año Hora: Minuto: Segundo
 0 aciertos: Día / Mes / Año Hora: Minuto: Segundo
 58 aciertos: Día / MES / Año: Hora: Minuto: Segundo
 0 aciertos: Mes / Día / Año: Hora: Minuto: Segundo
 0 aciertos: Año-Mes-Día Hora: Minuto: Segundo
 0 hit (s): Year.Month.Day Hour: Minute: Second
 0 aciertos: Día-MES-Año Hora: Minuto: Segundo [.Millisecond]
 0 aciertos: Día-Mes-Año Hora: Minuto: Segundo
 0 hit (s): TAI64N
 0 hit (s): epoch
 0 hit (s): ISO 8601
 0 aciertos: Hora: Minuto: Segundo
 0 aciertos: <Mes / Día / Año @ Hora: Minuto: Segundo>

 Éxito, el número total de partido es 1. 

Comprobando el registro de bloqueo

Fail2ban registrará todos los bloqueos producidos. Si es necesario, puede consultar el archivo de registro /var/log/fail2ban.log para ver su presencia.

  grep ADVERTENCIA /var/log/fail2ban.log 


¿Cómo calificas el artículo?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (No hay valoraciones aún)
Cargando ...

Añadir un comentario

Su correo electrónico no será publicado.