Bug 33840 - Ошибка входа доменного пользователя при включенном SELinux
Summary: Ошибка входа доменного пользователя при включенном SELinux
Status: REOPENED
Alias: None
Product: Sisyphus
Classification: Development
Component: selinux-policy-alt (show other bugs)
Version: unstable
Hardware: all Linux
: P3 normal
Assignee: Nobody's working on this, feel free to take it
QA Contact: qa-sisyphus
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-09-01 18:10 MSK by Sergey Novikov
Modified: 2017-10-06 19:47 MSK (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sergey Novikov 2017-09-01 18:10:17 MSK
На машине введенной в домен FreeIPA невозможно зайти доменным пользователем при включенном SELinux, потому что сервис sssd пытается получить доступ к файлам в директории /etc/selinux/alt/contexts/files, а политика ему это не позволяет:

type=ROLE_ASSIGN msg=audit(1504276892.251:84): pid=1638 uid=0 auid=4294967295 ses=4294967295 subj=generic_u:generic_r:generic_t:s0 msg='op=login-sename,role,range acct="test01" old-seuser=? old-role=? old-range=? new-seuser=generic_u new-role=object_r,generic_r new-range=s0-s3:c0.c15 exe="/usr/libexec/sssd/selinux_child" hostname=? addr=? terminal=? res=success'

type=AVC msg=audit(1504276892.304:85): avc:  denied  { write } for  pid=1638 comm="selinux_child" name="files" dev="vda2" ino=440139 scontext=generic_u:generic_r:generic_t:s0 tcontext=generic_u:object_r:selinux_protected_t:s0 tclass=dir permissive=0

find /etc/ -inum 440139
/etc/selinux/alt/contexts/files

При отключении SELinux заходит нормально и правила сопоставления SELinux-пользователей FreeIPA работают.
Comment 1 AEN 2017-10-04 02:47:00 MSK
2rider: Антон, есть проблемы с исправлением?
Comment 2 Anton Farygin 2017-10-04 07:32:21 MSK
Я этим не занимаюсь.
Comment 3 nbr 2017-10-04 15:57:51 MSK
В багу приглашается sin@ с вопросом: а что,собственно, надо sssd от selinux в данном случае. Ему это действительно надо (тогда надо менять полиси) или его надо самого патчить, чтобы он "это" не запрашивал?
Comment 4 Evgeny Sinelnikov 2017-10-04 16:01:19 MSK
Это надо посмотреть. И ещё нужно учесть, что sssd умеет сам selinux (и тут надо уточнить, что он умеет). В поддержкой selinux sssd что-то, действительно, хочет от selinux.
Comment 5 Anton Farygin 2017-10-04 16:04:13 MSK
Жень, исходи пожалуйста из того, что политику менять сейчас гемморойно.
Но, наверное можно, особенно если кто-то сможет подробно описать что именно в ней менять (а ещё лучше сделает патчи).
Comment 6 nbr 2017-10-04 16:13:06 MSK
Вот этот модуль пытается работать. В других ОС он имеет специальный контекст, который разрешает ему работать с selinux users.
http://git.altlinux.org/gears/s/sssd.git?p=sssd.git;a=blob;f=src/providers/ipa/selinux_child.c;h=f8dd3954a7244df2dcbb910aabf8888f41306c09;hb=b47fd11a259c50e63cd674c7cba0da3f2549cae0
Comment 7 Mikhail Efremov 2017-10-04 16:24:28 MSK
В федоре:
# ls -Z /usr/libexec/sssd/selinux_child
system_u:object_r:sssd_selinux_manager_exec_t:s0 /usr/libexec/sssd/selinux_child

Мне кажется проще всего разрешить sssd делать то, что ему нужно. Т.е. добавить тип аналогичный sssd_selinux_manager_exec_t в selinux-policy-alt и установить его для selinux_child. Насколько это сложно сделать не знаю, я никогда не смотрел внутрь selinux-policy-alt.
Comment 8 nbr 2017-10-06 17:22:31 MSK
В ALT policy НЕТ targeted политики, таким образом маппинг пользователей на selinux пользователей не имеет смысла. Freeipa работает на одном уровне MLS и поэтому 
1) всех пользователей надо маппить при создании на пользователя generic_u 
2) ставить freeipa_server с выключенным selinux и подключать клиента - тоже
3) после установки в /etc/sssd/sssd.conf в cекции domain/<имя домена>
добавить selinux_provider=none
Есть работающий стенд.
Comment 9 Anton Farygin 2017-10-06 17:33:50 MSK
Денис, спасибо.

Какие-то костыли, давайте эту ошибку переоткроем и решим со временем как сделать правильно, что бы всё работало из коробки.
Comment 10 AEN 2017-10-06 19:04:05 MSK
(В ответ на комментарий №9)
> Денис, спасибо.
> 
> Какие-то костыли, давайте эту ошибку переоткроем и решим со временем как
> сделать правильно, что бы всё работало из коробки.

Я бы советовал открыть другую багу с корректной формулировкой.
Comment 11 Anton Farygin 2017-10-06 19:47:45 MSK
в общем дальнейшее обсуждение ушло в кулуары, результатом должна стать поддержка мандатной модели selinux в sssd/freeipa. Ошибку пока прошу не закрывать.