Вопрос или проблема
Я пытался использовать ‘pam_usbдля создания физического ключа для повышения безопасности в моей системе. После установки
пакета pam_usb из AUR и выполнения следующего кода (согласно документации Archwiki):
[user@host /some/dir]$ sudo pamusb-conf --add-device KEY
* Используется "AI Mass Storage (AI_Mass_Storage-0:0)" (единственный вариант)
Какой том вы хотите использовать для хранения данных?
* Используется "/dev/sda1 (UUID: 12CB-F616)" (единственный вариант)
Имя : KEY
Производитель : AI
Модель : Mass Storage
Серийный номер : AI_Mass_Storage-0:0
UUID : 12CB-F616
Сохранить в /etc/security/pam_usb.conf? [Y/n]
Готово.
[user@host /some/dir]$ sudo pamusb-conf --add-user guest
Какое устройство вы хотите использовать для аутентификации?
* Используется "KEY" (единственный вариант)
Пользователь : guest
Устройство : KEY
Сохранить в /etc/security/pam_usb.conf? [Y/n]
Готово.
затем я выполнил проверку с помощью pamusb-check
, и получил следующий вывод:
[user@host /some/dir]$ sudo pamusb-check guest
* Запрос аутентификации для пользователя "guest" (pamusb-check)
* Поиск "KEY" в базе данных оборудования...
* Устройство аутентификации "KEY" подключено.
* Выполняется проверка одноразовой кодовой таблицы...
* Генерация новых кодовых таблиц...
* Не удалось обновить системные кодовые таблицы.
* Проверка кодовой таблицы прошла успешно, но обновление не удалось!
* Доступ запрещен.
этот вывод говорит, что не удается обновить некоторые системные кодовые таблицы
(что это такое, я не знаю), и поэтому у меня доступ запрещен
.
Я еще не обновлял ни один файл pam стека в папке /etc/pam.d/
, опасаясь, что я испорчу свои будущие входы в систему.
Так что я хочу знать, что я могу сделать? Или этот вывод не обозначает проблему для этой задачи.
СИСТЕМА
Archlinux / 6.13.2-arch1-1
ПАКЕТ
local/pam 1.7.0-1
Библиотека PAM (плагин-модули аутентификации)
local/pam_usb 0.8.5-1
Аутентификация оборудования для Linux с использованием обычных флеш-накопителей (USB и на основе карт).
local/pam_usb-debug 0.8.5-1
Отдельные отладочные символы для pam_usb
local/pambase 20230918-2
Базовая конфигурация PAM для служб
КОНФИГУРАЦИОННЫЙ ФАЙЛ PAM
<?xml version="1.0" ?><!--
pam_usb.conf: Конфигурационный файл для pam_usb.
См. https://github.com/mcdope/pam_usb/wiki/Configuration
--><configuration>
<!-- Опции по умолчанию -->
<defaults>
<!-- Пример:
<option name="debug">true</option>
<option name="deny_remote">true</option>
-->
</defaults>
<!-- Настройки устройств -->
<devices>
<!-- Пример:
Примечание: Вы должны использовать pamusb-conf для автоматического добавления устройств.
<device id="MyDevice">
<vendor>SanDisk Corp.</vendor>
<model>Cruzer Titanium</model>
<serial>SNDKXXXXXXXXXXXXXXXX</serial>
<volume_uuid>6F6B-42FC</volume_uuid>
<option name="probe_timeout">10</option>
</device>
<device id="MySecondDevice">
<vendor>Commodore</vendor>
<model>REU</model>
<serial>CMDKXXXXXXXXXXXXXXXX</serial>
<volume_uuid>6F6B-00FF</volume_uuid>
<option name="probe_timeout">10</option>
</device>
-->
<device id="KEY">
<vendor>AI</vendor>
<model>Mass Storage</model>
<serial>AI_Mass_Storage-0:0</serial>
<volume_uuid>12CB-F616</volume_uuid>
</device></devices>
<!-- Настройки пользователей -->
<users>
<!-- Примечание: Используйте pamusb-conf для добавления пользователя, после чего вы можете при необходимости изменить
вручную конфигурацию здесь.
-->
<!-- Пример:
Аутентификация пользователя scox с использованием "MyDevice", настройка pamusb-agent
для автоматического запуска/остановки gnome-screensaver при вставке и
удалении ключа:
<user id="scox">
<device>MyDevice</device>
<device>MySecondDevice</device>
<option name="quiet">true</option>
<agent event="lock">
<cmd>gnome-screensaver-command -\-lock</cmd>
<env>DISPLAY=:1</env>
<env>DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus</env>
<env>XAUTHORITY=/run/user/1000/gdm/Xauthority</env>
</agent>
<agent event="unlock">
<cmd>gnome-screensaver-command -\-deactivate</cmd>
<env>DISPLAY=:1</env>
<env>DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus</env>
<env>XAUTHORITY=/run/user/1000/gdm/Xauthority</env>
</agent>
</user>
Настройка пользователя root для аутентификации с использованием MyDevice, но обновление одноразовых
кодовых таблиц при каждом входе в систему (по умолчанию 1 час):
<user id="root">
<device>MyDevice</device>
<option name="pad_expiration">0</option>
</user>
-->
<user id="guest">
<device>KEY</device>
</user></users>
<!-- Настройки служб (например, gdm, su, sudo...) -->
<services>
<!-- Пример: Ускорение горячей замены путем отключения одноразовых кодовых таблиц -->
<!--
<service id="pamusb-agent">
<option name="one_time_pad">false</option>
</service>
-->
<!-- Отключение вывода для 'su' (необходимо для gksu) -->
<!--
<service id="su">
<option name="quiet">true</option>
</service>
-->
<!--
Шаблонный белый список для "deny_remote".
Эти службы находятся в белом списке, потому что либо
a) они являются графическими диспетчерами входа в систему, и мы предполагаем, что они доступны только локально
b) они являются агентами авторизации после успешной аутентификации.
Шаблон:
<service id=""><option name="deny_remote">false</option></service>
-->
<service id="pamusb-agent"><option name="deny_remote">false</option></service>
<service id="gdm-password"><option name="deny_remote">false</option></service>
<service id="xdm"><option name="deny_remote">false</option></service>
<service id="lxdm"><option name="deny_remote">false</option></service>
<service id="xscreensaver"><option name="deny_remote">false</option></service>
<service id="lightdm"><option name="deny_remote">false</option></service>
<service id="sddm"><option name="deny_remote">false</option></service>
<service id="polkit-1"><option name="deny_remote">false</option></service>
<service id="kde"><option name="deny_remote">false</option></service>
<service id="login"><option name="deny_remote">false</option></service>
</services>
</configuration>
Ответ или решение
Причина возникновения ошибки "Unable to update system pads" в pamusb-check
при добавлении устройства и пользователя в систему безопасности через PAM USB может быть связана с отсутствием необходимых прав доступа для записи новых одноразовых блокнотов (One-Time Pads) на устройство или из-за неправильных настроек конфигурации. Рассмотрим возможные причины и пути решения этой проблемы, следуя формуле TEA (Теория, Пример, Применение).
Теория:
PAM USB (Pluggable Authentication Modules for USB) позволяет использовать USB-устройство в качестве физического ключа безопасности для аутентификации. Когда устройство добавляется в PAM USB, оно используется для генерации одноразовых блокнотов, которые позволяют идентифицировать пользователя при выполнении аутентификации. Эти блокноты записываются на устройство и должны обновляться при каждой успешной проверке, чтобы повысить уровень безопасности.
Ошибка "Unable to update system pads" свидетельствует о том, что обновление этих блокнотов после успешной проверки завершилось неудачно, что может иметь несколько причин:
- Права доступа: недоступные права для записи новых блокнотов на устройство.
- Неправильная конфигурация PAM: возможные ошибки в файле конфигурации могут препятствовать правильной работе модуля PAM USB.
- Аппаратные ограничения: некоторые устройства могут не поддерживать запись одноразовых блокнотов.
Пример:
Примерно, как показано в предоставленных данных, вы выполнили команду pamusb-conf --add-device KEY
и добавили пользовательское устройство "KEY" в систему. После этого, добавили пользователя "guest" с командой pamusb-conf --add-user guest
. Затем проверка аутентификации через pamusb-check guest
показала упомянутую ошибку.
Применение:
-
Проверка прав доступа:
- Убедитесь, что пользователь, под которым осуществляется аутентификация, имеет право записи на использованное USB-устройство. Попробуйте вручную создать файлы на устройстве через терминал для проверки доступа.
-
Проверка конфигурации PAM:
- Проверьте файл
/etc/security/pam_usb.conf
на наличие ошибок. Убедитесь, что все устройства и пользователи правильно указаны, соответствуют добавленным в конфигурацию черезpamusb-conf
. - Проверьте наличие параметров, связанных с одноразовыми блокнотами, например
pad_expiration
, и убедитесь, что они не установлены неправильно.
- Проверьте файл
-
Обновление системы и пакетов:
- Убедитесь, что все установленные пакеты
pam
,pam_usb
и соответствующие пакеты обновлены до последней версии. Возможно, ошибка устранена в более поздних версиях.
- Убедитесь, что все установленные пакеты
-
Логи и диагностика:
- Проверьте системные логи на наличие дополнительных сообщений об ошибках, связанных с PAM USB. Логи можно найти, используя
journalctl
или в соответствующих лог-файлах/var/log
.
- Проверьте системные логи на наличие дополнительных сообщений об ошибках, связанных с PAM USB. Логи можно найти, используя
-
Альтернативные методы:
- В случае продолжения проблем с вашей текущей конфигурацией можно рассмотреть использование другого режима аутентификации, который поддерживает ваши цели безопасности.
В результате, последование вышеописанным шагам поможет выявить корневую причину проблемы и обеспечить корректное функционирование механизма аутентификации с использованием PAM USB. Обеспечение безопасной работы с физическими ключами аутентификации является важной частью общей политики безопасности вашей системы.