В данной статье описывается способ, как использовать USB флеш-накопитель для аутентификации пользователя вместо традиционного пароля. Для этого используется Pluggable Authentication Modules (PAM) и USB флеш-накопитель.
Установка PAM USB pam_usb доступен в большинстве репозиториев Linux дистрибутивов.
sudo apt-get install pamusb-tools libpam-usb
Добавляем USB флеш-накопитель в конфигурацию PAM
sudo pamusb-conf --add-device my-usb
Please select the device you wish to add. * Using «flash-drive» (only option) Which volume would you like to use for storing data? 0) /dev/sdb2 (UUID: 1234-1234) 1) /dev/sdb1 (UUID: 2314-1234) [0-1]: 0 Name: my-usb Vendor: noname Model: no_model Serial: flash-drive UUID: 1234-1234 Save to /etc/pamusb.conf? [Y/n] Y Done. Вместо my-usb можете использовать любое, удобное для вас, название.
Этой командой мы добавили в /etc/pamusb.conf блок кода XML, чтобы в дальнейшем определять наше usb-устройство.
<device id="my-usb">
<vendor>
noname
</vendor>
<model>
no_model
</model>
<serial>
flash-drive
</serial>
<volume_uuid>
1234-1234
</volume_uuid>
</device>
Добавление пользователя Мы можем добавить несколько usb-устройств в конфигурацию PAM, в то же время мы можем назначить нескольким пользователям одно usb-устройство. Здесь будет описана простоя конфигурация: один пользователь — одна флешка.
sudo pamusb-conf --add-user flash-user
Which device would you like to use for authentication? * Using «my-usb» (only option) User: flash-user Device: my-usb Save to /etc/pamusb.conf? [Y/n] y Done. Вместо flash-user прописывайте пользователя, для которого собственно и хотите сделать авторизацию с помощью флешки.
Настройка PAM для использования библиотеки pam_usb На данный момент, мы определили устройство USB «my-usb» для проверки подлинности пользователя «flash-user». Теперь нужно настроить систему на использование модуля pam_usb.
Чтобы добавить pam_usb в процесс проверки подлинности, необходимо изменить файл /etc/pam.d/common-auth
Это текущая конфигурация для аутентификации пользователя.
auth required pam_unix.so nullok_secure Изменим конфигурацию
auth sufficient pam_usb.so auth required pam_unix.so nullok_secure чтобы для аутентификации было достаточно usb-устройства.
su flash-user
* pam_usb v0.4.2 * Authentication request for user «flash-user» (su) * Device «my-usb» is connected (good). * Performing one time pad verification… * Regenerating new pads… * Access granted. Если флешки, определенной для flash-user, в системе нет, пользователю необходимо ввести пароль.
Для усиления безопасности меняем в /etc/pam.d/common-auth "sufficient” (достаточно) на "required” (необходимо).
auth required pam_usb.so auth required pam_unix.so nullok_secure Теперь пользователю flash-user для аутентификации необходимо иметь флешку и правильный пароль.
su flash-user
* pam_usb v0.4.2 * Authentication request for user «flash-user» (su) * Device «my-usb» is connected (good). * Performing one time pad verification… * Access granted. Password:
События при отключении флешки Можно настроить pam_usb так, что к примеру при отключении флешки блокируется экран. Для этого правится /etc/pamusb.conf
my-usb
gnome-screensaver-command -l gnome-screensaver-command -d
Примечание: Все это производилось в ubuntu, но подходит для большинства других дистрибутивов.
|