[devel] Нелокальный вариант настроек PAM (system-auth и system-policy)

Evgeny Sinelnikov sin на altlinux.org
Ср Ноя 27 22:16:37 MSK 2019


Здравствуйте,

В новую сборку pam-config добавлены файл-триггеры, не позволяющие
после удаления пакетов, расширяющих систему аутентификации и системные
политики, оставить систему в неопределённом состоянии:
#241839 EPERM #2 [test-only] sisyphus pam-config.git=1.8.0-alt2

предыдущая сборка попрежнему ждёт одобрения:
#240988 EPERM #8 sisyphus pam-config.git=1.8.0-alt1

вс, 24 нояб. 2019 г. в 04:52, Evgeny Sinelnikov <sin at altlinux.org>:
>
> Доброй ночи.
>
> Сборка проверена в различных конфигурациях и отправлена на одобрение:
> #240988 EPERM #8 sisyphus pam-config.git=1.8.0-alt1
>
> чт, 21 нояб. 2019 г. в 02:45, Evgeny Sinelnikov <sin at altlinux.org>:
>>
>> Здравствуйте,
>>
>> Хочу напомнить об актуальной до сих пор теме нелокальных вариантов
>> настроек PAM. С момента последнего обсуждения появились дополнительные
>> вопросы, задачи и проблемы. А, между тем, с тех пор ничего не
>> изменилось:
>> https://lists.altlinux.org/pipermail/devel/2017-April/202654.html
>>
>> Отмечу, что условие uid >= 500 для любых глобальных пользователей. И
>> настройку этой политики с помощью control я пока оставил - это
>> отдельная не столь актуальная проблема (осталась текущая схема).
>>
>> Текущие изменения, которые я хочу предложить протестировать и
>> внедрить, включают в себя следующие проблемы и решения:
>> - "путаница при наличии совпадающих логинов". По умолчанию вводится
>> строгий контроль на уровне стека PAM-модулей с помощью модуля
>> pam_localuser для методов krb5, krb5_ccreds и winbind (для sss это уже
>> внедрено);
>> - Для сохранения возможностей логики с использованием "путаницы", как
>> фичи (а такие варианты использования существуют) вводится метод
>> krb5_local;
>> - Для управления политиками настройки сессии вводится новый control -
>> system-policy.
>>
>> Тестовая сборка готова и сейчас находится на стадии отладки (основные
>> тесты успешно завершены, требуются добровольцы для участия в
>> расширенной проверке):
>> #240988 EPERM #7 [test-only] sisyphus pam-config.git=1.8.0-alt1
>>
>>
>> PS: На текущем этапе всё зависит от мейнтенера pam-config:
>> $ ssh girar acl sisyphus pam-config show
>> pam-config      ldv
>>
>> PPS: Я не стал трогать три метода pkcs11 (выглядит прилично для своих
>> задач), ldap и multi (pam-модули на базе ldap не понимаю как
>> отлаживать - предпочитаю не трогать, как наследие).
>>
>> ________________________________________
>>
>> О последнем подробнее:
>>
>> sin at xpi pam-config $ ls -1 /etc/pam.d/system-*
>> /etc/pam.d/system-auth -> system-auth-krb5_local
>> /etc/pam.d/system-auth-krb5
>> /etc/pam.d/system-auth-krb5_ccreds
>> /etc/pam.d/system-auth-krb5_local
>> /etc/pam.d/system-auth-ldap
>> /etc/pam.d/system-auth-local
>> /etc/pam.d/system-auth-multi
>> /etc/pam.d/system-auth-pkcs11
>> /etc/pam.d/system-auth-sss
>> /etc/pam.d/system-auth-use_first_pass -> system-auth-use_first_pass-krb5_local
>> /etc/pam.d/system-auth-use_first_pass-krb5
>> /etc/pam.d/system-auth-use_first_pass-krb5_ccreds
>> /etc/pam.d/system-auth-use_first_pass-krb5_local
>> /etc/pam.d/system-auth-use_first_pass-ldap
>> /etc/pam.d/system-auth-use_first_pass-local
>> /etc/pam.d/system-auth-use_first_pass-multi
>> /etc/pam.d/system-auth-use_first_pass-pkcs11
>> /etc/pam.d/system-auth-use_first_pass-sss
>> /etc/pam.d/system-auth-use_first_pass-winbind
>> /etc/pam.d/system-auth-winbind
>> /etc/pam.d/system-policy -> system-policy-global
>> /etc/pam.d/system-policy-global
>> /etc/pam.d/system-policy-local
>>
>> Настройка system-policy расширяемая и включает в себя, по умолчанию,
>> две политики - local и global.
>>
>> ~ # control system-policy help
>> global: global session policy with mkhomedir
>> local: local session policy
>> ~ # control system-policy summary
>> system session policy type
>> ~ # control system-policy help
>> global: global session policy with mkhomedir
>> local: local session policy
>> ~ # control system-policy
>> local
>>
>> По сути, первая от второй отличается только одним - наличием модуля
>> pam_mkhomedir.so
>>
>> ~ # cat /etc/pam.d/system-policy-local
>> #%PAM-1.0
>> session         required        pam_mktemp.so
>> session         required        pam_limits.so
>> ~ # cat /etc/pam.d/system-policy-global
>> #%PAM-1.0
>> session         required        pam_mktemp.so
>> session         required        pam_mkhomedir.so silent
>> session         required        pam_limits.so
>>
>> Ещё одна особенность - при переключении system-auth с local на любую
>> другую - system-policy автоматически переключается на global и
>> обратно:
>> ~ # control system-auth local
>> ~ # control system-policy
>> local
>> ~ # control system-auth sss
>> ~ # control system-policy
>> global
>>
>> Это делает поведение по умолчанию аналогичным тому, которое было
>> раньше. При этом, если system-policy задано, то system-auth возвращает
>> system-policy в исходное только при переключении на local, но не
>> наоборот:
>> ~ # control system-auth
>> sss
>> ~ # control system-policy
>> global
>> ~ # control system-auth local
>> ~ # control system-policy
>> local
>>
>> ~ # control system-policy test
>> ~ # control system-policy
>> test
>> ~ # control system-auth krb5
>> ~ # control system-policy
>> test
>> ~ # control system-auth sss
>> ~ # control system-policy
>> test
>> ~ # control system-auth local
>> ~ # control system-policy
>> local
>>
>> Для конфигураций, где вместо pam_mkhomedir.so нужно использовать
>> pam_oddjob_mkhomedir (а это SELinux конфигурации, в первую очередь), а
>> также для применения так называемых групповых политик, модули
>> system-policy планируется устанавливать дополнительно (аналогично
>> тому, как это делается для system-auth):
>> ~ # rpm -qf /etc/pam.d/system-auth-local
>> pam-config-1.8.0-alt1.noarch
>> ~ # rpm -qf /etc/pam.d/system-auth-sss
>> sssd-client-2.2.2-alt2.x86_64
>>
>>
>> --
>> Sin (Sinelnikov Evgeny)
>
>
>
> --
> Sin (Sinelnikov Evgeny)



-- 
Sin (Sinelnikov Evgeny)


Подробная информация о списке рассылки Devel