Закрыть wp-login.php c помощью Nginx

Уже несколько дней наблюдается массовый ботнет брутфорс пароля в WordPress направленный на wp-login.php на серверах с сайтами. Что можно сказать равносильно небольшой DDOS-атаке, выливается в большую нагрузку на сервера. В access логах видно:

85.26.82.37 — — [05/Aug/2013:09:44:37 +0400] «POST /wp-login.php HTTP/1.0» 200 4499 «read-me.su/wp-login.php» «Mozilla/5.0 (Windows NT 6.1; rv:19.0) Gecko/20100101 Firefox/19.0»

В nginx.conf к каждому server {...} с сайтами WordPress добавляем локейшн:

location /wp-login.php {
allow ip;
deny all;
}

где ip — соответственно ваш ip адрес, либо подсеть провайдера в формате CIDR x.x.x.x/y

дальше:

nginx -t

если ок, то

nginx -s restart

если всё сделали правильно, в error лог будет попадать такое:

2013/08/05 12:08:44 [error] 39451#0: *220415 access forbidden by rule, client: 109.188.127.117, server: read-me.su, request: «POST /wp-login.php HTTP/1.0», host: «read-me.su», referrer: «read-me.su/wp-login.php»

Или как вариант на этот локейшн можно добавить basic авторизацию.

Теги: , , , , ,

Оставить комментарий