PAM

Как настроить вход в систему

У вас есть два варианта: pam_p11 или PAM Poldi.

Решение с pam_p11 более сложное и основано на сертификатах S/MIME. Пожалуйста, ознакомьтесь с документацией ` <https://opensc.github.io/pam_pkcs11/doc/pam_pkcs11.html>`__ для получения дополнительной информации.

PAM Poldi 0.4.1 безупречно работает с Nitrokey для аутентификации PAM с ключами RSA (информацию о ключах ECC см. в разделе Устранение неполадок). Помимо установки Poldi (например, sudo apt-get install libpam-poldi на Ubuntu), для его работы необходимы следующие шаги.

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

  1. Сначала вам нужно узнать идентификатор приложения Nitrokey. Он выглядит как или похож на D00600012401020000000000xxxxxxxx.

    gpg --card-status | grep Application
    
  2. Теперь необходимо добавить строку в /etc/poldi/localdb/users, которая содержит следующую информацию <YourApplicationID> <YourUsername>.

    Это может выглядеть как D00600012401020000000000xxxxxxxx nitrokeyuser. Теперь сбросьте открытый ключ из Nitrokey в локальную базу данных Poldis:

    sudo sh -c 'gpg-connect-agent "/datafile /etc/poldi/localdb/keys/<YourApplicationID>" "SCD READKEY --advanced OPENPGP.3" /bye'
    

    Пожалуйста, обратите внимание, что в строке выше вы должны вставить свой ID приложения вместе с ID вашего Nitrokey!

    Затем необходимо настроить PAM. Просто добавьте auth sufficient pam_poldi.so в конфигурационные файлы PAM в соответствии с вашими потребностями:

    • /etc/pam.d/common-auth для графического входа пользователей

    • /etc/pam.d/login для входа в консоль

    • /etc/pam.d/sudo для аутентификации sudo

    • /etc/pam.d/gnome-screensaver для возврата входа с заблокированного экрана

    • и другие файлы в разделе /etc/pam.d

    Примечание

    С PAM опасно играть, поэтому убедитесь, что у вас есть способ получить доступ к машине, если вы полностью нарушите аутентификацию. Помните, что загрузка в режим спасения из GRUB требует пароля root, поэтому держите его или live CD, который может читать ваши файловые системы, под рукой.

Здесь вы найдете ` дальнейшие инструкции <https://wiki.ubuntuusers.de/Archiv/Authentifizierung_OpenPGP_SmartCard>`__ (на немецком языке, частично устаревшие).

Устранение неполадок

Если вы получите ошибку, подобную ERR 100663414 Invalid ID <SCD>, вам следует попробовать вместо этого

poldi-ctrl -k > <YourApplicationID>; sudo mv <YourApplicationID> /etc/poldi/localdb/keys

Пожалуйста, имейте в виду, что в строке выше вы должны вставить ID вашей заявки вместе с ID вашей палочки!

Ключи ECC

К сожалению, в Poldi пока нет поддержки ключей ECC. Но есть патч для ключей ECC, используемых с Nitrokey Start. Он уже включен в мастер-ветку репозитория разработки Poldi и, следовательно, со временем будет выпущен в новой версии. А пока единственным вариантом является сборка Poldi из исходников.