Identica

Sentinel

Блокируйте подключения, которые раз за разом не проходят вход или злоупотребляют им, и ограничивайте число аккаунтов на адрес.

Sentinel следит за повторяющимися попытками и на время блокирует подключение, которое за ними стоит. Каждый sentinel считает свой вид попыток:

SentinelЧто считаетПо умолчанию
спорное подключениеподключения с одного адреса, отклонённые потому, что под их ником уже входит другой адресвключён: 5 отказов блокируют адрес на 1 минуту
спам продолжениямипопытки продолжить ожидающий вход или перейти в нём дальшевыключен
перебор паролей Credentialневерные пароливключён: 5 неверных паролей блокируют игрока на 5 минут

Sentinel спорных подключений считает по адресу, какой бы ник ни использовало каждое подключение, поэтому он останавливает того, кто перебирает ники, под которыми сейчас идёт вход. См. Два подключения с одним ником.

Защита от перебора паролей принадлежит провайдеру Credential и настраивается в его настройках; см. Защита от перебора паролей.

Sentinel также может ограничить число аккаунтов, зарегистрированных с одного адреса. По умолчанию это ограничение выключено.

Включение и выключение

У каждого sentinel есть свой переключатель enabled в features/sentinel/settings:

sentinels:
  resumeSpam:
    enabled: true
    maxAttempts: 10
    lockout:
      enabled: true
      duration: "30s"
  contestedConnection:
    enabled: true
    maxAttempts: 5

Проверки, которые выполняются до того, как Identica узнаёт провайдера игрока, например sentinel спорных подключений, подчиняются только этим настройкам. Проверки, которые выполняются, когда провайдер уже известен, например защита от перебора паролей Credential, учитывают и переключатель провайдера:

providers:
  - id: "credential"
    features:
      sentinel:
        enabled: false

Ограничение аккаунтов на адрес

Когда accountsPerAddress включён, с одного адреса можно зарегистрировать не больше maxAccounts аккаунтов. Следующего игрока, который попробует зарегистрироваться с этого адреса, отключает сообщение ещё до того, как у него спросят пароль. Игроки, у которых аккаунт уже есть, входят как обычно.

sentinels:
  accountsPerAddress:
    enabled: true
    maxAccounts: 3
    window: "0m"
    allowlist:
      - "203.0.113.0/24"
  • Какие аккаунты считаются: аккаунты, которые ещё существуют и адрес регистрации которых Identica ещё хранит. Удаление аккаунта освобождает его место. Аккаунты, зарегистрированные до того, как Identica начала хранить адреса, и аккаунты, созданные администратором из консоли, не считаются.
  • window: при "30d" считаются только регистрации за последние 30 дней, а сообщение говорит игроку, когда освободится место. 0m считает все аккаунты.
  • allowlist: адреса, которые никогда не ограничиваются, — для мест, где один адрес делят много настоящих игроков, например для школы.
  • Один адрес: в Адресах аккаунтов описано, какие адреса хранит Identica и когда два адреса считаются одним. По умолчанию весь блок IPv6 /64 считается одним адресом, потому что игрок может свободно менять адрес внутри него.

Ограничение срабатывает, когда провайдер игрока уже известен, поэтому учитывает переключатель провайдера, показанный выше. Например, если выключить sentinel для Premium, премиум-игроки смогут регистрироваться с любого адреса.

За внешним прокси

Если игроки заходят через сервис вроде TCPShield, который не передаёт их адрес, все игроки выглядят так, будто приходят с адреса сервиса, и после нескольких регистраций ограничение отклоняет всех. Сначала настройте передачу адреса или перечислите адреса сервиса в ignored в identity/addresses.yml.

Предупреждения и сообщения

Sentinel может предупредить перед блокировкой: при warning.enabled и warning.thresholdPercentage: 70 игрок с maxAttempts: 10 получает предупреждения начиная с восьмой попытки.

Сообщения о блокировке находятся в features/sentinel/messages; {seconds} — оставшееся время. Пустое сообщение отключает текст, но блокировка всё равно действует. Сообщение ограничения аккаунтов знает ещё и {maxAccounts}.

С репликацией счётчики и блокировки общие для всех прокси сети. Ограничение аккаунтов считает по базе данных, поэтому прокси с общей базой данных делят и его.

Все настройки описаны на странице Настройки Sentinel.

На этой странице