Антирейд
Антирейд защищает сервер от массового входа участников и подозрительных новых аккаунтов.
В зависимости от выбранного режима бот может:
- выдать участнику карантинную роль;
- исключить участника с сервера;
- обнаружить массовый вход за короткое время;
- временно запретить отправку сообщений через ручной локдаун.
Важно: обнаружение массового входа само по себе не включает локдаун. Команду локдауна необходимо запускать вручную.
Как включить антирейд
Откройте страницу «Антирейд».
Она доступна:
- владельцу сервера;
- участникам с разрешением Discord Администратор;
- участникам с разрешением Управлять сервером.
Чтобы настроить защиту:
- Включите переключатель Включить антирейд.
- Выберите режим работы.
- Укажите количество входов и временное окно для обнаружения массового входа.
- Укажите минимальный возраст аккаунта.
- Если выбран режим Soft, назначьте обычную карантинную роль.
- Нажмите Сохранить.
По умолчанию антирейд выключен.
Антирейд имеет собственный переключатель и не отображается отдельной карточкой в общем списке модулей.
Переключатель Модерация на странице обзора сервера влияет только на доступность команд /antiraid. Проверка новых участников продолжает работать, если сам антирейд включён.
Основные настройки также можно изменять командами:
/antiraid on;/antiraid off;/antiraid threshold;/antiraid min-age;/antiraid mode;/antiraid quarantine-role.
Время автоматического снятия состояния рейда можно изменить только через панель управления.
Режимы работы
Антирейд поддерживает два режима.
Soft
Подозрительному участнику выдаётся карантинная роль.
Этот режим рекомендуется использовать, если вы хотите временно ограничивать новых участников, но не исключать их с сервера.
Для работы режима необходимо выбрать карантинную роль и правильно настроить права бота.
Hard
Подозрительный участник исключается с сервера.
Для работы режима бот должен иметь разрешение Исключать участников, а его роль должна находиться выше роли проверяемого участника.
Настройки
| Параметр | Где изменяется | Значение по умолчанию | Описание |
|---|---|---|---|
| Включить антирейд | Панель, /antiraid on, /antiraid off | Выключено | Включает проверку новых участников. Боты при проверке игнорируются. |
| Входов для срабатывания | Панель, /antiraid threshold | 10 | Количество входов, после которого бот определит массовую волну. Допустимо от 2 до 200. |
| Временное окно | Панель, /antiraid threshold | 30 секунд | Период, за который учитываются входы. Допустимо от 5 до 3600 секунд. |
| Минимальный возраст аккаунта | Панель, /antiraid min-age | 7 дней | Аккаунт младше указанного возраста считается подозрительным. Допустимо от 0 до 3650 дней, но значение 0 фактически заменяется на 7. |
| Режим | Панель, /antiraid mode | soft | Soft выдаёт карантинную роль, Hard исключает участника. |
| Карантинная роль | Панель, /antiraid quarantine-role | Не задана | Роль, которая выдаётся подозрительным участникам в режиме Soft. |
| Автоматическое снятие состояния рейда | Только панель | 10 минут | Через указанное время бот снимает индикатор активной рейд-волны. Допустимо от 1 до 1440 минут. |
Автоматическое снятие состояния рейда:
- не снимает карантинные роли;
- не возвращает исключённых участников;
- не отключает ручной локдаун.
В панели карантинную роль можно как назначить, так и удалить. Команда /antiraid quarantine-role позволяет только назначить роль.
Состояния в панели
В верхней части страницы отображаются текущие состояния защиты.
| Состояние | Что означает |
|---|---|
| Антирейд | Включена ли автоматическая проверка новых участников. |
| Рейд | Обнаружена ли активная массовая волна входов. |
| Локдаун | Запущен ли ручной запрет отправки сообщений. |
| Последнее срабатывание | Время последнего обнаруженного массового входа. |
Одиночное наказание подозрительного аккаунта не обновляет поле Последнее срабатывание.
Состояния рейда и локдауна в панели доступны только для просмотра.
Как проверяется новый участник
Когда на сервер входит человек, бот выполняет проверку, если антирейд включён.
Сначала вход добавляется в список недавних входов. Этот список используется для обнаружения массовой волны.
Если массовый порог ещё не достигнут, бот проверяет следующие признаки:
- возраст аккаунта меньше установленного значения;
- у аккаунта стандартная аватарка Discord;
- отображаемое имя состоит из букв, пробелов или символов
_,.,-и заканчивается как минимум четырьмя цифрами.
Слишком молодой возраст аккаунта уже считается достаточной причиной для срабатывания защиты.
Стандартная аватарка и большое количество цифр в конце имени повышают уровень подозрительности, но без слишком молодого возраста сами по себе не приводят к наказанию.
Установить минимальный возраст аккаунта в
0дней нельзя. Интерфейс принимает это значение, но бот фактически применяет стандартное значение —7дней.
После обнаружения подозрительного одиночного входа:
- в режиме Soft бот пытается выдать карантинную роль;
- в режиме Hard бот пытается исключить участника.
Результат записывается в журнал аудита. Если для антирейда настроен Discord-канал логов, бот также отправляет сообщение в этот канал.
Если выбран режим Soft, но карантинная роль не настроена, подозрительный одиночный участник останется на сервере. Автоматический переход в режим Hard в такой ситуации работает только при массовой волне.
Как обнаруживается массовый вход
Бот считает всех вошедших людей за выбранный промежуток времени.
При этом учитываются не только подозрительные или молодые аккаунты, а все новые участники, кроме ботов.
Например, при настройке:
- количество входов —
10; - временное окно —
30секунд;
массовая волна будет обнаружена, если за 30 секунд на сервер войдут 10 человек.
Когда порог достигнут, индивидуальная проверка последнего участника уже не выполняется. Бот обрабатывает всех участников, сохранённых в текущем временном окне.
В режиме Soft
Бот пытается выдать карантинную роль всем участникам из текущего окна, которые всё ещё находятся на сервере.
Если карантинная роль не выбрана, только для этой массовой волны бот переключается на режим Hard и пытается исключить участников.
В режиме Hard
Бот пытается исключить всех участников из текущего временного окна.
После срабатывания массовой защиты:
- включается состояние Рейд;
- сохраняется время срабатывания;
- создаётся событие в журнале аудита;
- при наличии настроенного канала логов отправляется сообщение.
Ручной локдаун при этом автоматически не включается.
Автоматическое снятие состояния рейда
Через заданное количество минут бот пытается снять состояние Рейд.
Это влияет только на индикатор активной волны.
После снятия состояния:
- карантинные роли остаются у участников;
- исключённые участники не возвращаются;
- локдаун не снимается;
- антирейд продолжает работать.
Команды
Настройка антирейда
| Команда | Описание | Дополнительное право |
|---|---|---|
/antiraid on | Включает автоматическую проверку новых участников. | antiraid.config |
/antiraid off | Выключает проверку и сбрасывает состояние рейда. Не снимает локдаун и карантинные роли. | antiraid.config |
/antiraid threshold count:<число> seconds:<число> | Устанавливает количество входов и временное окно. | antiraid.config |
/antiraid min-age days:<число> | Устанавливает минимальный возраст аккаунта. | antiraid.config |
/antiraid mode | Выбирает режим soft или hard. | antiraid.config |
/antiraid quarantine-role | Назначает карантинную роль для режима Soft. | antiraid.config |
/antiraid status | Показывает настройки, состояния и количество входов в текущем окне. | antiraid.config |
Для команды /antiraid threshold:
countдолжен быть от 2 до 200;secondsдолжен быть от 5 до 3600.
Для команды /antiraid min-age значение days должно быть от 0 до 3650. Значение 0 фактически будет заменено на 7.
В качестве карантинной роли нельзя выбрать:
- роль
@everyone; - роль, управляемую ботом или другой интеграцией.
Управление локдауном
| Команда | Описание | Дополнительное право |
|---|---|---|
/antiraid lockdown | Запрещает роли @everyone отправлять сообщения в существующих текстовых каналах. | antiraid.lockdown |
/antiraid unlock | Восстанавливает сохранённые значения разрешения Отправлять сообщения. | antiraid.unlock |
Владелец сервера и участники с разрешением Discord Администратор всегда проходят проверку прав.
Остальным участникам необходимо выдать соответствующее дополнительное право через раздел «Права для команд».
Для использования команд также должен быть включён общий модуль Модерация. Дополнительное право не позволяет обойти выключенный модуль.
Ручной локдаун
Команда /antiraid lockdown работает независимо от того, включён ли автоматический антирейд.
При запуске локдауна бот:
- проверяет существующие текстовые каналы;
- сохраняет текущее значение разрешения Отправлять сообщения для роли
@everyone; - устанавливает запрет на отправку сообщений.
Если бот не смог изменить ни одного канала, локдаун не будет отмечен как активный.
Если удалось закрыть хотя бы один канал, локдаун считается активным, даже если в остальных каналах произошли ошибки.
Ответ команды показывает количество каналов, которые не удалось изменить.
Снятие локдауна
Команда /antiraid unlock восстанавливает только сохранённое значение разрешения Отправлять сообщения для роли @everyone.
Другие изменения разрешений, выполненные администраторами во время локдауна, не отменяются.
Также необходимо учитывать:
- удалённые после запуска локдауна каналы пропускаются;
- новые каналы, созданные после запуска локдауна, автоматически не закрываются;
- если данные о сохранённых правах отсутствуют, бот не сможет восстановить исходное значение.
Почему участники всё ещё могут писать
Запрет отправки сообщений для роли @everyone не всегда гарантирует полную блокировку сервера.
Участник всё ещё может писать, если:
- у него есть разрешение Администратор;
- другая его роль явно разрешает отправку сообщений;
- бот не имеет доступа к конкретному каналу;
- разрешения категории или канала переопределяют серверные настройки.
После запуска локдауна рекомендуется проверить результат с обычного аккаунта без административных и специальных ролей.
Права и иерархия ролей
Для карантина
Боту необходимо разрешение Управлять ролями.
Его самая высокая роль должна находиться выше карантинной роли в списке ролей сервера.
Для режима Hard
Боту необходимо разрешение Исключать участников.
Самая высокая роль бота должна находиться выше самой высокой роли участника, которого бот пытается исключить.
Владельца сервера исключить невозможно.
Для локдауна
Боту необходимо право изменять разрешения в каждом текстовом канале.
Разрешение Управлять ролями, выданное на уровне сервера, может быть ограничено настройками отдельного канала или категории.
Ограничения
Перезапуск бота
Список недавних входов хранится временно и сбрасывается после перезапуска бота.
Из-за этого входы, произошедшие до перезапуска, не будут учитываться вместе с новыми входами.
Минимальный возраст аккаунта
Значение 0 не отключает проверку возраста. Вместо него применяется значение 7 дней.
Чтобы избежать непредсказуемого поведения, указывайте значение больше нуля.
Автоматическое снятие рейда
Время автоматического снятия состояния рейда не означает непрерывный период без новых входов.
Бот ждёт указанное время с момента срабатывания, а затем проверяет только последние секунды текущего временного окна.
Состояние рейда после перезапуска
Таймер автоматического снятия состояния рейда не восстанавливается после перезапуска бота.
Если состояние Рейд осталось включённым:
- выполните
/antiraid off; - снова включите защиту командой
/antiraid on.
Продолжающийся поток участников
После обработки первой массовой группы продолжающийся поток входов может не привести к повторной обработке новых участников, пока порог остаётся превышенным.
При продолжающейся атаке рекомендуется вручную запустить /antiraid lockdown.
Выключение антирейда
Команда /antiraid off:
- не снимает ручной локдаун;
- не удаляет уже выданные карантинные роли;
- не возвращает исключённых участников;
- не выполняет команду
/antiraid unlock.
Для снятия локдауна необходимо отдельно выполнить /antiraid unlock.