Атака китайских ботов

Вопросы без привязки к версии. Установлена авточистка (2 года).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ | Как задавать вопросы | Как устанавливать расширения

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
MasterX
phpBB 1.4.4
Сообщения: 153
Стаж: 6 лет 1 месяц
Благодарил (а): 24 раза
Поблагодарили: 14 раз

Re: Атака китайских ботов

Сообщение MasterX »

Kuskow писал(а): 05.04.2026 21:50 И через месяц .htaccess будет мегабайтов надцать.
Да ну прямо таки. максимум 2-3 сотни строк.
Не все подряд стоит рубить а самые агрессивные подсети.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

Что можно сделать прямо сейчас, чтобы хоть немного снизить нагрузку ботов на сайт и не разозлить полезных поисковиков. Убираем из моего скрипта 2 блок (домофон), оставляем только 1 и 3 блоки: шлагбаум и гардероб. Тогда там же в конце config.php остаётся это (одинаково и для php 7.4, и для php 8.x).

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

### Барьер для защиты от ботов, атакующих phpBB-сайты
### Авторы: Kuskow & AI on Google Search
if (PHP_SAPI === 'cli') { return; } // В cli не надо ничего проверять

# 1. Шлагбаум: извесных ботов не пускаем даже к дому
preg_match('/ChatGPT|keys-so|python|Firefox\/72|Mediapartners/i', $ua = $_SERVER['HTTP_USER_AGENT']) +
preg_match('/wp-|profile\.php/i', $uri = $_SERVER['REQUEST_URI'])
and die(header('HTTP/1.1 403'));

# 2. Тут был самый эффективный, но опасный блок Домофон

# 3. Гардероб: разуваем гостей, но не персонал
$noise = 'sid|hilit|gclid|yclid|ysclid|fbclid|utm_\w+';
preg_match('/^(?!.*(adm\/|cp\.php|hash=|mark_)).*?(\/index\.php(?:\?|&|$)|(' . $noise . ')=)/i', $uri)
and exit(header('Location: ' . preg_replace(["/([?&])($noise)=[^&]*(&|$)/i", '/\/index\.php(?:\?|&|$)/i'], ['$1', '/'], $uri), true, 308));
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
er107
phpBB 2.0.19
Сообщения: 1201
Стаж: 15 лет
Благодарил (а): 213 раз
Поблагодарили: 75 раз

Re: Атака китайских ботов

Сообщение er107 »

А возможно написать такой скрип, чтобы, когда бы был наплыв ботов, то форум бы отключался? По типу как в админке есть настройка про отключение форума из-за возросшей нагрузки (но оно вроде как работает некорректно или вообще не работает). Включать можно и вручную, а то в последнее время эти боты прямо напасть, реальная жесть, кладут форум.
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 722
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 237 раз
Поблагодарили: 92 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

Kuskow, попробую последний скрипт. Но у меня такая "петрушка". По адресу https://домен/ находится главная страница сайта, а по адресу https://домен/index.php - главная страница форума. То есть "закрывать" или переадресовывать /index.php никак нельзя. Что мне нужно убрать/изменить в коде, чтобы и у меня скрипт заработал корректно? К вечеру голова уже не варит..............
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

er107 писал(а): 05.04.2026 22:17 но оно вроде как работает некорректно или вообще не работает
Ужасно некорректно работает, никакой пользы не приносит. Реагирует на каждый шорох, пришлось отключить.
Leo Angel писал(а): 05.04.2026 22:24 По адресу https://домен/ находится главная страница сайта, а по адресу https://домен/index.php - главная страница форума.
Ну тады ой. Последняя надежда рухнула. Там уже ничего не остаётся почти, можно вообще не пачкаться.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

У меня сервер при атаке не падает, тьфу-тьфу, но всплески бывают, конечно. Вот видно, как было при домофоне (со скриптом) и как стало, когда второй блок скрипта отключил. Время +2 часа от Москвы.

domofon.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
Аватара пользователя
Leo Angel
phpBB 2.0.9
Сообщения: 722
Стаж: 8 лет 2 месяца
Откуда: Израиль
Благодарил (а): 237 раз
Поблагодарили: 92 раза

Re: Атака китайских ботов

Сообщение Leo Angel »

Вспомнил, что было пару раз такое, что меня атаковали настолько сильно, что форум повисал, а потом падал и так и оставался недоступен в течение часов 12. Тогда я обращался в техподдержку хостинга, там делали ЧТО-ТО и всё приходило в порядок - нагрузка падала и форум поднимался.
Не знаю, что они конкретно делали, но помогало. Наверное, и сейчас придётся, если что к ним обращаться. Потому что, насколько я понял, нормальных "самодельных" решений нет и не предвидится.
er107
phpBB 2.0.19
Сообщения: 1201
Стаж: 15 лет
Благодарил (а): 213 раз
Поблагодарили: 75 раз

Re: Атака китайских ботов

Сообщение er107 »

