Как настроить подсказку/уведомление о необходимости прикоснуться к YubiKey при использовании sudo

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

Я настроил

auth sufficient pam_u2f.so cue [cue_prompt=Нажмите на YubiKey для sudo]

в /etc/pam.d/sudo, чтобы иметь возможность использовать sudo, касаясь моего YubiKey. При запуске скрипта может быть легко упустить индикатор LED на ключе, поэтому я настроил cue и cue_prompt, чтобы выводить что-то эквивалентное [sudo] Пароль для пользователя: при использовании пароля.

Никогда не выводится подсказка, она ведет себя так, как будто две опции не были настроены. Опции правильные согласно https://developers.yubico.com/pam-u2f/. В документации не указано, к какой версии они принадлежат – это было бы слишком просто – поэтому, возможно, есть несоответствие в том, что они больше не поддерживаются или еще не поддерживаются.

Я использую libpam-u2f 1.1.0-1.1build1 на Ubuntu 23.10.

Я обратным образом расшифровал значение документации методом проб и ошибок и пришел к следующему заключению:

  1. Значение cue остается загадкой, как и разница между interactive и cue. Исходя из описания, cue это то, что мне нужно, однако она не показывает cue_prompt.
  2. Использование interactive и prompt подходит почти так же близко к тому, что я хочу. Просто есть неудобство, что мне нужно нажать Enter перед тем, как я смогу прикоснуться к YubiKey.

debug debug_file=stderr не содержит информации о том, должна ли быть вызвана подсказка или нет.

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

Передача cue и cue_prompt работает для меня без необходимости вручную нажимать клавишу Enter. Обратите внимание, что я использую версию 1.3.0-1 libpam-u2f на Ubuntu 24.04, так что, возможно, в более ранней версии была ошибка (хотя я не видел ничего подобного в заметках о релизе). Не уверен, является ли Ubuntu 23.10 жестким требованием для вас. Если да, проверьте, можете ли вы вручную установить более поздний релиз.

Ответ или решение

Для настройки уведомления о необходимости коснуться YubiKey при использовании команды sudo, вам необходимо правильно конфигурировать PAM (Pluggable Authentication Module) для поддержки YubiKey. В данном случае вы используете модуль pam_u2f.so, который позволяет интегрировать аппаратную аутентификацию.

Шаги для настройки

  1. Проверка версии и зависимостей:
    Убедитесь, что у вас установлена последняя стабильная версия libpam-u2f. В вашем случае это версия 1.1.0, и, судя по отзывам, проблема может быть связана с несовместимостью конфигурации. Рекомендуется обновить до версии 1.3.0 или более поздней, если это возможно. Если Ubuntu 23.10 – обязательное требование, вы можете установить более свежую версию вручную, загружая ее с официального сайта Yubico.

  2. Редактирование конфигурации PAM:
    В файле /etc/pam.d/sudo добавьте или измените следующую строку:

    auth sufficient pam_u2f.so cue [cue_prompt=Tap the YubiKey to sudo]

    Эта строка должна быть добавлена в разделе аутентификации, чтобы задать поведение при использовании YubiKey. Примечание: флаг cue отвечает за отображение подходящего сообщения, а cue_prompt задает текст этого сообщения.

  3. Тестирование изменений:
    После внесения изменений в конфигурацию PAM, выполните команды с sudo и проверьте, появляется ли уведомление. Если уведомление по-прежнему не отображается, выполните следующие действия:

    • Убедитесь, что в системе нет других модулей PAM, которые могут конфликтовать или перезаписывать поведение pam_u2f.
    • Просмотрите системные журналы (например, с помощью journalctl), чтобы обнаружить возможные ошибки при аутентификации.
  4. Использование параметров interactive и prompt:
    Как вы отметили, использование параметров interactive и prompt является близким к желаемому результату, но требует нажатия клавиши Enter. Это может быть связано с отсутствием поддержки функции cue в вашей версии libpam-u2f. Попробуйте использовать данный метод в качестве временного обходного пути.

  5. Логи и отладка:
    Если проблема сохраняется, активируйте подробный лог с помощью настройки:

    debug debug_file=stderr

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

Заключение

Корректная настройка использования YubiKey для аутентификации через sudo требует внимания к деталям, таким как версия пакетов и конфигурация PAM. Обновление libpam-u2f до последней версии может разрешить возникшие проблемы с выводом сообщений, а также улучшить стабильность всей системы аутентификации. Если проблемы продолжают возникать, имейте в виду возможность конфликта с другими модулями PAM и обязательно просматривайте системные журналы для выявления причин.

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

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