- Как в SELinux дать httpd право на выполнение файла bin_t, billybons2006, 17:58 , 20-Апр-16 (1)
Добавлю: меня сбивает с толку факт, что в логе /var/log/audit/audit.log указан стартовый контекст (scontext=system_u:system_r:httpd_t:s0), в конфиге postfixadmin указан файл /usr/bin/doveadm, а audit2allow предлагает решение: дать httpd_t доступ на чтение директории конфигов dovecot. А где, собственно, указание httpd_t дать доступ к bin_t (/usr/bin/doveadm)?
- Как в SELinux дать httpd право на выполнение файла bin_t, eRIC, 19:34 , 20-Апр-16 (2) +2
> Добавлю: меня сбивает с толку факт, что в логе /var/log/audit/audit.log указан стартовый > контекст (scontext=system_u:system_r:httpd_t:s0), в конфиге postfixadmin указан файл > /usr/bin/doveadm, а audit2allow предлагает решение: дать httpd_t доступ на чтение директории > конфигов dovecot. А где, собственно, указание httpd_t дать доступ к bin_t > (/usr/bin/doveadm)?если разжевать лог это выглядит так: postfixadmin веб приложение, которое работает под httpd(Apache2 сервер) где в веб приложении(в контексте httpd сервера) вызывается административная утилита /usr/bin/doveadm где данная утилита обращается к своему конфигурационному файлу /etc/dovecot/dovecot.conf для выполнения задачи #ps axZ | grep httpd (отобразит текущие SELinux правила/контексты httpd процесса) вывод: 1- отключить SELinux (что не ахти) или переключить на Permissive или Enforcing 2- подружиться с SELinux (то что советуется в audit логах) при помощи TE(Type Enforcement) файла(писать самому или же использовать audit2allow утилиту) Решение: #grep httpd_t /var/log/audit/audit.log | audit2allow -m doveadmlocal > doveadmlocal.te #cat doveadm.te будет содержать типа такого: module doveadm 1.0; require { type dovecot_etc_t; type httpd_t; class file { read getattr open }; class dir read; } #============= httpd_t ============== allow httpd_t dovecot_etc_t:file { read getattr open }; allow httpd_t dovecot_etc_t:dir read; дальше этот файл TE скомпилировать в модуль и включить в список модулей SELinux, будет где-то в этой папке /etc/selinux/targeted/modules/active/modules/: #checkmodule -M -m -o doveadmlocal.mod doveadmlocal.te #semodule_package -o doveadmlocal.pp -m doveadmlocal.mod #semodule -i doveadmlocal.pp Литература: https://wiki.centos.org/HowTos/SELinux
- Как в SELinux дать httpd право на выполнение файла bin_t, billybons2006, 21:36 , 20-Апр-16 (3)
> если разжевать лог это выглядит так: > postfixadmin веб приложение, которое работает под httpd(Apache2 сервер) где в веб приложении(в > контексте httpd сервера) вызывается административная утилита /usr/bin/doveadm где данная > утилита обращается к своему конфигурационному файлу /etc/dovecot/dovecot.conf для выполнения > задачи Зачем его разжёвывать? Я не говорил, что мне непонятна суть. Мне непонятно вот что: для dovecot файл doveadm в самом деле "утилита". Но она, эта утилита, чужая для httpd. Почему стоит вопрос так, что надо утилите дать права на чтение конфига ее "хозяина" dovecot, когда по идее должен стоять вопрос как вообще httpd допущен к запуску /usr/bin/doveadm, которая bin_t. Мне это не совсем ясно. > #ps axZ | grep httpd (отобразит текущие SELinux правила/контексты httpd процесса) system_u:system_r:httpd_t:s0 2253 ? Ss 0:02 /usr/sbin/httpd -DFOREGROUND system_u:system_r:httpd_t:s0 2255 ? S 0:00 /usr/sbin/httpd -DFOREGROUND system_u:system_r:httpd_t:s0 2256 ? S 0:00 /usr/sbin/httpd -DFOREGROUND system_u:system_r:httpd_t:s0 2257 ? S 0:00 /usr/sbin/httpd -DFOREGROUND system_u:system_r:httpd_t:s0 2258 ? S 0:00 /usr/sbin/httpd -DFOREGROUND system_u:system_r:httpd_t:s0 2259 ? S 0:00 /usr/sbin/httpd -DFOREGROUND system_u:system_r:httpd_t:s0 2281 ? S 0:00 /usr/sbin/httpd -DFOREGROUND unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 3741 pts/0 S+ 0:00 grep --color=auto httpd > вывод: > 1- отключить SELinux (что не ахти) или переключить на Permissive или Enforcing > 2- подружиться с SELinux (то что советуется в audit логах) при помощи > TE(Type Enforcement) файла(писать самому или же использовать audit2allow утилиту) Еще больше непонятно. Я же не предлагаю отключать. В вашей терминологии я с ним "дружусь" :) >[оверквотинг удален] > class dir read; > } > #============= httpd_t ============== > allow httpd_t dovecot_etc_t:file { read getattr open }; > allow httpd_t dovecot_etc_t:dir read; > дальше этот файл TE скомпилировать в модуль и включить в список модулей > SELinux, будет где-то в этой папке /etc/selinux/targeted/modules/active/modules/: > #checkmodule -M -m -o doveadmlocal.mod doveadmlocal.te > #semodule_package -o doveadmlocal.pp -m doveadmlocal.mod > #semodule -i doveadmlocal.pp Там все уже скомпилировано, сразу после выполнения: grep httpd_t /var/log/audit/audit.log | audit2allow -M doveadmlocal и только и ждет того, чтобы подгрузили. Во-первых, я уже писал, что после этого все равно ничего не пошло, а во-вторых, я читал на нескольких форумах, что на эту утилиту полагаться всецело не надо, типа, поймите сначала, что она предлагает, а потом уже думайте. Поэтому у меня и возник вопрос о том, а почему проблема между doveadm и конфигом dovecot, а не между httpd и doveadm. Ответить на этот вопрос я не смог (к тому же стал думать, что дело в domain transitions и окончательно сбился с мыслей) и спросил здесь. > Литература: https://wiki.centos.org/HowTos/SELinux Спасибо! Мне больше нравится эта: https://access.redhat.com/documentation/en-US/Red_Hat_Enterp...
- Как в SELinux дать httpd право на выполнение файла bin_t, eRIC, 06:27 , 21-Апр-16 (5)
> Зачем его разжёвывать? Я не говорил, что мне непонятна суть.было разжевано для того, чтобы понять всю цепочку лога в audit и куда дальше копать :) > Мне непонятно вот что: для dovecot файл doveadm в самом деле "утилита". > Но она, эта утилита, чужая для httpd. Почему стоит вопрос так, > что надо утилите дать права на чтение конфига ее "хозяина" dovecot, > когда по идее должен стоять вопрос как вообще httpd допущен к > запуску /usr/bin/doveadm, которая bin_t. Мне это не совсем ясно.\ из selinuxproject.org: ---------------------------------- # Using the type statement to declare a type of bin_t, where # bin_t is used to identify a file as an ordinary program type. type bin_t; ---------------------------------- > Еще больше непонятно. Я же не предлагаю отключать. В вашей терминологии я > с ним "дружусь" :) ну и вам никто явно не говорил отключать, показали пути решения, выбирать барину :)
- Как в SELinux дать httpd право на выполнение файла bin_t, billybons2006, 22:08 , 20-Апр-16 (4)
> #============= httpd_t ============== > allow httpd_t dovecot_etc_t:file { read getattr open }; > allow httpd_t dovecot_etc_t:dir read; После того, как вы прислали мне то, от чего я ушел в самом начале, подумалось, что если двое так считают, то все же имеет смысл попробовать еще разок: grep dove /var/log/audit/audit.log | audit2allow -M doveconf-module semodule -i doveconf-module.pp Взял из истории команд те же самые, загрузил модуль и, тысяча чертей, пошло. Спасибо за отклик, помогли. А то я в дебри ушел бы сто процентов, т.к. считал предыдущие шаги ошибочными.
|