42.4. Двухфакторная аутентификация
В PVE можно настроить двухфакторную аутентификацию двумя способами:
Требование двухфакторной аутентификации (ДФА) можно включить при настройке области аутентификации. Если в области аутентификации включена ДФА, это становится требованием, и только пользователи с настроенным ДФА смогут войти в систему. Новому пользователю необходимо сразу добавить ключи, так как возможности войти в систему без предъявления второго фактора нет.
Настроить принудительную двухфакторную аутентификацию можно при добавлении или редактировании области аутентификации:
Пользователи могут сами настроить двухфакторную аутентификацию, даже если она не требуется в области аутентификации (выбрав пункт в выпадающем списке пользователя):
Настройка двухфакторной аутентификации пользователем:
При добавлении в области аутентификации доступны следующие методы двухфакторной аутентификации:
OATH/TOTP (основанная на времени OATH) — используется стандартный алгоритм HMAC-SHA1, в котором текущее время хэшируется с помощью настроенного пользователем ключа. Параметры временного шага и длины пароля настраиваются:
У пользователя может быть настроено несколько ключей (разделенных пробелами), и ключи могут быть указаны в Base32 (RFC3548) или в шестнадцатеричном представлении.
PVE предоставляет инструмент генерации ключей (oathkeygen), который печатает случайный ключ в нотации Base32. Этот ключ можно использовать непосредственно с различными инструментами OTP, такими как инструмент командной строки oathtool, или приложении FreeOTP и в других подобных приложениях.
Yubico (YubiKey OTP) — для аутентификации с помощью YubiKey необходимо настроить идентификатор API Yubico, ключ API и URL-адрес сервера проверки, а у пользователей должен быть доступен YubiKey. Чтобы получить идентификатор ключа от YubiKey, следует активировать YubiKey после подключения его через USB и скопировать первые 12 символов введенного пароля в поле ID ключа пользователя.
В дополнение к TOTP и Yubikey OTP пользователям доступны следующие методы двухфакторной аутентификации:
TOTP (одноразовый пароль на основе времени) — для создания этого кода используется алгоритм одноразового пароля с учетом времени входа в систему (код меняется каждые 30 секунд);
WebAuthn (веб-аутентификация) — реализуется с помощью различных устройств безопасности, таких как аппаратные ключи или доверенные платформенные модули (TPM). Для работы веб-аутентификации необходим сертификат HTTPS;
Ключи восстановления (одноразовые ключи восстановления) — список ключей, каждый из которых можно использовать только один раз. В каждый момент времени у пользователя может быть только один набор одноразовых ключей. Этот метод аутентификации идеально подходит для того, чтобы гарантировать, что пользователь получит доступ, даже если все остальные вторые факторы потеряны или повреждены.
Пользователи могут использовать TOTP или WebAuthn в качестве второго фактора при входе в систему, только если область аутентификацию не применяет YubiKey OTP.
Чтобы избежать ситуации, когда потеря электронного ключа навсегда блокирует доступ можно настроить несколько вторых факторов для одной учетной записи:
Настройка аутентификации
TOTP:
добавление аутентификации
TOTP на сервере:
использование
TOTP при аутентификации пользователя:
Настройка аутентификации
Ключи восстановления:
использование
Ключей восстановления при аутентификации пользователя:
При 8 неудачных попытках ввода TOTP-кода двухфакторная аутентификация с использованием TOTP блокируется для пользователя. Разблокировка возможна при входе в систему с использованием ключа восстановления. Если TOTP был единственным доступным фактором, потребуется вмешательство администратора.
Администратор может разблокировать двухфакторную аутентификацию пользователя в веб-интерфейсе:
или в командной строке:
# pveum user tfa unlock orlov@test.alt
После разблокировки рекомендуется немедленно сменить пароль пользователя.
Webauthn и ключи восстановления менее уязвимы к атакам методом подбора. Для этих методов допустимо до 100 неудачных попыток. При превышении этого лимита все вторые факторы блокируются на один час.