| Summary: | Не получает pam_authtok | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Sisyphus | Reporter: | makhotinvs <makhotinvs> | ||||||||||||||
| Component: | pam_pkcs11 | Assignee: | manowar <manowar> | ||||||||||||||
| Status: | CLOSED WONTFIX | QA Contact: | qa-sisyphus | ||||||||||||||
| Severity: | normal | ||||||||||||||||
| Priority: | P5 | CC: | alimektor, ldv, manowar, max.gordeef, placeholder | ||||||||||||||
| Version: | unstable | ||||||||||||||||
| Hardware: | x86 | ||||||||||||||||
| OS: | Linux | ||||||||||||||||
| Attachments: |
|
||||||||||||||||
|
Description
makhotinvs@mosreg.tru
2025-02-20 13:30:17 MSK
Здравствуйте! Предоставьте следующую информацию: 1. Операционная система, версия. 2. Обновлена ли система до текущего состояния P10? 3. Какой провайдер токена используется (пример: Rutoken)? 4. Сервер AD: Windows Server (версия) или Samba (ALT Linux)? 5. Желательно предоставить шаги конфигурации / настройки / инструкция для воспроизведения. 1. [root@mz-skb-gk-lin1 ~]# lsb_release -a LSB Version: n/a Distributor ID: ALT Description: ALT Workstation 10.4 (Autolycus) Release: 10.4 Codename: Autolycus 2. Да обновление выполнено. 3. Rutoken ECP 2.0, Jacarta PKI 4. Windows Server 2019 5. Файлы конфигурации прикладываю. Created attachment 17826 [details]
pam_lightdm
Created attachment 17827 [details]
pam_pkcs11_jacarta - conf
Created attachment 17828 [details]
pam_pkcs11_rutoken
Created attachment 17829 [details]
krb5
Created attachment 17830 [details]
sssd
Created attachment 17831 [details]
system-auth
1. Устанавливаем pam_pkcs11 2. Устанавливаем JaCarta (https://www.aladdin-rd.ru/upload/downloads/JaCarta_UC/jacarta-3.1/lunix/distributions/jacartauc_3.1.2.3478_rpm_x64.zip) и Rutoken (librtpkcs11ecp) 3. В папку /etc/security/pam_pkcs11/cacerts копируем файлы root ca (sub ca) и хэшируем pkcs11_make_hash_link. 4. Правим файлы lightdm и system-auth переключаем в krb5 Comment on attachment 17830 [details] sssd >[sssd] >config_file_version = 2 >services = nss, pam > ># Managed by system facility command: >## control sssd-drop-privileges unprivileged|privileged|default >user = root > ># SSSD will not start if you do not configure any domains. > >domains = D.M.R >[nss] > >[pam] >[domain/D.MO.RU] >dyndns_ttl = 0 >dyndns_refresh_interval = 60 >dyndns_update_ptr = true >dyndns_update = true >id_provider = ad >auth_provider = ad >chpass_provider = ad >access_provider = ad >default_shell = /bin/bash >fallback_homedir = /home/%d/%u >debug_level = 0 >cache_credentials = true >ad_gpo_ignore_unreadable = true >ad_gpo_access_control = permissive >ad_update_samba_machine_account_password = true >pam_cert_auth = True >p11_child_timeout = 120 >pam_p11_allowed_services = +cinnamon-screensaver, +mate-screensaver, +lightdm >; cache_credentials = false Предоставьте дополнительную информацию:
> 3. В папку /etc/security/pam_pkcs11/cacerts копируем файлы root ca (sub ca) и хэшируем pkcs11_make_hash_link.
1. Инструкцию какого вендора вы используете? В официальных открытых инструкциях ALT Linux я данной информации не нашёл, особенно про утилиту pkcs11_make_hash_link.
2. Я вижу в отличие от нашего вендора: использование апстримной библиотеки Jacarta jcpkcs11-2-2.9.0.874-1 вместо libjcpkcs11-2.9.0.806-alt3, который используется в репозитории. Воспроизводится ли данная ошибка с использованием libjcpkcs11-2.9.0.806-alt3?
3. Вывод # cat /usr/share/polkit-1/actions/org.debian.pcsc-lite.policy?
файл (Ответ для Evgeny Shesteperov на комментарий #11) > Предоставьте дополнительную информацию: > > > 3. В папку /etc/security/pam_pkcs11/cacerts копируем файлы root ca (sub ca) и хэшируем pkcs11_make_hash_link. > > 1. Инструкцию какого вендора вы используете? В официальных открытых > инструкциях ALT Linux я данной информации не нашёл, особенно про утилиту > pkcs11_make_hash_link. https://kbp-6.aladdin-rd.ru/index.php?View=entry&EntryID=245 взята за основу вот эта статья. https://github.com/OpenSC/pam_pkcs11/blob/master/tools/pkcs11_make_hash_link > > 2. Я вижу в отличие от нашего вендора: использование апстримной библиотеки > Jacarta jcpkcs11-2-2.9.0.874-1 вместо libjcpkcs11-2.9.0.806-alt3, который > используется в репозитории. Воспроизводится ли данная ошибка с > использованием libjcpkcs11-2.9.0.806-alt3? Jacarta jcpkcs11-2-2.9.0.874-1 взято с оф сайта JaCarta. Но проблема аналогичная и на Rutoken ECP 2.0/Rutoken 3.0 с пакетом из репозитория. > 3. Вывод # cat /usr/share/polkit-1/actions/org.debian.pcsc-lite.policy? Изменения в этот файл не вносил в итоге, так как они не влияют. Проверял. Сейчас оставил пока авторизацию pam_krb5 (логин в lightdm подставляется из pklogin_finder модуля pam_pkcs11, далее запрос пинкода) без использования pam_pkcs11 в lightdm Воспроизводится в p10. Перепроверил также с модулем su. pam_krb5 не получает пароля от pam_pkcs11 через PAM_AUTHTOK. (In reply to Evgeny Shesteperov from comment #13) > Воспроизводится в p10. > > Перепроверил также с модулем su. > > pam_krb5 не получает пароля от pam_pkcs11 через PAM_AUTHTOK. Уточните, пожалуйста, почему это было перевешено именно на pam-config. (Ответ для Dmitry V. Levin на комментарий #14) > Уточните, пожалуйста, почему это было перевешено именно на pam-config. Повесил изначально на пакет, отвечающий за данную директорию. # rpm -qf /etc/pam.d/ pam-config-1.9.1-alt1.noarch Посмотрел, за что отвечает данный пакет, перевесил обратно на pam_pkcs11. А объясните, пожалуйста, почему (и каким образом?) у вас ПИН-код используется где-то ещё, кроме токена? Это же такой набор циферок, который зашит в конкретное устройство или карту. А у вас, получается, ПИН-код используется где-то помимо аппаратного устройства (на контроллере домена?). Я не совсем понимаю, почему аутентификация у вас так устроена. И ещё интересный вопрос, как вы синхронизируйте этот код? Допустим Вася заметил, что Петя следил за тем, как он вводит ПИН-код и поэтому поменял его на своём токене. Вопрос, каким образом Вася теперь пройдёт через pam_krb5, если пароль будет передаваться через PAM_AUTHTOK? (Ответ для manowar@altlinux.org на комментарий #16) > А объясните, пожалуйста, почему (и каким образом?) у вас ПИН-код > используется где-то ещё, кроме токена? Это же такой набор циферок, который > зашит в конкретное устройство или карту. А у вас, получается, ПИН-код > используется где-то помимо аппаратного устройства (на контроллере домена?). > Я не совсем понимаю, почему аутентификация у вас так устроена. И ещё > интересный вопрос, как вы синхронизируйте этот код? Допустим Вася заметил, > что Петя следил за тем, как он вводит ПИН-код и поэтому поменял его на своём > токене. Вопрос, каким образом Вася теперь пройдёт через pam_krb5, если > пароль будет передаваться через PAM_AUTHTOK? Для понимания работы авторизации в конфиге lightdm: 1) Если вставлена физически смарт карта Rutoken запрос пинкода авторизация, если нет то пропускаем auth optional pam_pkcs11.so card_only config_file=/etc/security/pam_pkcs11/pam_pkcs11_rutoken.conf 2) Если вставлена карта JaCarta запрос пинкода, если не вставлена пропускаем auth optional pam_pkcs11.so card_only config_file=/etc/security/pam_pkcs11/pam_pkcs11_jacarta.conf 3) Если по 1 или 2 пункту были успехи то ЗАПРОС ПИН КОДА и авторизация с получением билета kerberos. Вопрос зачем пользователю вводить ещё раз свой пин код за 1 проход авторизации за рабочим местом?! Для этого PIN должен передаться с помощью pam_authtok из pam_pkcs11. Если токен ни 1 токен не был вставлен то запрос логина и пароля через pam_krb5 и получения билета kerberos и вход auth sufficient pam_krb5.so try_pkinit use_first_pass
> И ещё интересный вопрос, как вы синхронизируйте этот код? Допустим Вася заметил,
> что Петя следил за тем, как он вводит ПИН-код и поэтому поменял его на своём
> токене.
Каждый пользователя имеет свой токен входа, соответственно каждый пользователь может изменить свой пин. Мы его не храним не синхронизируем он нужен только чтоб прочитать закрытый ключ для авторизации.
Всё ещё не понятно: у вас пользователь получает билет kerberos по ПИН-коду? Каким образом это возможно? Предположение: может быть ПИН-код запрашивается дважды потому, что pam_pkcs11.so дважды упоминается в конфигурации PAM? (Ответ для manowar@altlinux.org на комментарий #19) > Всё ещё не понятно: у вас пользователь получает билет kerberos по ПИН-коду? > Каким образом это возможно? > Предположение: может быть ПИН-код запрашивается дважды потому, что > pam_pkcs11.so дважды упоминается в конфигурации PAM? Пользователь вводит пин код от токена (Rutoken/Jacarta) где храниться открытый и закрытый ключ, далее pam_krb5 получает билет с использвоанием сертификата открытого и закрытого ключа который находится на токене. Предположение не верное - описал выше в ответе порядок прохождения pam и указал что если ключа нет то "пропуск" - pam_pkcs11 не может запросить PIN от токена которого нет в устройстве. Я так понимаю если такие вопросы у исполнителя по багу то лучше не ждать вообще решения проблемы. |