Различия
Здесь показаны различия между двумя версиями данной страницы.
Следующая версия | Предыдущая версия | ||
wiki:pam_usb [2012/12/27 12:49] создано |
wiki:pam_usb [2013/01/08 15:58] [Решение проблем] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== PAM USB ====== | ====== PAM USB ====== | ||
- | + | **PAM USB** -- модуль для [[PAM]] предоставляющий возможность аутентификации пользователя в ОС посредством <<Flash>>-накопителя в качестве ключа. Также он предоставляет функционал по блокированию/разблокированию рабочего стола пользователя при отключении/подключении накопителя-ключа. Для идентификации накопителя используется информация заложенная производителем и временные данные, которые записываются на этот накопитель, так что, даже при наличии накопителя с полностью идентичными данными производителя, аутентификация пользователя не произойдет. | |
- | Данная программа предназначена для аутентификации пользователя в ОС посредством <<Flash>>-накопителя в качестве ключа. Также предоставляет функционал по блокировке/разблокировке рабочего стола пользователя при изъятии/подключении накопителя-ключа. Для идентификации накопителя используется информация заложенная производителем и временные данные, которые записываются на этот накопитель, так что, даже при наличии накопителя с полностью идентичными данными производителя, аутентификация пользователя не произойдет. | + | |
<note important>Не имеется достаточно информации по безопасности данного метода аутентификации</note> | <note important>Не имеется достаточно информации по безопасности данного метода аутентификации</note> | ||
===== Установка ===== | ===== Установка ===== | ||
- | + | Функционал программы поставляется в пакетах ''libpam-usb'', ''pamusb-tools'' и их зависимостях. Установку можно произвести, например, выполнив с терминале команду | |
- | Функционал программы поставляется в пакетах <<libpam-usb>>, <<pamusb-tools>> и их зависимостях. Установку можно произвести, например, выполнив с терминале команду | + | <code bash>sudo apt-get install libpam-usb pamusb-tools</code> |
- | <code>sudo apt-get install libpam-usb pamusb-tools</code> | + | |
===== Настройка ===== | ===== Настройка ===== | ||
- | + | Для исправной работы PAM USB требуется, что бы пользователь, аутентификацию которого будет происходить посредством накопителя-ключа, был членом группы пользователей <<plugdev>> (см. [[http://manpages.ubuntu.com/manpages/precise/en/man1/pmount.1.html|man pmount]]). Добиться этого можно, например, командой в терминале | |
- | Для исправной работы программы «PAM USB» требуется, что бы пользователь, аутентификацию которого будет происходить посредством накопителя-ключа, был членом группы пользователей <<plugdev>> (см. [[http://manpages.ubuntu.com/manpages/precise/en/man1/pmount.1.html|map pmount]]). Добиться этого можно, например, командой в терминале | + | <code bash>sudo adduser $USER plugdev</code> |
- | <code>sudo adduser $USER plugdev</code> | + | для добавления текущего пользователя в группу. Если же требуется добавить другого пользователя, то ''$USER'' следует заменить на его имя (логин). |
- | для добавления текущего пользователя в группу. Если же требуется добавить другого пользователя, то <<$USER>> следует заменить на его имя (логин). | + | |
==== Указание накопителей-ключей ==== | ==== Указание накопителей-ключей ==== | ||
- | |||
- | |||
Далее, необходимо подключить накопитель который будет использован в качестве ключа и выполнить в терминале команду | Далее, необходимо подключить накопитель который будет использован в качестве ключа и выполнить в терминале команду | ||
- | <code>sudo pamusb-conf --add-device $FLASH</code> | + | <code bash>sudo pamusb-conf --add-device $FLASH</code> |
- | где <<$FLASH>> необходимо заменить на название <<Flash>>-накопителя которое будет использоваться для его обозначения в настройках <<PAM USB>>, это может быть произвольная текстовая строка из букв и цифр. | + | где ''$FLASH'' необходимо заменить на название <<Flash>>-накопителя которое будет использоваться для его обозначения в настройках <<PAM USB>>, это может быть произвольная текстовая строка из букв и цифр. |
Если в данный момент подключено несколько накопителей, то программа выведет сообщение вида | Если в данный момент подключено несколько накопителей, то программа выведет сообщение вида | ||
<code>Please select the device you wish to add. | <code>Please select the device you wish to add. | ||
Строка 42: | Строка 37: | ||
[Y/n] | [Y/n] | ||
</code> | </code> | ||
- | если это подходящий накопитель, то следует ввести <<y>> (<<Yes>> — подтверждение) и нажать <key>enter</key>. Иначе ввести <<n>> и нажать <key>enter</key> (или <key>C-c</key>) и повторить команду для другого накопителя. Информация о накопителе будет записана в файл <</etc/pamusb.conf>> (см. [[https://github.com/aluzzardi/pam_usb/wiki/Getting-Started|Getting Started]]). | + | если это подходящий накопитель, то следует ввести <<y>> (<<Yes>> — подтверждение) и нажать <key>enter</key>. Иначе ввести <<n>> и нажать <key>enter</key> (или <key>C-c</key>) и повторить команду для другого накопителя. Информация о накопителе будет записана в файл ///etc/pamusb.conf// (см. [[https://github.com/aluzzardi/pam_usb/wiki/Getting-Started|Getting Started]]). |
==== Сопоставление пользователей и накопителей-ключей ==== | ==== Сопоставление пользователей и накопителей-ключей ==== | ||
- | |||
После того как добавлен накопитель-ключ, требуется указать для каких пользователей его использовать. Это производится выполнением команды в терминале | После того как добавлен накопитель-ключ, требуется указать для каких пользователей его использовать. Это производится выполнением команды в терминале | ||
- | <code>sudo pamusb-conf --add-user $USER</code> | + | <code bash>sudo pamusb-conf --add-user $USER</code> |
- | для указания текущего пользователя, иначе <<$USER>> необходимо заменить на имя пользователя для которого будет использован данный накопитель-ключ. | + | для указания текущего пользователя, иначе ''$USER'' необходимо заменить на имя пользователя для которого будет использован данный накопитель-ключ. |
- | Будет выведен список ранее добавленных в конфигурацию <<PAM USB>> накопителей, следует выбрать требуемый. | + | Будет выведен список ранее добавленных в конфигурацию PAM USB накопителей, следует выбрать требуемый. |
- | <note>Для одного пользователя может использоваться только один ключ-накопитель, однако один накопитель может быть ключом для нескольких пользователей</note> | + | <note>Для одного пользователя может использоваться только один ключ-накопитель, однако один накопитель может быть ключом для нескольких пользователей.</note> |
- | И если все указано верно, то на запрос <<Save to /etc/pamusb.conf ?>> набрать <<y>> и нажать <key>enter</key> (иначе <<n>> или <key>C-c</key>) | + | Если все указано верно, то на запрос <<Save to /etc/pamusb.conf ?>> набрать <<y>> и нажать <key>enter</key> (иначе <<n>> или <key>C-c</key>) |
==== Проверка ==== | ==== Проверка ==== | ||
- | |||
Проверить исправность аутентификации пользователя по накопителю-ключу можно командой в терминале | Проверить исправность аутентификации пользователя по накопителю-ключу можно командой в терминале | ||
- | <code>pamusb-check $USER --debug</code> | + | <code bash>pamusb-check $USER --debug</code> |
- | для текущего пользователя, иначе необходимо заменить <<$USER>> на имя другого пользователя. | + | для текущего пользователя, иначе необходимо заменить ''$USER'' на имя другого пользователя. |
Если все пройдет успешно, будет выведено сообщение в конце | Если все пройдет успешно, будет выведено сообщение в конце | ||
<code>* Access granted.</code> | <code>* Access granted.</code> | ||
Строка 63: | Строка 56: | ||
===== Системные настройки ===== | ===== Системные настройки ===== | ||
+ | Модуль PAM USB добавляет себя в стек аутентификации за счет строчки в файле ///etc/pam.d/common-auth// (см. [[http://www.rjsystems.nl/en/2100-pam-debian.php|PAM configuration guide for Debian]]) | ||
+ | <code>auth sufficient pam_usb.so</code> | ||
+ | В [[Ubuntu]] 12.10 эта строчка добавляется автоматически при установке PAM USB. Если этой строчки нет, то следует её дописать, обязательно перед строчками | ||
+ | <code>auth [success=2 default=ignore] pam_unix.so nullok_secure try_first_pass | ||
+ | auth [success=1 default=ignore] pam_winbind.so krb5_auth krb5_ccache_type=FILE cached_login try_first_pass</code> | ||
+ | <note warning>Ошибки допущенные при редактировании этого файла могут навредить работе ОС. Обязательно сохраните оригинал этого файла перед редактированием.</note> | ||
+ | Параметр <<sufficient>> указывает, что наличия накопителя-ключа достаточно для аутентификации пользователя. | ||
+ | <note warning>Это может быть не приемлемо если Ваш пользователь является администратором в ОС, т.к. при подключенном накопителе-ключе запроса пароля не будет и возможно выполнение вредоносного кода с правами корневого пользователя <<root>>.</note> | ||
+ | Если же <<sufficient>> заменить на <<required>> (<<обязательно, но не достаточно>>) | ||
+ | <code>auth required pam_usb.so</code> | ||
+ | то войти в систему можно будет только при наличии подключенного накопителя-ключа и после ввода пароля. | ||
+ | Другой вариант <<optional>> (<<не обязательно>>) | ||
+ | <code>auth optional pam_usb.so</code> | ||
+ | сделает наличие накопителя-ключа необязательным условием аутентификации. Это целесообразно, если PAM USB планируется использовать только для блокирования/разблокирования рабочего стола. | ||
- | FIXME продолжить | + | ===== Блокирование рабочего стола при отключении накопителя и наоборот ===== |
+ | Удобная возможность заблокировать рабочий стол изъятием накопителя-ключа и разблокирования при повторном подключении этого накопителя реализована посредством утилиты <<pamusb-agent>> входящей в комплект программного пакета PAM USB. Для начала необходимо открыть для редактирования файл ///etc/pamusb.conf// любым текстовым редактором, например | ||
+ | <code bash>sudo gedit /etc/pamusb.conf</code> где следует найти указание настроек для Вашего пользователя, которые записаны в виде | ||
+ | <code xml>… | ||
+ | <user id="USER"> | ||
+ | <device>Flash</device> | ||
+ | </user> | ||
+ | …</code> | ||
+ | где вместо <<USER>> написано имя Вашего пользователя. И дополнить данный фрагмент в конфигурационном файле строчками | ||
+ | <code xml> | ||
+ | <agent event="lock">gnome-screensaver-command -l</agent> | ||
+ | <agent event="unlock">gnome-screensaver-command -d</agent> | ||
+ | </code> | ||
+ | до вида | ||
+ | <code xml> | ||
+ | … | ||
+ | <user id="USER"> | ||
+ | <device>Flash</device> | ||
+ | <agent event="lock">gnome-screensaver-command -l</agent> | ||
+ | <agent event="unlock">gnome-screensaver-command -d</agent> | ||
+ | </user> | ||
+ | … | ||
+ | </code> | ||
+ | Далее запустить <<pamusb-agent>> командой | ||
+ | <code bash>pamusb-agent</code> | ||
+ | и проверить блокировку рабочего стола подключив и отключив накопитель-ключ. | ||
+ | Если все в порядке, то следует добавить <<pamusb-agent>> в автозапуск, открыв из скиска программ //Автоматически запускаемые приложения// или выполнив команду | ||
+ | <code bash>gnome-session-properties</code> | ||
+ | и добавив пункт <<pamusb-agent>>. | ||
+ | ===== Решение проблем ===== | ||
+ | ** Иногда может возникнуть ситуация, что разблокирования рабочего стола не происходит и при выполнении в терминале команды | ||
+ | .. <code bash>pamusb-check $USER --debug</code> | ||
+ | .. появляется сообщение | ||
+ | .. <code>Pad checking failed</code> | ||
+ | .. Возможное решение — удаление папки ///home/$USER/.pamusb// (см. [[http://sourceforge.net/mailarchive/forum.php?thread_name=48E40A38.40804%40gmail.com&forum_name=pamusb-devel|pam_usb Mail]]). Однако если проблема продолжает возникать, следует проверить все настройки. | ||
+ | ** Если при выполнении команды | ||
+ | .. <code bash>pamusb-check $USER --debug</code> | ||
+ | .. появляется сообщение | ||
+ | .. <code>… Device is already mounted …</code> | ||
+ | .. и при этом диск примонтирован в «Nautilus», то, вероятно, проблема в том, что ОС монтирует диск раньше «PAM USB» и как результат, «PAM USB» не может его примонтирован еще раз. Возможное решение — пожертвовать автомонтированием в пользу «PAM USB». Отключить автомонтирование для оболочек рабочего стола «Gnome» и «Unity» можно командой (см. [[http://askubuntu.com/a/102601|How to disable automount]]) | ||
+ | .. <code bash>gsettings set org.gnome.desktop.media-handling automount false</code> | ||
===== Ссылки ===== | ===== Ссылки ===== | ||
+ | * [[http://habrahabr.ru/company/xakep/blog/127384/|Инструкция на habrahabr.ru посвященная, в том числе, «PAM USB»]] | ||
+ | * [[http://forum.ubuntu.ru/index.php?topic=210107|Обсуждение статьи на форуме]] | ||
- | + | {{tag>pam_usb Система Администрирование}} | |
- | {{tag>pam_usb}} | + |