Intentos constantes de hackeo durante los últimos 2 días

0

Noté un aumento en mi cpu durante los últimos dos días, por lo que miré mi access_log y me han llamado constantemente la dirección IP 46.183.120.20.

46.183.120.20 - - [14/Mar/2017:14:11:46 +0000] "POST /wp-login.php HTTP/1.0" 403 221 "-" "-"

¿Cómo bloqueo esto? Instalé failtoban para Wordpress y también agregué el siguiente código a mi .htaccess, pero ahora son implacables 2 días.

Order Deny,Allow
Deny from 46.183.120.20

mi error_log solo aparece constantemente.

[Tue Mar 14 14:15:10.466203 2017] [access_compat:error] [pid 30090] [client 46.183.120.20:52003] AH01799: client denied by server configuration: /var/www/html/example.com/wp-login.php

Girando hasta el final de la ip: 52003.

¿Alguna sugerencia sobre cómo detener este ataque?

Ok, actualizo. Estoy intentando configurar el fail2ban. He instalado el complemento y la configuración de wp.

[wordpress-hard]

enabled = true
filter = wordpress-hard
logpath = /var/log/auth.log
maxretry = 3
port = http,https

Si miro mis access_logs me golpean constantemente con los siguientes pings, lo que aumenta mi cpu.

POST /administrator/login HTTP/1.1" 404
GET /administrator/ HTTP/1.1" 404
POST /administrator/login HTTP/1.1" 404

Intentar encontrar la mejor manera de bloquearlos utilizando fail2ban ¿debería ser mi ruta de acceso como la ruta de acceso a mi archivo access_log?

Estoy pensando en agregar este filtro, pero un poco nervioso, ya que no tengo ningún conocimiento de fail2ban

failregex = .*:(80|443) <HOST> .*(GET|POST) .*/xmlrpc.php
            .*:(80|443) <HOST> .*(GET|POST) .*/wp-login.php
            .*:(80|443) <HOST> .*(GET|POST) /administrator/index.php
            .*:(80|443) <HOST> .*(GET|POST) /administrator/
            .*:(80|443) <HOST> .*(GET|POST) /administrator/login HTTP

Cuando ejecuto una prueba en el filtro, esto se ejecuta por edades.

fail2ban-regex /var/log/httpd/access_log /etc/fail2ban/filter.d/wordpress-hard.conf

Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second
Matched time template Day/MONTH/Year:Hour:Minute:Second

Realmente agradecería cualquier ayuda o consejo sobre esto

Finalmente, consiga que funcione con lo siguiente.

[block-all]
enabled = true
port = http,https
filter = block-all
logpath = /var/log/httpd/access_log
maxretry = 10 # number of requests made
findtime = 30 # time scale of those requests
bantime = 600 # ban time 10 minutes
action = iptables[name=HTTP, port=http, protocol=tcp]

Y

[Definition]
failregex = ^<HOST> -.*"(GET|POST) .*/administrator
            ^<HOST> -.*"(GET|POST) .*/administrator/login/
ignoreregex =


restart service fail2ban

No estoy seguro de si esto es bueno o malo, pero funciona si ejecuto el archivo de registro, puedo ver que se están prohibiendo muchos ips.

tail -f /var/log/fail2ban.conf
    
pregunta user1503606 14.03.2017 - 15:16
fuente

3 respuestas

3

La mejor manera es colocar esto en el firewall, ya que la dirección IP 46.183.120.20 parece estar en Albania, la mejor manera sería dejarlo por un tiempo. (A menos que tengas administradores en Albania).

Un simple:

iptables -A INPUT -s 46.183.120.20 -j DROP

Probablemente desalentaría sus intentos de fuerza bruta, y puedes agregarlos más tarde.

Alternativamente, deje que su secuencia de comandos fail2ban los coloque en el ifrewall, sin agregarlo a .htaccess; no necesita su servidor web Apache para manejar esta solicitud con la que no quiere tratar de ninguna manera.

    
respondido por el ndrix 14.03.2017 - 20:04
fuente
0

Si tiene un dispositivo de firewall, puede crear una regla de lista negra para eliminar paquetes de esta IP.

Si no tiene un firewall, puede usar linux iptables para eso.

    
respondido por el Ricardo Reimao 14.03.2017 - 15:54
fuente
0

Bloqueo cosas como esta usando CloudFlare, en el plan gratuito. Para que esto sea efectivo, debe evitar que otras direcciones IP distintas a CloudFlare y su propia IP puedan acceder directamente al servidor. Desde que alojé en AWS, hago esto utilizando grupos de seguridad para bloquear en el nivel del hipervisor, aunque también puede usar NACL para bloquear en el nivel de subred. El uso de un servicio externo reduce el consumo de recursos.

También utilizo Nginx para calificar el acceso a las páginas de inicio de sesión / scripts, permito dos solicitudes por minuto por IP. Un ataque distribuido evita eso, pero los ataques más simples que he visto desde una única IP.

    
respondido por el Tim 14.03.2017 - 20:17
fuente

Lea otras preguntas en las etiquetas