Динамическая аутентификация по паролю

Динамическая аутентификация по паролю

Я хотел бы знать, как можно (и возможно ли это) создать динамическую аутентификацию для пользователя в Linux.

Сервер периодически менял пароль пользователя, а пользователь использовал программу (например, токен) для получения и ввода правильного пароля.

решение1

Не совсем то, что вы ищете, но я видел, как OTPW использовался для таких сценариев. Это полный пакет, который интегрируется с системой Linux через модули PAM.

выдержка

Пакет OTPW состоит из генератора одноразовых паролей otpw-genи двух процедур проверки otpw_prepare(), otpw_verify()которые можно легко добавить в такие программы, как loginили ftpdв системах POSIX. Для платформ, поддерживающих интерфейс Pluggable Authentication Method (PAM), также включена подходящая оболочка. Расширенное таким образом программное обеспечение для входа в систему позволит достаточно безопасно аутентифицировать пользователя по незащищенным сетевым линиям. Пользователь носит с собой список паролей на бумаге. Схема разработана так, чтобы быть устойчивой к краже бумажного списка и атакам типа «гонка за последней буквой». Криптографические хеш-значения одноразовых паролей хранятся для проверки в домашнем каталоге пользователя.

В вашем случае вам нужно будет следовать инструкциям на этой странице, где подробно описывается установка PAM.

выдержка

Если ваша система поддерживает подключаемые модули аутентификации [Mor01,XSSO], то просто скомпилируйте общую библиотеку pam_otpw.soи скопируйте ее в каталог, в котором находятся другие модули PAM (обычно под Linux /lib/security/). Затем отредактируйте файл конфигурации PAM для приложения, в котором вы хотите использовать OTPW, как описано в вашем руководстве администратора системы PAM. Он pam_otpw.soпредоставляет как компонент аутентификации, так и компонент сеанса. Компонент аутентификации запрашивает и проверяет одноразовый пароль, компонент сеанса выводит после каждого успешного входа напоминание о том, сколько неиспользованных паролей у вас осталось.

Чтобы использовать оба компонента при входе в систему через Secure Shell, вам, возможно, придется добавить /etc/pam.d/sshdстроки

 auth            required        pam_otpw.so
 session         optional        pam_otpw.so

Например, в OpenSSH 3.4 вам необходимо убедиться, что в вашей версии скомпилирована поддержка PAM, и вам придется добавить /etc/ssh/sshd_configстроки

 UsePrivilegeSeparation          no
 PAMAuthenticationViaKbdInt      yes

Чтобы заставить OpenSSH использовать аутентификацию PAM (вместо собственных методов на основе хоста или открытого ключа, которые он обычно пытается использовать в первую очередь), используйте “ssh -o PreferredAuthentications=keyboard-interactive”.

Связанный контент