Борьба со сканирующими ботами

Проблемы с установкой или работой phpBB 3.3.x? Получите помощь здесь!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Мини [FAQ] по phpBB 3.1.x/3.2.x | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
lexuz
phpBB 1.0.0
Сообщения: 9
Стаж: 7 лет 7 месяцев

Борьба со сканирующими ботами

Сообщение lexuz »

Коллеги, поделитесь опытом.
Исходные данные:
есть VPN с 1 ядром и 1Гб ОЗУ, тут крутится nginx, mariadb и phpbb 3.3.15
всё работало стабильно годами.

в последнее время на форм начался наплыв ботов (предположительно ИИ).
В начале я их банил подсетями:

Код: Выделить всё

server {
	# Blocking bots by IP address
	deny 2.57.22.0/23;
	deny 3.128.0.0/9;
	deny 4.192.0.0/12;
	deny 4.224.0.0/12;
	deny 4.240.0.0/12;
	deny 5.0.48.0/21;
...
и по юзерагенту:

Код: Выделить всё

if ($http_user_agent ~* AhrefsBot|Amazonbot|Android.1\.|Android.2|Android.3|Android.4|Android.5|Android.7|Android.8|Android.9|BackupLand|Baiduspider|ClaudeBot|DotBot|FriendlyCrawler|iPhone|iPod|Jooblebot|LinkpadBot|Macintosh|MegaIndex.ru|MJ12bot|NetcraftSurveyAgent|openstat.ru|PetalBot|Presto|SemrushBot|Sogou|SputnikBot|statdom.ru|Trident|WebDataStats) {
return 444;
}
Сейчас в файле более 800 подсетей, этого хватает на короткий период, боты опять наплывают причём с уникальных ИП. Если посмотреть статистку лога access за последний час, то там:
Total Requests 100070
Unique Visitors 30949
Я полагаю, что происходи следующее:
1. на сайт приходят тысячи уникальных запросов
2. phpbb для каждого бота создаёт запись в в таблице phpbb_sessions, например сейчас там 66493 строчке.
3. в какой-то момент записей становиться слишком много и процесс mariadb начитает кушать всё процессорное время
это видно по htop. Если заглянуть в "SHOW PROCESSLIST;" внутри базы, то там видно запросики:
UPDATE phpbb3_sessions SET session_rand = ...
SELECT COUNT(session_id) AS sessions FROM phpbb3_sessions WHERE session_user_id = 1

4. сайт начинает выдать ошибку 503

если очистить таблицу phpbb_sessions, то сайт начинает оживать.


Добавлять подсети в блокировку уже устал. Есть ли какой-то другой способ, чтобы сайт не падал?

Может подтюнить что-то, чтобы медленно, но сайт работал?
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5527
Стаж: 21 год 4 месяца
Откуда: Питер
Благодарил (а): 185 раз
Поблагодарили: 772 раза

Re: Борьба со сканирующими ботами

Сообщение Siava »

lexuz, тут уже несколько подобных тем. Вы читали хоть одну из них?
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)

Вернуться в «Поддержка phpBB 3.3.x»