之前在搭建zabbix服务时,遗留了一个问题没有解决,就是selinux安全标签

在开启selinux状态下,zabbix web页面会不断提示zabbix server is not running the information displayed may not be current,实则为selinux标签问题

SElinux基本用法

查看所有的 booleans 设置状况

getsebool -a	

设置booleans值

setsebool -P httpd_disable_trans 1

来将 httpd_disable_trans 停用,这样其实也就等于是停用 SELinux 对 httpd 的保护了

chcon 命令则是用来设置 SELinux 对文件或目录的 content 标签的

chcon

检查文件或目录的 SELinux content

fixfiles check

修正(还原)文件或目录的 SELinux content

fixfiles restore

重新修正(还原)所有的文件或目录的 SELinux content

fixfiles relabel


最初以为将zabbix php目录的安全标签设置为与httpd默认目录一样的标签即可

于是查看默认目录selinux标签信息

ls -Zd /var/www/html
drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
设置zabbix php目录标签为上面的输出值
chcon -u system_u -t httpd_sys_content_t /site/zabbix

这样设置后,发现还是不行,于是搜了下,可查看selinux日志信息

tail -f /var/log/audit/audit.log

type=AVC msg=audit(1447931028.371:96): avc:  denied  { name_connect } for  pid=2666 
comm="httpd" dest=10051 
scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:zabbix_port_t:s0 tclass=tcp_socket
type=SYSCALL msg=audit(1447931028.371:96): arch=c000003e syscall=42 
success=no exit=-13 a0=f a1=7faf082a3980 a2=10 a3=7faf0402514c items=0 ppid=2496 pid=2666 
auid=4294967295 uid=48 gid=48 euid=48 suid=48 fsuid=48 egid=48 sgid=48 fsgid=48 tty=(none) 
ses=4294967295 comm="httpd" exe="/usr/sbin/httpd" subj=system_u:system_r:httpd_t:s0 key=(null)
type=MAC_CONFIG_CHANGE msg=audit(1447931029.816:97): 
bool=httpd_can_network_connect val=1 old_val=0 auid=501 ses=1
type=SYSCALL msg=audit(1447931029.816:97): arch=c000003e syscall=1 success=yes 
exit=2 a0=3 a1=7fffbae0fa00 a2=2 a3=0 items=0 ppid=2893 pid=3767 auid=501 uid=0 gid=0 euid=0 
suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts0 ses=1 comm="setsebool" exe="/usr/sbin/setsebool" 
subj=unconfined_u:unconfined_r:setsebool_t:s0-s0:c0.c1023 key=(null)
type=CRYPTO_KEY_USER msg=audit(1447931194.862:98): user pid=4021 uid=0 
auid=4294967295 ses=4294967295 subj=system_u:system_r:sshd_t:s0-s0:c0.c1023 msg='op=destroy 
kind=server fp=fb:9d:21:ab:44:c9:66:e9:70:4e:e8:2f:60:43:f9:ba direction=? spid=4021 suid=0  
exe="/usr/sbin/sshd" hostname=? addr=127.0.0.1 terminal=? res=success'

通过这个日志信息我也看不出是哪个安全标签的问题,有关SELINUX介绍的书是很厚很厚的一本(据说),而设置这个,貌似只能凭经验判断是哪个安全标签


不过没关系,可搜索,搜索给出了设置https://www.zabbix.com/forum/showthread.php?t=23878&page=3

如此设置后,就可以了

setsebool -P httpd_can_network_connect on

我遇到的是selinux标签导致的,可能还有一些别的原因导致的,可参考http://fengzhige.blog.51cto.com/3691377/1034485