Да, на уровне расширений, как я понял, это не сделать, только средствами самого сервера или с помощью сторонней защиты, но это часто нецелесообразные траты для форумов по интересам.
Я тут вижу только создание какого то механизма, для полного отключения форума в случае атаки. Понятно, что это не совсем то, что надо, но зато не надо обращаться в поддержку, чтобы потом перезапускали процессы на хостинге.
Лично на моем форуме боты атакуют страницу регистрации (сотни тысяч строк в логе на запрос регистрации) и стоит Антибот42, он видимо (но это мои домыслы)и вешает форум, когда идёт массовый наплыв.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

er107 писал(а): Вчера 14:38 полного отключения форума в случае атаки
Атаки каждый день. Ещё и в прайм-тайм.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
er107
phpBB 2.0.19
Сообщения: 1201
Стаж: 15 лет
Благодарил (а): 213 раз
Поблагодарили: 75 раз

Re: Атака китайских ботов

Сообщение er107 »

А куда бьют? Я, когда замечаю наплыв ботов, то в файле .htaccess блокирую страницу регистрации и это часто помогает
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

Да там кто куда. И просто скачивают, и поиск по автору, и вход в админку, и старые уязвимости ищут
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
MasterX
phpBB 1.4.4
Сообщения: 153
Стаж: 6 лет 1 месяц
Благодарил (а): 24 раза
Поблагодарили: 14 раз

Re: Атака китайских ботов

Сообщение MasterX »

Kuskow писал(а): Вчера 14:56 Да там кто куда. И просто скачивают, и поиск по автору, и вход в админку, и старые уязвимости ищут
Я когда PHP отбивалку на PHPBB ставил, пробовал ее ставить прямо в .htaccess
Затем в common.php
Мало того, админку отдельную для нее писал для добавления UA и диапазонов.
Но ничто так не банило хорошо как прямое указание этой всей хрени в .htaccess
Я глянул Ваш форум, да, такой тяжеловато будет перенести. Решения только 2: Либо мощное железо, либо придется с этим возится каждый день. Еще вариант - платный CF. Только он позволит не улететь куче страниц из индекса. Но его минуса ваш траф автоматически станет трафом CF
Так что наверно лучше вложиться в хостинг.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

У меня то сейчас всё хорошо. Я настроил Nginx, он банит по одному адресу, я каждый день смотрю на эти адреса и если прослеживается их несколько в подсети, вношу диапазоны в iptables. Одинаочки так и остаются в fail2ban. Полностью от всех ботов это не ограждает, но форум дышит спокойно. Количество гостей (включая неизвестных ботов) всего лишь в полтора раза больше зарегистрированных пользователей онлайн.

Мой форум на нынешней технической базе способен переработать и 6000 гостей за 5 минут - ставил я такие эксперименты, убирая все блокировки. Время реакции сайта при этом совсем немногим больше. Ну подождёт какой-то пользователь полсекунды, пока откроется страница - не страшно. Самая важная деталт, которую я понял после экспериментов - это количество оперативной памяти и эффективное её распределение. На базу 2.7 GB вполне хватает 3 GB RAM, чтобы вся она помещалась в оперативной памяти - тогда дисковые операции почти отсутствуют, и всё летает.

Но с вчерашим "домофоном", всё же, гораздо интересней, когда знаешь, что все гости - живые люди. И очень хотелось бы помочь тем, у кого нет доступа к Nginx, или кто боится туда лазить сам.
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz
MasterX
phpBB 1.4.4
Сообщения: 153
Стаж: 6 лет 1 месяц
Благодарил (а): 24 раза
Поблагодарили: 14 раз

Re: Атака китайских ботов

Сообщение MasterX »

Только вы не забывайте, что к базе еще и индексы прилагаются, это как минимум +300% веса
Да, домофон концепт интересный, но к сожалению сразу не взлетел, над ним работать нужно, что бы он корректно правильных ботов пропускал.
Хотя если у вас VPS, то насколько я помню там банить можно прямо через админку и по странам и по диапазонам.
Аватара пользователя
Kuskow
phpBB 2.0.2
Сообщения: 325
Стаж: 9 лет 10 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 26 раз

Re: Атака китайских ботов

Сообщение Kuskow »

Да, это размер вместе с индексами.
В SQL-запросе, который вы использовали, общая сумма считается как data_length + index_length
MasterX писал(а): Вчера 18:01 что бы он корректно правильных ботов пропускал
Правильных ботов он пропускает корректно. И людей он пропускает корректно. С этим нет проблем.
MasterX писал(а): Вчера 18:01 банить можно прямо через админку и по странам и по диапазонам
Можно. Только какую страну Вы бы забанили на форуме путешественников :D
phpBB 3.3.15 • Manticore 17.5 • MariaDB 11.4 (2.8 GB) • Redis • PHP 8.3-FPM • Nginx • HestiaCP • Debian 12 • 4GB DDR4 • 60GB NVMe • 2 vCPU 4GHz

Вернуться в «phpBB-пространство»