Аутентификация с помощью USB Flash

В данной статье описывается способ, как использовать 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-устройство.

<pre>
 <device id=”my-usb”>
 <vendor> noname </vendor>
 <model> no_model </model>
 <serial> flash-drive </serial>
 <volume_uuid> 1234-1234 </volume_uuid>
 </device>
</pre>

Добавление пользователя

Мы можем добавить несколько 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

<user id="flash-user">
 <device> my-usb </device>
 <agent event="lock">gnome-screensaver-command -l</agent>
 <agent event="unlock">gnome-screensaver-command -d</agent>
</user>
 
Примечание: Все это производилось в ubuntu, но подходит для большинства других дистрибутивов.

Добавить комментарий

Войти с помощью: