Permitindo que o httpd execute um script bash em / usr / bin /

2

Migrando um sistema do CentOS6 para o RHEL7 com o SELinux executando o Enforced. Um script php faz uma chamada para /usr/bin/processdata.sh para gerar alguns dados nos bastidores. Isso funcionou bem com o sistema antigo, mas o php exec chamar bobinas com o SELinux definido como ativado.

Aqui está a permissão sh

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

Este erro de auditoria é visto ao mesmo tempo em que a página do php é chamada:

ausearch -l -i | grep httpd

type=SYSCALL msg=audit(02/27/2016 14:07:52.662:23480) : arch=x86_64 syscall=socket success=no exit=-97(Address family not supported by protocol) 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=(none) ses=unset comm=httpd exe=/usr/sbin/httpd subj=system_u:system_r:httpd_t:s0 key=(null) type=AVC msg=audit(02/27/2016 14:07:52.662:23480) : 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

Aqui estão meus links atuais:

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

Há alguma coisa na configuração do meu selinux que não estou vendo?

    
por a coder 28.02.2016 / 14:23

2 respostas

3

Is something off in my selinux config that I'm not seeing?

O que você nos mostra de você A configuração do SELinux parece 'normal', mas isso não quer dizer que não precise ser ajustado para atender a sua carga de trabalho específica.

O que eu faria aqui é colocar o SELinux no modo permissivo ( setenforce 0 ) e fazer com que o auditd inicie um novo arquivo de log ( kill -USR1 < PID de auditoria & gt ;. Então, realize seu negócio normal. O SELinux gerará mensagens para análise posterior.

Quando você executa o modo permissivo por "algum tempo", pode usar as ferramentas padrão para investigar as mensagens do SELinux.

O utilitário audit2why pode esclarecer as mensagens registradas e também dar conselhos sobre o que fazer, por exemplo, sobre o snippet que você publicou.

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

Como você está executando atualmente no modo Imposição, somente a primeira negação é registrada, se você tivesse que consertar e provavelmente descobriria mais, por isso você deve executar temporariamente no modo Permissivo, todas as negações são registradas.

Às vezes, audit2why não é muito útil. Nesses casos, uma compreensão mais profunda do SELinux pode ser útil. Por exemplo, você pode executar o log de auditoria em audit2allow e gerar uma política local que pode ser aplicada com semodule . Isso deve ser cuidadosamente auditado, pois você pode dar mais do que o necessário.

    
por 28.02.2016 / 15:05
0

Para permitir que o lighttpd execute arquivos, ative o SELinux bool http_execmem .

Em seguida, altere o tipo de arquivo para permitir que o lighttpd seja executado: chcon system_u:object_r:httpd_exec_t:s0 [file] .

Mantenha essa alteração persistente no kernel usando semanage fcontext -a -t httpd_exec_t [file] .

    
por 13.04.2016 / 22:30