BaronessAuth DocumentationBaronessAuth

📱 Telegram 2FA

Настройки двухфакторной аутентификации через Telegram в BaronessAuth

Telegram 2FA

Путь конфига: content/BaronessAuth/config/methods/telegram.yml

Двухфакторная аутентификация через Telegram бота. Обеспечивает дополнительную безопасность для вашего сервера.

📋 Описание

Telegram 2FA — это метод двухфакторной аутентификации, который использует Telegram бота для подтверждения входа игроков. Когда игрок пытается войти на сервер, он получает уведомление в Telegram с запросом на подтверждение входа.

⚙️ Основные настройки

enabled

Включает или отключает Telegram 2FA.

enabled: true  # Включить Telegram 2FA
enabled: false # Отключить Telegram 2FA

display-name

Человеческое название метода, которое показывается игрокам.

display-name: '2FA в Telegram'

🤖 Настройки бота

Токен бота

bot:
  token: 'токен-вашего-бота'

Важно: Получите токен у @BotFather в Telegram.

Команды бота

bot:
  commands:
  - ''
  - '/привязать'
  - '!привязать'
  - '/привязка'
  - '!привязка'
  - '/link'

Параметры:

  • commands - список команд для взаимодействия с ботом
  • Если указать пустую команду '', любое сообщение будет считаться попыткой ввода кода

Обработка команд

bot:
  handle-valid-code-even-when-command-is-invalid: true

Параметры:

  • handle-valid-code-even-when-command-is-invalid - принимать корректные коды, даже если команда была указана неправильно

Требование подписки на каналы

bot:
  require-channel-subscription:
    enabled: false
    ids:
    - -1001603471277
    message: '⛔ Для использования бота вы должны подписаться на <вставьте своё>.'

Параметры:

  • enabled - включить ли требование подписки
  • ids - список ID каналов для подписки
  • message - сообщение при отсутствии подписки

Важно: Бот должен быть добавлен в эти каналы как администратор (права не нужны).

💬 Сообщения бота

Основные сообщения

bot:
  messages:
    invalid-action: '❓ Это действие больше неактуально.'
    too-many-links-for-account: '⭕ Вы не можете привязать ещё больше игроков к этому аккаунту.'
    successful-link: '✅ Вы успешно привязали аккаунт <name>!'
    select-account: 'Выберите аккаунт:'

Сообщения 2FA

bot:
  messages:
    2fa-request-start: |-
      ⚠ На ваш аккаунт, <name>, пытаются войти с IP <address> (<city>, <country>).

      **Тот, кто пытается войти, правильно ввёл ваш пароль!**
      Если это не вы, отклоните и **смените пароль немедленно** (нажмите "сброс пароля")!

    2fa-request-accept: '✅ Вы приняли вход на аккаунт <name> с IP <address> (<city>, <country>).'

    2fa-request-decline: |-
      ⭕ Вы отклонили вход на аккаунт <name> с IP <address> (<city>, <country>).

      Если это были не вы, смените пароль немедленно (нажмите "сброс пароля")!

    2fa-request-cancel: |-
      ⭕ На ваш аккаунт, <name>, пытались войти с IP <address> (<city>, <country>).

      Процесс был отменён - игрок не вошёл.

      Если это были не вы, смените пароль немедленно (нажмите "сброс пароля")!

Уведомления

bot:
  messages:
    notification-login: |-
      🔔 На ваш аккаунт, <name>, вошли, используя <methods>.
      Вход был с IP <address> (<city>, <country>).

Сообщения об ошибках

bot:
  messages:
    invalid-input: |-
      ❓ Вы хотели привязать аккаунт?
      Зайдите на сервер, введите `/link telegram` и полученный код отправьте сюда.

    unknown-code: |-
      ❓ Неизвестный код.
      Зайдите на сервер и введите `/link telegram`, чтобы получить новый.

🔘 Кнопки бота

Основные кнопки

bot:
  buttons:
    # Кнопки для статуса
    status:
      text: '📊 Статус'
      callback: 'status'
    
    # Кнопки для 2FA
    accept:
      text: '✅ Принять'
      callback: 'accept'
    
    decline:
      text: '❌ Отклонить'
      callback: 'decline'
    
    # Кнопки для управления
    reset-password:
      text: '🔒 Сброс пароля'
      callback: 'reset_password'
    
    unlink:
      text: '🔗 Отвязать'
      callback: 'unlink'

Настройка кнопок

bot:
  buttons:
    # Показывать кнопки в сообщениях
    show-in-messages: true
    
    # Размер кнопок
    button-size: 'SMALL'  # SMALL, MEDIUM, LARGE
    
    # Расположение кнопок
    inline: true

🔗 Привязка аккаунтов

Настройки привязки

linking:
  # Максимальное количество привязок на один Telegram аккаунт
  max-links-per-account: 5
  
  # Время жизни кода привязки
  code-lifetime: '5 мин'
  
  # Сообщение при успешной привязке
  success-message: '✅ Аккаунт успешно привязан к Telegram!'
  
  # Сообщение при ошибке привязки
  error-message: '❌ Ошибка привязки аккаунта.'

Команда привязки

linking:
  command:
    aliases:
    - 'link'
    - 'привязать'
    cooldown: '30 сек'

🔐 Настройки безопасности

Таймауты

