Разрешение httpd запускать сценарий bash в / usr / bin /

Миграция системы с CentOS6 на RHEL7 с SELinux, работающим под управлением Enforce. Сценарий php вызывает /usr/bin/processdata.sh для генерации некоторых данных за кулисами. Это нормально работало со старой системой, но вызов php exec блокируется при включенном SELinux.

Вот разрешение sh

-rwxrwx--x. root root unconfined_u:object_r:bin_t:s0   /usr/bin/process_data.sh

Эта ошибка аудита видна одновременно с вызовом страницы php :

ausearch -l -i | grep httpd

type = SYSCALL msg = audit (27.02.2016 14: 07: 52.662: syscall = socket success = no exit = -97 (Семейство адресов не поддерживается протокол) a0 = inet6 a1 = SOCK_DGRAM a2 = ip a3 = 0x672e76656473626e items = 0 ppid = 15686 pid = 3852 auid = unset uid = apache gid = apache euid = apache suid = apache fsuid = apache egid = apache sgid = apache fsgid = apache tty = (нет) ses = unset comm = httpd exe = / usr / sbin / httpd subj = system_u: system_r: httpd_t: s0 key = (null) type = AVC msg = audit (27.02.2016 14: 07: 52.662: 23480): avc: denied { module_request} для pid = 3852 comm = httpd kmod = "net-pf-10" scontext = system_u: system_r: httpd_t: s0 tcontext = system_u: system_r: kernel_t: s0 tclass = system

Вот мои текущие httpd bools:

httpd_can_network_relay        (off  ,  off)  Allow httpd to can network relay
httpd_can_connect_mythtv       (off  ,  off)  Allow httpd to can connect mythtv
httpd_can_network_connect_db   (off  ,  off)  Allow httpd to can network connect db
httpd_use_gpg                  (off  ,  off)  Allow httpd to use gpg
httpd_dbus_sssd                (off  ,  off)  Allow httpd to dbus sssd
httpd_enable_cgi               (on   ,   on)  Allow httpd to enable cgi
httpd_verify_dns               (off  ,  off)  Allow httpd to verify dns
httpd_dontaudit_search_dirs    (off  ,  off)  Allow httpd to dontaudit search dirs
httpd_anon_write               (off  ,  off)  Allow httpd to anon write
httpd_use_cifs                 (off  ,  off)  Allow httpd to use cifs
httpd_enable_homedirs          (off  ,  off)  Allow httpd to enable homedirs
httpd_unified                  (off  ,  off)  Allow httpd to unified
httpd_mod_auth_pam             (off  ,  off)  Allow httpd to mod auth pam
httpd_run_stickshift           (off  ,  off)  Allow httpd to run stickshift
httpd_use_fusefs               (off  ,  off)  Allow httpd to use fusefs
httpd_can_connect_ldap         (off  ,  off)  Allow httpd to can connect ldap
httpd_can_network_connect      (on   ,   on)  Allow httpd to can network connect
httpd_mod_auth_ntlm_winbind    (off  ,  off)  Allow httpd to mod auth ntlm winbind
httpd_tty_comm                 (off  ,  off)  Allow httpd to tty comm
httpd_sys_script_anon_write    (off  ,  off)  Allow httpd to sys script anon write
httpd_graceful_shutdown        (on   ,   on)  Allow httpd to graceful shutdown
httpd_can_connect_ftp          (off  ,  off)  Allow httpd to can connect ftp
httpd_run_ipa                  (off  ,  off)  Allow httpd to run ipa
httpd_read_user_content        (off  ,  off)  Allow httpd to read user content
httpd_use_nfs                  (off  ,  off)  Allow httpd to use nfs
httpd_can_connect_zabbix       (off  ,  off)  Allow httpd to can connect zabbix
httpd_tmp_exec                 (off  ,  off)  Allow httpd to tmp exec
httpd_run_preupgrade           (off  ,  off)  Allow httpd to run preupgrade
httpd_manage_ipa               (off  ,  off)  Allow httpd to manage ipa
httpd_can_sendmail             (on   ,   on)  Allow httpd to can sendmail
httpd_builtin_scripting        (on   ,   on)  Allow httpd to builtin scripting
httpd_dbus_avahi               (off  ,  off)  Allow httpd to dbus avahi
httpd_can_check_spam           (off  ,  off)  Allow httpd to can check spam
httpd_can_network_memcache     (off  ,  off)  Allow httpd to can network memcache
httpd_can_network_connect_cobbler (off  ,  off)  Allow httpd to can network connect cobbler
httpd_use_sasl                 (off  ,  off)  Allow httpd to use sasl
httpd_serve_cobbler_files      (off  ,  off)  Allow httpd to serve cobbler files
httpd_execmem                  (off  ,  off)  Allow httpd to execmem
httpd_ssi_exec                 (off  ,  off)  Allow httpd to ssi exec
httpd_use_openstack            (off  ,  off)  Allow httpd to use openstack
httpd_enable_ftp_server        (off  ,  off)  Allow httpd to enable ftp server
httpd_setrlimit                (off  ,  off)  Allow httpd to setrlimit

Что-то не так в моей конфигурации selinux, чего я не вижу?

2
задан 28 February 2016 в 15:23
2 ответа

В моей конфигурации selinux что-то не так, чего я не вижу?

То, что вы нам показываете, конфигурация SELinux выглядит «нормально», но это не значит, что ее не нужно настраивать. соответствует вашей конкретной рабочей нагрузке.

Я бы сделал здесь SELinux в разрешающем режиме ( setenforce 0 ), а затем заставил auditd запустить новый файл журнала ( kill -USR1 . Затем займитесь своими обычными делами. SELinux будет генерировать сообщения для последующего анализа.

Когда вы работаете в разрешающем режиме в течение «некоторого времени», вы можете использовать стандартные инструменты для исследования сообщений SELinux.

Утилита audit2why может пролить свет на регистрируемые сообщения, а также может дать совет о том, что делать. Например, в ней говорится о опубликованном вами фрагменте.

avc: denied { module_request } for pid=3852 comm=httpd kmod="net-pf-10" scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=system

        Was caused by:
        The boolean domain_kernel_load_modules was set incorrectly.
        Description:
        Allow all domains to have the kernel load modules

        Allow access by executing:
        # setsebool -P domain_kernel_load_modules 1

Поскольку вы в настоящее время работаете в Принудительный режим регистрируется только первое отклонение, если вы должны были исправить это, вы, вероятно, найдете больше, поэтому вам следует временно запустить в разрешающем режиме в режиме все отказы регистрируются.

Иногда audit2why не очень помогает. В таких случаях может оказаться полезным более глубокое понимание SELinux. Например, вы можете запустить журнал аудита через audit2allow и создать локальную политику, которую можно применить с помощью semodule . Однако это следует тщательно проверять, так как вы можете дать больше, чем нужно.

3
ответ дан 3 December 2019 в 10:38

Чтобы разрешить lighttpd выполнять файлы, включите SELinux bool http_execmem .

Затем измените тип файла, чтобы разрешить выполнение lighttpd: chcon system_u: object_r: httpd_exec_t: s0 [file] .

Сохраните это изменение в ядре, используя semanage fcontext -a -t httpd_exec_t [file] .

0
ответ дан 3 December 2019 в 10:38

Теги

Похожие вопросы