yum 업데이트 후 selinux는 PHP "exec" 호출을 차단하기 시작했습니다.

yum 업데이트 후 selinux는 PHP "exec" 호출을 차단하기 시작했습니다.

나는 PHP를 사용했다구현하다명령이 실행되었지만 lpr -P printer_name /var/www/html/somefile.pdfRHEL 시스템 업데이트(7.2에서 7.3) 이후 selinux는 이러한 요청을 차단하기로 결정했습니다.

인쇄된 파일을 보내기 위한 Selinux 권한:

ls -lZ /var/www/html/somefile.pdf
-rw-r-----. apache webdev system_u:object_r:httpd_sys_rw_content_t:s0 /var/www/html/somefile.pdf

감사 로그 cmd에는 위의 PHP 내용에 해당하는 다음 내용이 표시됩니다.

시간->2016년 11월 3일 목요일 15:07:02

유형=PATH msg=audit(1478200022.446:5151): 항목=0 이름="/etc/cups/lpoptions" inode=134317708 dev=fd:03 모드=0100644 ouid=0 ogid=7 rdev=00:00 obj=system_u :object_r:cupsd_rw_etc_t:s0 objtype=일반

유형=CWD msg=audit(1478200022.446:5151): cwd="/var/www/html"

유형=SYSCALL msg=Audit(1478200022.446:5151): arch=c000003e syscall=2 성공=예 종료=5 a0=7fff26837c70 a1=0 a2=0 a3=9 프로젝트=1 ppid=19397 pid=46644 auid=4294967295 uid= 48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(없음) ses=4294967295 comm="lpr" exe="/usr/bin/lpr.cups" subj=system_u :system_r:httpd_t:s0 키=(비어 있음)

type=AVC msg=audit(1478200022.446:5151): avc:rejected{open} for pid=46644 comm="lpr" path="/etc/cups/lpoptions" dev="dm-3" ino=134317708 scontext= system_u :system_r:httpd_t:s0 tcontext=system_u:object_r:cupsd_rw_etc_t:s0 tclass=파일

type=AVC msg=audit(1478200022.446:5151): avc: pid=46644 comm="lpr" name="lpoptions" dev="dm-3" ino=134317708 scontext=system_u:system_r:httpd_t에 대한 {읽기} 거부: s0 tcontext=system_u:object_r:cupsd_rw_etc_t:s0 tclass=파일

현재 selinux 구성은 다음과 같습니다.

# getsebool -a | grep httpd
httpd_anon_write --> off
httpd_builtin_scripting --> on
httpd_can_check_spam --> off
httpd_can_connect_ftp --> off
httpd_can_connect_ldap --> off
httpd_can_connect_mythtv --> off
httpd_can_connect_zabbix --> off
httpd_can_network_connect --> on
httpd_can_network_connect_cobbler --> off
httpd_can_network_connect_db --> off
httpd_can_network_memcache --> off
httpd_can_network_relay --> off
httpd_can_sendmail --> on
httpd_dbus_avahi --> off
httpd_dbus_sssd --> off
httpd_dontaudit_search_dirs --> off
httpd_enable_cgi --> on
httpd_enable_ftp_server --> off
httpd_enable_homedirs --> off
httpd_execmem --> off
httpd_graceful_shutdown --> on
httpd_manage_ipa --> off
httpd_mod_auth_ntlm_winbind --> off
httpd_mod_auth_pam --> off
httpd_read_user_content --> off
httpd_run_ipa --> off
httpd_run_preupgrade --> off
httpd_run_stickshift --> off
httpd_serve_cobbler_files --> off
httpd_setrlimit --> off
httpd_ssi_exec --> on
httpd_sys_script_anon_write --> off
httpd_tmp_exec --> off
httpd_tty_comm --> off
httpd_unified --> off
httpd_use_cifs --> off
httpd_use_fusefs --> off
httpd_use_gpg --> off
httpd_use_nfs --> on
httpd_use_openstack --> off
httpd_use_sasl --> off
httpd_verify_dns --> off

거부로 이어지는 것은 무엇입니까?

답변1

결국 몇 가지 추가 seLinux 도구를 설치했습니다.문제 해결에 도움:

yum install setroubleshoot setools

그러다가 도망갔어

sealert -a /var/log/audit/audit.log

출력에서는 다음 수정 사항을 제안합니다.

ausearch -c 'lpr' --raw | audit2allow -M my-lpr
semodule -i my-lpr.pp
ausearch -c 'wkhtmltopdf-amd' --raw | audit2allow -M my-wkhtmltopdfamd
semodule -i my-wkhtmltopdfamd.pp

이러한 명령을 실행하면 이제 PHP 애플리케이션에서 다시 인쇄할 수 있습니다.

관련 정보