Há muitas coisas que você pode fazer para impedir que os invasores consigam seus recursos.
(re) considere o uso de proteção por senha para áreas administrativas
Você pode ter razões válidas para não usar isso em todos ou em alguns sites, mas não subestime a utilidade dessa técnica. Use sempre que possível.
Ao exigir que os usuários façam login no nível do servidor Web, você minimiza os danos que os invasores podem causar, limitam os recursos necessários para lidar com esses ataques e protegem ainda mais seus sites com vulnerabilidades.
restringir login de administrador a uma lista de permissões de ip (servidor da web)
Você pode negar acesso a partes do seu site. Mesmo que você tenha que abrir uma grande sub-rede de IPs, é melhor do que deixar o mundo todo entrar!
No nginx, pode parecer algo assim:
location /wp-admin {
# block one workstation
deny 192.168.1.1;
# allow anyone in 192.168.1.0/24
allow 192.168.1.0/24;
# drop rest of the world
deny all;
}
dificulta a localização
Os ataques de força bruta fazem várias suposições. Se você pode renomear sua pasta wp-admin, renomeie wp-login.php ou execute wp-admin em uma porta não padrão, então você não terá que gastar seus preciosos recursos tentando validar esses logins de força bruta.
tente o fail2ban
fail2ban is one of the simplest and most effective security measures you can implement to prevent brute-force password-guessing attacks.
O fail2ban tem alguns recursos interessantes:
Bloqueia tentativas de login com nome de usuário incorreto
Muitos invasores tentam fazer login com nomes de usuários comuns, como admin. É uma boa prática não usar esses nomes de usuário. Nesse caso, você pode bloquear qualquer pessoa que tente fazer login com eles.
O WPf2b agora permite que você especifique um regex que ative o processo de login se o nome de usuário solicitado corresponder a
define('WP_FAIL2BAN_BLOCKED_USERS','^admin$');
ip-whitelist (fail2ban)
A ideia aqui é listar os endereços IP dos proxies confiáveis que aparecerão como o IP remoto da solicitação.
define('WP_FAIL2BAN_PROXIES','192.168.0.42,192.168.0.43');