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

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Kuskow
phpBB 2.0.1
Сообщения: 276
Стаж: 9 лет 9 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 19 раз

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

Сообщение Kuskow »

Мы тут вместе с Google-ИИ экспериментировали-экспериментировали, да и выэкспериментировали. Сделали два эшелона обороны. Сначала NGINX по некоторым критериям даёт отлуп 444, а затем fail2ban подхватывает из логов тех, кого дважды-трижды отлупили за последние 5 минут, и банит их по IP-адресу на двое суток. Изначально хотели на сутки, но потом подумали, что у них может быть суточная ротация, так что вот.

И вот нам результат за три часа, список забаненных с группировкой по сетям класса B:
awk '/ 444 0 / {print $1}' /var/log/nginx/domains/DOMAIN.log | cut -d. -f1,2 | sort | uniq -c | sort -nr | head -n 15
40382 47.82.x.x
13780 43.173.x.x
6136 95.173.x.x
5194 114.129.x.x
3714 149.88.x.x
754 2.56.x.x
571 43.163.x.x
558 18.225.x.x
558 18.175.x.x
558 13.39.x.x
499 185.162.x.x
479 45.148.x.x
351 57.129.x.x
301 84.37.x.x
298 94.154.x.x

Google-ИИ писал(а):47.82.x.x (Alibaba Cloud / США): Это огромная ферма ботов, арендованная в облаке Alibaba. Они генерируют основной мусор.
43.173.x.x (Tencent / Сингапур): Еще один азиатский гигант. Типичные облачные сканеры, которые ищут уязвимости или парсят контент.
18.225.x.x, 18.175.x.x, 13.39.x.x: Это всё Amazon (AWS). Они работают очень аккуратно, но методично.
По странам интересно, на первый взгляд, но практической пользы не вижу:
awk '/ 444 0 / {print $1}' /var/log/nginx/domains/navimba.com.log | sort -u | xargs -I% geoiplookup % | awk -F': ' '{print $2}' | sort | uniq -c | sort -nr
2976 US, United States
1769 SG, Singapore
668 VN, Vietnam
402 FR, France
372 BR, Brazil
342 CN, China
284 GB, United Kingdom
248 RU, Russian Federation
245 IN, India
174 CH, Switzerland
159 IQ, Iraq
143 BD, Bangladesh
131 DE, Germany
125 AR, Argentina
107 AT, Austria
106 NL, Netherlands
dotez
phpBB 2.0.1
Сообщения: 294
Стаж: 15 лет 3 месяца
Благодарил (а): 3 раза

Лезут боты из Сингапура

Сообщение dotez »

Товарищи, боты из сингапура просто ДДосят форум( еле работает который день. десятки тысяч посещений в сутки делают....
есть ли какое то расширение которое бы их отсекало сразу? ну например если айпи чела не РФ или СНГ то ему надо сразу ввести какую нибудь капчу иначе он на сайт вообще не попадет...?
Аватара пользователя
rxu
phpBB Guru
phpBB Guru
Сообщения: 17166
Стаж: 19 лет 10 месяцев
Откуда: Красноярск
Благодарил (а): 580 раз
Поблагодарили: 1765 раз

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

Сообщение rxu »

dotez, никакие расширения не помогут от DDoS.
Блокируйте на серверном уровне.
Изображение
Аватара пользователя
Kuskow
phpBB 2.0.1
Сообщения: 276
Стаж: 9 лет 9 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 19 раз

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

Сообщение Kuskow »

dotez, если сервер под NGINX, то можно сделать как я написал сообщением выше. Тогда непрошенных гостей станет не более 50.
Если доступа к конфигурации NGINX нет, можно вбить костыли в начало файлов viewtopic.php, viewforum.php, search.php.

Основная мысль такая: пользователи не приходят на страницу поиска или просмотра профилей без cookies. Значит всех таких можно сразу выбрасывать.

Вторая идея - откидывать &sid= и делать редирект 301 на страницу без него. Это убавит гостей не тысячи, но в сотни раз точно. Сервер перестанет задыхаться, обычные пользователи смогут спокойно посещать форум.
Аватара пользователя
Siava
Поддержка
Поддержка
Сообщения: 5514
Стаж: 21 год 2 месяца
Откуда: Питер
Благодарил (а): 185 раз
Поблагодарили: 770 раз

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

Сообщение Siava »

Kuskow писал(а): 16.03.2026 18:57 а затем fail2ban подхватывает из логов тех, кого дважды-трижды отлупили за последние 5 минут, и банит их по IP-адресу на двое суток
Если не секрет, сколько в пике было забаненных адресов в fail2ban? А то я развлекался как-то подобным образом и примерно после 200тыс серверу было не очень комфортно)
Еще одно нарушение правил и будете забанены. © Mr. Anderson
Ты очистил кеш? © Sheer
https://siava.ru (phpbb 2.0.x 3.5.x)
dotez
phpBB 2.0.1
Сообщения: 294
Стаж: 15 лет 3 месяца
Благодарил (а): 3 раза

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