security:
  # Время ожидания подтверждения 2FA
  2fa-timeout: '2 мин'
  
  # Время блокировки после неудачных попыток
  lockout-time: '10 мин'
  
  # Максимальное количество неудачных попыток
  max-failed-attempts: 3

Геолокация

security:
  # Показывать ли информацию о местоположении
  show-location: true
  
  # Формат отображения IP
  ip-format: '<ip> (<city>, <country>)'

📱 Настройки уведомлений

Типы уведомлений

notifications:
  # Уведомления о входах
  login:
    enabled: true
    message: '🔔 Вход на аккаунт <name> с IP <address>'
  
  # Уведомления о попытках входа
  login-attempt:
    enabled: true
    message: '⚠ Попытка входа на аккаунт <name> с IP <address>'
  
  # Уведомления о смене пароля
  password-change:
    enabled: true
    message: '🔒 Пароль на аккаунте <name> был изменён'

📝 Пример полного конфига

enabled: true
display-name: '2FA в Telegram'

bot:
  token: 'YOUR_BOT_TOKEN_HERE'
  
  commands:
  - ''
  - '/привязать'
  - '!привязать'
  - '/привязка'
  - '!привязка'
  - '/link'
  
  handle-valid-code-even-when-command-is-invalid: true
  
  require-channel-subscription:
    enabled: false
    ids:
    - -1001603471277
    message: '⛔ Для использования бота вы должны подписаться на наш канал.'
  
  messages:
    invalid-action: '❓ Это действие больше неактуально.'
    too-many-links-for-account: '⭕ Вы не можете привязать ещё больше игроков к этому аккаунту.'
    successful-link: '✅ Вы успешно привязали аккаунт <name>!'
    select-account: 'Выберите аккаунт:'
    
    2fa-request-start: |-
      ⚠ На ваш аккаунт, <name>, пытаются войти с IP <address> (<city>, <country>).

      **Тот, кто пытается войти, правильно ввёл ваш пароль!**
      Если это не вы, отклоните и **смените пароль немедленно** (нажмите "сброс пароля")!

    2fa-request-accept: '✅ Вы приняли вход на аккаунт <name> с IP <address> (<city>, <country>).'
    
    2fa-request-decline: |-
      ⭕ Вы отклонили вход на аккаунт <name> с IP <address> (<city>, <country>).

      Если это были не вы, смените пароль немедленно (нажмите "сброс пароля")!

    2fa-request-cancel: |-
      ⭕ На ваш аккаунт, <name>, пытались войти с IP <address> (<city>, <country>).

      Процесс был отменён - игрок не вошёл.

      Если это были не вы, смените пароль немедленно (нажмите "сброс пароля")!

    notification-login: |-
      🔔 На ваш аккаунт, <name>, вошли, используя <methods>.
      Вход был с IP <address> (<city>, <country>).

    invalid-input: |-
      ❓ Вы хотели привязать аккаунт?
      Зайдите на сервер, введите `/link telegram` и полученный код отправьте сюда.

    unknown-code: |-
      ❓ Неизвестный код.
      Зайдите на сервер и введите `/link telegram`, чтобы получить новый.

  buttons:
    status:
      text: '📊 Статус'
      callback: 'status'
    
    accept:
      text: '✅ Принять'
      callback: 'accept'
    
    decline:
      text: '❌ Отклонить'
      callback: 'decline'
    
    reset-password:
      text: '🔒 Сброс пароля'
      callback: 'reset_password'
    
    unlink:
      text: '🔗 Отвязать'
      callback: 'unlink'
    
    show-in-messages: true
    button-size: 'SMALL'
    inline: true

linking:
  max-links-per-account: 5
  code-lifetime: '5 мин'
  success-message: '✅ Аккаунт успешно привязан к Telegram!'
  error-message: '❌ Ошибка привязки аккаунта.'
  
  command:
    aliases:
    - 'link'
    - 'привязать'
    cooldown: '30 сек'

security:
  2fa-timeout: '2 мин'
  lockout-time: '10 мин'
  max-failed-attempts: 3
  show-location: true
  ip-format: '<ip> (<city>, <country>)'

notifications:
  login:
    enabled: true
    message: '🔔 Вход на аккаунт <name> с IP <address>'
  
  login-attempt:
    enabled: true
    message: '⚠ Попытка входа на аккаунт <name> с IP <address>'
  
  password-change:
    enabled: true
    message: '🔒 Пароль на аккаунте <name> был изменён'

🔧 Настройка бота

1. Создание бота

  1. Откройте Telegram и найдите @BotFather
  2. Отправьте команду /newbot
  3. Следуйте инструкциям для создания бота
  4. Получите токен бота

2. Настройка бота

  1. Скопируйте токен в конфиг
  2. Добавьте бота в каналы (если требуется подписка)
  3. Настройте сообщения и кнопки
  4. Перезапустите сервер

3. Привязка аккаунтов

  1. Игрок вводит команду /link telegram на сервере
  2. Получает код для привязки
  3. Отправляет код боту в Telegram
  4. Аккаунт привязывается к Telegram

⚠️ Важные замечания

  • Telegram 2FA требует настройки бота и получения токена
  • Бот должен быть добавлен в каналы как администратор (если требуется подписка)
  • Рекомендуется использовать в сочетании с парольной авторизацией
  • Не забудьте настроить безопасные таймауты и ограничения
  • Регулярно проверяйте логи бота для выявления подозрительной активности