PAM USB не работает после добавления устройства и пользователя в список.

Вопрос или проблема

Я пытался использовать ‘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" свидетельствует о том, что обновление этих блокнотов после успешной проверки завершилось неудачно, что может иметь несколько причин:

  1. Права доступа: недоступные права для записи новых блокнотов на устройство.
  2. Неправильная конфигурация PAM: возможные ошибки в файле конфигурации могут препятствовать правильной работе модуля PAM USB.
  3. Аппаратные ограничения: некоторые устройства могут не поддерживать запись одноразовых блокнотов.

Пример:

Примерно, как показано в предоставленных данных, вы выполнили команду pamusb-conf --add-device KEY и добавили пользовательское устройство "KEY" в систему. После этого, добавили пользователя "guest" с командой pamusb-conf --add-user guest. Затем проверка аутентификации через pamusb-check guest показала упомянутую ошибку.

Применение:

  1. Проверка прав доступа:

    • Убедитесь, что пользователь, под которым осуществляется аутентификация, имеет право записи на использованное USB-устройство. Попробуйте вручную создать файлы на устройстве через терминал для проверки доступа.
  2. Проверка конфигурации PAM:

    • Проверьте файл /etc/security/pam_usb.conf на наличие ошибок. Убедитесь, что все устройства и пользователи правильно указаны, соответствуют добавленным в конфигурацию через pamusb-conf.
    • Проверьте наличие параметров, связанных с одноразовыми блокнотами, например pad_expiration, и убедитесь, что они не установлены неправильно.
  3. Обновление системы и пакетов:

    • Убедитесь, что все установленные пакеты pam, pam_usb и соответствующие пакеты обновлены до последней версии. Возможно, ошибка устранена в более поздних версиях.
  4. Логи и диагностика:

    • Проверьте системные логи на наличие дополнительных сообщений об ошибках, связанных с PAM USB. Логи можно найти, используя journalctl или в соответствующих лог-файлах /var/log.
  5. Альтернативные методы:

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

В результате, последование вышеописанным шагам поможет выявить корневую причину проблемы и обеспечить корректное функционирование механизма аутентификации с использованием PAM USB. Обеспечение безопасной работы с физическими ключами аутентификации является важной частью общей политики безопасности вашей системы.

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

Капча загружается...