Сообщение dotez »

Kuskow писал(а): Сегодня 12:38 сли доступа к конфигурации NGINX нет, можно вбить костыли в начало файлов viewtopic.php, viewforum.php, search.php.
подскажите пожалуйста что конкретно за костыли надо прописать?
Аватара пользователя
Kuskow
phpBB 2.0.1
Сообщения: 276
Стаж: 9 лет 9 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 19 раз

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

Сообщение Kuskow »

Siava, про пик сказать не могу, только сегодня переехал на новый сервер, хоть и старый чувствовал себя комфортно. 200 тыс не грозит, наверное, потому что бан только на 2 дня, потом всё заново. В принципе, можно вообще не банить - NGINX справляется и без этого.

Отправлено спустя 5 минут 47 секунд:
dotez, предлагаю три первых костыля, которые потом можно усовершенствовать - надеюсь, опытные товарищи подскажут, а пока в начинающих.

В файле search.php в самом начале находим строку include($phpbb_root_path . 'common.' . $phpEx); и сразу после неё добавляем:

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

if (empty($_COOKIE)) {
    header("HTTP/1.1 403 Forbidden");
    header("Connection: close");
    exit;
}

В файле viewtopic.php сразу же после <?php добавляем:

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

if (isset($_GET['sid']) || isset($_GET['hilit'])) {
    $url_parts = parse_url($_SERVER['REQUEST_URI']);
    parse_str($url_parts['query'] ?? '', $params);
    unset($params['sid']);
    unset($params['hilit']);
    $new_query = http_build_query($params);
    $new_url = $url_parts['path'] . ($new_query ? '?' . $new_query : '');
    header('Location: ' . $new_url, true, 301);
    exit;
}

В файле viewforum.php сразу же после <?php добавляем:

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

if (isset($_GET['sid'])) {
    $url_parts = parse_url($_SERVER['REQUEST_URI']);
    parse_str($url_parts['query'] ?? '', $params);
    unset($params['sid']);
    $new_query = http_build_query($params);
    $new_url = $url_parts['path'] . ($new_query ? '?' . $new_query : '');
    header('Location: ' . $new_url, true, 301);
    exit;
}
dotez
phpBB 2.0.1
Сообщения: 294
Стаж: 15 лет 3 месяца
Благодарил (а): 3 раза

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

Сообщение dotez »

Kuskow писал(а): Сегодня 12:58 dotez, предлагаю три первых костыля, которые потом можно усовершенствовать - надеюсь, опытные товарищи подскажут, а пока в начинающих.
cпасибо, прописал, жду результата))

количество юзеров Онлайн попрежнему бешеное НО уже сайт не выпадает в 503 ошибку сервера регулярно.
Аватара пользователя
Kuskow
phpBB 2.0.1
Сообщения: 276
Стаж: 9 лет 9 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 19 раз

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

Сообщение Kuskow »

Если можете менять .htaccess, вот такое туда дописать, и будет вообще радость. Вместо звёздочек нужно указать то, что написано в админке phpBB во вкладке Общие->Настройки cookies. Если RewriteEngine On уже есть в .htaccess, то первую строчку этого кода исключить, остальное сразу за ней вставить. В этом коде могуть быть ошибки, упущения. Очень надеюсь, знающие люди его осмотрят критическим взглядом и выскажут, что тут не так.

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

RewriteEngine On
# Проверяем ложные URI
RewriteCond %{REQUEST_URI} (sid=|viewtopic\.php\?start=|search\.php|ucp\.php|posting\.php|memberlist) [NC]
# Проверяем отсутствие куки (если куки нет — подозрительно)
RewriteCond %{HTTP_COOKIE} !phpbb3_***** [NC]
# Исключаем полезных ботов, чтобы не выпасть из поиска
RewriteCond %{HTTP_USER_AGENT} !(YandexBot|Googlebot|bingbot|whatsapp|telegram|facebookexternalhit) [NC]
# Результат: отдаем 403 ошибку
RewriteRule ^ - [F,L]
dotez
phpBB 2.0.1
Сообщения: 294
Стаж: 15 лет 3 месяца
Благодарил (а): 3 раза

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

Сообщение dotez »

Kuskow писал(а): Сегодня 17:04 Если можете менять .htaccess,
а можно ли через htaccess отдавать 403 код по ГЕО ??
например указать что если айпи Сингапура или Китая то 403 сразу.
??
Последний раз редактировалось dotez 22.03.2026 18:30, всего редактировалось 1 раз.
Аватара пользователя
Kuskow
phpBB 2.0.1
Сообщения: 276
Стаж: 9 лет 9 месяцев
Откуда: 🇰🇿 Караганда
Благодарил (а): 23 раза
Поблагодарили: 19 раз

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

Сообщение Kuskow »

Навряд ли. Да и неправильно это. Отсекаются те, кто ходит через VPN.
dotez
phpBB 2.0.1
Сообщения: 294
Стаж: 15 лет 3 месяца
Благодарил (а): 3 раза

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

Сообщение dotez »

Kuskow писал(а): Сегодня 17:04 RewriteEngine On
# Проверяем ложные URI
RewriteCond %{REQUEST_URI} (sid=|viewtopic\.php\?start=|search\.php|ucp\.php|posting\.php|memberlist) [NC]
# Проверяем отсутствие куки (если куки нет — подозрительно)
RewriteCond %{HTTP_COOKIE} !phpbb3_***** [NC]
# Исключаем полезных ботов, чтобы не выпасть из поиска
RewriteCond %{HTTP_USER_AGENT} !(YandexBot|Googlebot|bingbot|whatsapp|telegram|facebookexternalhit) [NC]
# Результат: отдаем 403 ошибку
RewriteRule ^ - [F,L]
ну тогда ждем комментариев и доработок по этому коду от ГУРУ )))

Отправлено спустя 1 час 31 минуту 45 секунд:
предлагаю дополнить ботов
# Исключаем полезных ботов, чтобы не выпасть из поиска
RewriteCond %{HTTP_USER_AGENT} !(YandexBot|Googlebot|bingbot|whatsapp|telegram|facebookexternalhit|Baidu|Majestic-12|Feedfetcher-Google|Mediapartners-Google|msnbot|FAST-WebCrawler|W3C_Validator|YahooBot|AdsBot-Google|Exabot|AlexaBot) [NC]

Отправлено спустя 11 минут 26 секунд:
Kuskow писал(а): Сегодня 18:16 Навряд ли. Да и неправильно это. Отсекаются те, кто ходит через VPN.
вот так я добавил в htaccess который в папке самого phpbb3 + добавил тоже самое в htaccess корня самого сайта
image.png
У вас нет необходимых прав для просмотра вложений в этом сообщении.

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