Nginx блокируем пользователей по user-agent и по ip.

Nginx блокируем пользователей по user-agent и по ip.

Для того чтобы заблокировать пользователей по user-agent и(или) ip создадим конфиг, где промаппим необходимые ip и ua.

nano /etc/nginx/block.conf
###redirect IP_1
geo $bad_user {
default 0;
5.196.72.102/32 1;
166.62.81.105/32 1;
46.235.47.34/32 1;
107.161.114.245/32 1;
104.238.81.185/32 1;
162.223.88.13/32 1;
193.41.194.96/32 1;
108.170.53.50/32 1;
103.226.84.129/32 1;
117.209.229.82/32 1;
117.242.99.69/32 1;
181.94.10.87/32 1;
200.8.124.193/32 1;
54.36.149.19/32 1;
54.36.149.66/32 1;
54.36.149.37/32 1;
54.36.149.75/32 1;
54.36.148.29/32 1;
66.249.66.68/32 1;
66.249.66.72/32 1;
66.249.66.150/32 1;
66.249.66.70/32 1;
131.72.64.26/32 1;
91.214.168.24/32 1;
#192.168.88.9/32 1;
}
map $http_user_agent $block_ua {
        default           0;
    ~*test      1;
    ~*GuzzleHtt      1;
    ~*Telesphoreo      1;
}

Далее инклудим его в основной конфиг nginx, для этого добавим строку в nginx.con

include block.conf;

Далее создадим конфиг, и проинкдудим его в те места, где мы хотим избавиться от левых ботов или ip.
nano /etc/nginx/additional_rules.conf

if ($bad_user) {
    return 301 https://blocked.itc-life.ru/;
}
if ($block_ua) {
    return 301 https://blocked.itc-life.ru/;
}

Инклудим, например в мой конфиг /etc/nginx/conf.d/itc-life.ru.conf

nano /etc/nginx/conf.d/itc-life.ru.conf

include /etc/nginx/additional_rules.conf;

Всё рестатуем

nginx -t && nginx -s reload

Обратите внимание я блокирую user’ов — делаю 301 на спец домен, чтобы видеть кто на него попал (по логам).
Вот результат

Добавить комментарий

Войти с помощью: 

Ваш e-mail не будет опубликован. Обязательные поля помечены *

 

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.