суббота, 7 июня 2014 г.

Защита nginx от брутфорсеров

В логах было замечено то, что к разным сайтам на WordPress (и не только) поступает очень много запросов.
Было решено такое блокировать на корню, а именно средствами nginx reject'ить их.
Позже может запилю скрипт какой-нибудь или использую готовое решение.

Смотрим ip-адреса с наибольшим числом запросов (ip-адреса специально не изменяю даже):
# cat /var/log/nginx/access.log | cut -f1 -d" " | sort | uniq -c | sort -n
...
13018 173.252.202.2
24134 195.206.253.8
33300 5.100.249.163
33626 199.102.67.201

Создадим файл, в котором будут прописаны все "плохие" ip-адреса:
# vim /etc/nginx/blockips.conf
deny 173.252.202.2;
deny 195.206.253.8;
deny 5.100.249.163;
deny 199.102.67.201;
allow all;

Правило такое:
"плохим" запрещаем доступ;
остальным разрешаем;

В секцию http главного конфига nginx подключим ранее созданный файл:
# vim /etc/nginx/nginx.conf
http {
...
include blockips.conf;
...
}

Проверим конфиг nginx на ошибки:
# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

И перезагрузим сервис:
# service nginx reload

Скрипт для всего этого тут: http://blog.amet13.name/2014/07/wordpress-joomla.html

Комментариев нет: