Для улучшения работы сайта мы используем файлы cookies. Оставаясь на сайте, вы соглашаетесь с политикой обработки персональных данных.

Блокировка пользователей

Механизм блокировки пользователей (User lockout) доступен начиная со StarVault 1.1.0 и применим только к следующим методам аутентификации:

  • userpass

  • userpass-advanced

  • approle

  • ldap

  • ldap-advanced

1. Общие сведения о блокировке пользователей

Если пользователь несколько раз подряд предоставит неверные учетные данные, StarVault на некоторое время прекратит попытки проверить его учетные данные, а вместо этого сразу же выдаст ошибку об отказе в доступе.

Время, на которое пользователь будет заблокирован, называется длительностью блокировки (lockout duration). Пользователь сможет войти в систему после истечения срока блокировки. Количество неудачных попыток входа, после которых пользователь будет заблокирован, называется порог блокировки (lockout threshold). Счетчик порога блокировки обнуляется через несколько минут без попыток входа или при успешной попытке входа. Время, в течение которого счетчик будет обнулен после отсутствия попыток входа, называется сброс счетчика блокировки (lockout counter reset). Это позволяет противостоять как автоматизированным, так и целенаправленным запросам, то есть атакам на угадывание пароля.

Функция блокировки пользователя включена по умолчанию. Значения по умолчанию оставляют:

  • порог блокировки - 5 попыток

  • длительность блокировки - 15 минут

  • сброс счетчика блокировки — 15 минут

Эти же значения по умолчанию применяются при настройке через API или CLI.

Функцию блокировки пользователя можно отключить следующими способами:

  • Глобально с использованием переменной окружения STARVAULT_DISABLE_USER_LOCKOUT.

  • Для всех поддерживаемых типов методов аутентификации или отдельного типа с использованием параметра disable_lockout в секции user_lockout конфигурационного файла.

  • Для конкретной точки монтирования метода аутентификации через веб-интерфейс, API или команду starvault auth tune. Пример приведен в статье Настройка блокировки пользователей через CLI.

2. Блок конфигурации user_lockout

Блок user_lockout задает глобальные настройки блокировки пользователей по типу метода аутентификации. Настройки распространяются на все точки монтирования соответствующего типа.

Секция user_lockout "all" применяет настройки ко всем поддерживаемым типам: userpass, userpass-advanced, ldap, ldap-advanced и approle. Секции user_lockout "userpass", user_lockout "userpass-advanced", user_lockout "ldap", user_lockout "ldap-advanced" и user_lockout "approle" настраивают только указанный тип.

Настройки отдельного типа имеют приоритет над значениями из секции user_lockout "all". Типы userpass и userpass-advanced, а также ldap и ldap-advanced настраиваются независимо.

2.1. Параметры секции user_lockout

lockout_threshold

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

lockout_duration

Строковый параметр. Указывает длительность блокировки пользователя. Значение указывается с использованием суффикса времени, например "30s" (30 секунд) или "1h" (1 час).

lockout_counter_reset

Строковый параметр. Определяет интервал времени, после истечения которого счетчик блокировки сбрасывается при отсутствии неудачных попыток входа в систему. Значение указывается с использованием суффикса времени, например "30s" (30 секунд) или "1h" (1 час).

disable_lockout

Логический параметр. Отключает функцию блокировки пользователя, если установить в значение true.

2.2. Пример конфигурации

Конфигурационный файл задает глобальные настройки User lockout по типу метода аутентификации. Для индивидуальной настройки точки монтирования используйте веб-интерфейс, API или CLI.

Содержимое конфигурационного файла
user_lockout "all" {
  lockout_duration = "10m"
  lockout_counter_reset = "10m"
}

user_lockout "userpass" {
  lockout_threshold = "25"
  lockout_duration = "5m"
}

user_lockout "ldap" {
  disable_lockout = "true"
}

user_lockout "userpass-advanced" {
  lockout_threshold = "10"
  lockout_duration = "30m"
  lockout_counter_reset = "1h"
}

В примере блокировка отключена для всех точек монтирования типа ldap. Настройка не распространяется на тип ldap-advanced.

Для типа userpass порог блокировки равен 25, длительность блокировки — 5 минут. Интервал сброса счетчика равен 10 минут и наследуется из секции all.

Для типа approle используется порог по умолчанию — 5 попыток. Длительность блокировки и интервал сброса счетчика наследуются из секции all и равны 10 минутам.

Для типа userpass-advanced заданы отдельные значения, которые переопределяют секцию all. Настройки типа userpass на него не распространяются.

Для типа ldap-advanced применяются значения из секции all: длительность блокировки и интервал сброса счетчика равны 10 минутам. Порог блокировки сохраняет значение по умолчанию — 5 попыток.

Пример настройки блокировки для конкретной точки монтирования представлен в статье Настройка блокировки пользователей через CLI.