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