@sanok_ps
Веб-разработчик, php-бекенд, Вордпресс

Как менее ресурсно блокировать ботов на nginx — по IP или user-agent?

Имеется VPS с панелью ISPmanager и nginx+php-fpm. Бот PetalBot штормит один из сайтов (но я бы даже для всех заблокировал его на всякий случай). Лучше в конфиге nginx для сайта прописать запрет доступа по user-agent
if ($http_user_agent ~* PetalBot) {
	    return 403;
	}

либо запретить доступ для диапазона IP
location / {
    deny  114.119.160.0/16;
    deny  114.119.161.0/16;
    deny  114.119.162.0/16;
    deny  114.119.163.0/16;
    deny  114.119.164.0/16;
    deny  114.119.165.0/16;
    deny  114.119.166.0/16;
    deny  114.119.167.0/16;
}


Либо как-то нужно еще раньше запретить и тогда даже в логах access.log не будут они фиксироваться? В настройке серверов разбираюсь не много.
  • Вопрос задан
  • 2882 просмотра
Пригласить эксперта
Ответы на вопрос 4
ky0
@ky0 Куратор тега Nginx
Миллиардер, филантроп, патологический лгун
Прибейте на фаерволле по диапазонам адресов - тогда в логах ничего не появится.
Ответ написан
@Karpion
Если атаки целенаправленные - то хакер может сменить user_agent без проблем. Советую банить и по IP-адресу, и по user_agent.
Ответ написан
@AnrDaemon
Вот только если блокируете именно нежелательных ботов, лучше `return 444;`
Ответ написан
Да, мне тоже сверхнагрузку создавал. Это робот поисковика huawei - https://vk.com/@news_newusman-rss-722804822-1394310157 - достаточно в роботс заблокировать. Можно еще кончено в htaccess или nginx, чтобы точно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы