October 19, 20232 yr Готовый список ботов для блокировки через Nginx.conf Информация Submitter Zero108 Submitted 19.10.2023 Category Anti-spam and security Language: английский Просмотр файла
April 10Apr 10 Author Достали перегрузки сервера, когда видишь, что по top нагрузка зашкаливает. Поставил себе эту блокировку. Вздохнул свободно.
April 12Apr 12 Author Поменял у себя правила блокировки на эти: # Проверка сначала блокирует IP, затем для разрешённых User-Agent прерывает дальнейшие проверки (break), а для запрещённых — возвращает 403 # Проверяем IP и блокируем, если IP заблокирован if ($block_ip) { return 403; } # Если User-Agent явно разрешён, завершаем обработку if ($badagent = 0) { break; # Завершаем обработку, если агент разрешён } # Если User-Agent явно запрещён, возвращаем ошибку 403 if ($badagent = 1) { return 403; }А то атака была с заблокированного ip и с разрешенного user agent. И до блокировки не дошло. Теперь всё в порядке с новым правилом: сначала смотрим ip, а потом user agent. Edited April 12Apr 12 by Zero108
April 15Apr 15 Author Обновил немного правила. Отслеживаю логи. Версия 3.4.1 обещает быть полностью рабочей. Edited April 15Apr 15 by Zero108
April 15Apr 15 Author Обновлено до 3.5.0. Ну, всё, вышел на простор и рублю шашкой налево и направо! 🙂
April 16Apr 16 Author Создатели ИИ-ботов будут гореть в специальном аду. Там будет такое мучение: грешник просит стакан воды. Ему приносят пустой графин. Он просит стакан воды опять. Ему играют на рояле, на котором стоит пустой стакан. Он просит стакан воды. Ему приносят стакан, но без воды. И так по кругу.
April 21Apr 21 Author Кстати, после применения настройки количество заходов на ваш сайт через впн, прокси, сокс, Тор уверенно стремится нулю, так как количество заблокированных AS типа хостинг стремится к 100%. Решается проблема спамеров и дублей учетных записей пользователей. Edited April 21Apr 21 by Zero108
April 22Apr 22 Author Я не знаю, остались ли тут владельцы сайтов, которые пользуются проксированием от Cloudflare. Сейчас готовлю новый апдейт - скрипт автоматического включения опции Under Attack в настройках каждого подключенного сайта на Cloudflare при превышении порога нагрузки на CPU в 70%. Скрипт висит в фоне и запускается по крону. При снижении нагрузку отправляет команду также по API для отключения этого режима. Практика показывает, что для хорошо посещаемых сайтов это нужная опция. Просто блокировка не всегда помогает, иногда перегрузка.
April 22Apr 22 CF блокируют сейчас, так что вряд ли скрипт будет востребован в ближайшее время. Но идея норм.
April 22Apr 22 Author Я проверил, api cf не блокируется. Вообщем, если сайт не для российской аудитории, то пригодится. Будем жить, ребята! 😉
April 25Apr 25 Author Первые ощущения после того, как все настройки оптимизированы и скрипты отдебажены. Полегче стало дышать. Времена меняются очень быстро. Сейчас практически 99% трафика - боты и впн. Не как 5 лет назад. И уж тем более не как 8 лет назад. 10-15 лет назад - это уже история первобытного мира. Короче, нужно ставить обязательно. Отсеиваются 99% впн, прокси, сокс. Боты отсеиваются на уровне ~80-90% по ощущениям. Нет нагрузки на сервер. А если есть, то автоматически подается сигнал включить на Cloudflare режим UNDER ATTACK для всех доменов. Сайт доступен большее время. Меньше нервов и трат. Красота! ☘️ DeepSeek творит чудеса. Edited April 25Apr 25 by Zero108
May 2May 2 Author Выкатил версию 3.8.0. Переработано всё: стратегия, количество проверок, способ подключения. Edited May 2May 2 by Zero108
May 6May 6 Author ISPManager lite перезаписывает конфиг nginx для домена (в vhosts) при редактировании www домена в панели ISPManager lite. Скорее всего эта панелька не единственная, которая так делает. Имейте в виду, что нужно перезаписывать потом конфиги руками.
May 11May 11 Author Nginx 1.30 - пушка-гонка. После обновления до этой версии сайты стали работать на 30% быстрее в браузере по визуальным ощущениям. Edited May 11May 11 by Zero108
May 12May 12 Author Пример работы защиты и анализ DeepSeekЛог:45.164.211.89 - [12/May/2026:19:14:09 +0400] - 444 "filter_bypass" - "GET /catalog/index.php?PAGEN_3=2&q=seascape&s=search_results%C2%A7ion_id%3D133%C2%A7ion_id%3D149&set_filter=y&type=catalog HTTP/2.0" 0 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.58 Safari/537.36" "45.164.211.89" По этому логу сработало правило filter_bypass - защита от обфускации атак через спецсимволы.Что именно сработало:В запросе есть параметр: %C2%A7ion_id%3D133%C2%A7ion_id%3D149После декодирования URL это превращается в: §ion_id=133§ion_id=149Какое правило в blockinj.conf:map $args $filter_bypass { default 0; "~*%C2%A7" 1; # § (section sign) - из логов атак Bitrix "~*%c2%a7" 1; # § (lowercase) - обход регистра "~*§" 1; # raw section sign }Почему это сработало:Злоумышленник пытался обойти фильтры SQL-инъекций, используя символ § (раздел) вместо обычных символов. Это классический метод обфускации атак на 1С-Битрикс (в логах часто встречается ion_id - это параметр Битрикс).Что было заблокировано:IP: 45.164.211.89URL: /catalog/index.php с параметрами поискаБлокировка: 444 (без ответа клиенту)Причина: filter_bypass - попытка обхода фильтров через спецсимвол §Вердикт: Правило сработало правильно - защитило сайт от потенциальной SQL-инъекции через обфусцированные параметры. Блокировка легитимная.Цель такой атаки:Злоумышленник пытался выполнить SQL-инъекцию через обфускацию (сокрытие) вредоносного кода.Что он хотел сделать:Параметр ion_id в Битрикс обычно используется для фильтрации элементов инфоблока. Атака строится так:Обычный запрос: ?ion_id=133Атака (без обфускации): ?ion_id=133 UNION SELECT password FROM usersОбфусцированная атака (через §): ?§ion_id=133§ion_id=149 ... (скрытый SQL-код)Конкретные цели:Извлечение данных из базы:- Логины и пароли пользователей- Email-адреса- Персональные данные- Данные кредитных карт (если есть)Обход авторизации:- Вход в админку без пароля- Повышение привилегийМодификация данных:- Изменение цен на товары- Добавление администраторов- Удаление информацииВыполнение команд на сервере:- Загрузка веб-шеллов (backdoor)- Установка вредоносного ПО- Использование сервера для DDoS-атакПочему использовали символ §:Это обход фильтров безопасности:- Стандартные WAF блокируют SELECT, UNION, -- и т.д.- Символ § не распознается как опасный- После декодирования запрос становится вредоноснымЧто спасло ваш сайт:Ваше правило filter_bypass распознало этот трюк и заблокировало запрос до того, как он попал на обработку в PHP/Битрикс.Дополнительные индикаторы атаки:# В логе видно множественные параметры:&q=seascape&s=search_results§ion_id=133§ion_id=149# Злоумышленник пытался внедрить код несколько раз (два §ion_id)Вердикт: Это была автоматизированная сканирующая атака (вероятно, через SQLmap или аналогичный инструмент) с целью найти уязвимость для последующего взлома. Ваша защита сработала корректно.Таких и других запросов за сутки приходит сотни тысяч. Напоминаю, что в текущих реализях 99% посетителей сайтов - боты, а не люди.Вот статистика по одному из доменов по данным Cloudflare - на изображении количество уникальных запросов в сутки: Edited May 12May 12 by Zero108
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.