Как же надоели мне эти боты, которые подбирают пароли к моим сайтам на WP! 🙂 С помощью nginx можно легко разрешить вход только с определенных IP и запретить со всех остальных. Вот сам кусок конфига:
# регулярка определения адреса по совпадению и редирект "плохих" адресов
location ~ ^/(wp-admin|wp-login\.php) {
allow 123.123.123.123;
allow 234.234.234.234;
deny all;
error_page 403 = @wp_admin_ban;
}
# сам редирект ;)
location @wp_admin_ban {
rewrite ^(.*) https://127.0.0.1 permanent;
}
# admin-ajax.php необходим для публичного пользования некоторых модулей WP, разрешаем всем
location /wp-admin/admin-ajax.php {
allow all;
}
Вот собственно и все.