我已经在新的 centos 6.5 机器上安装了 varnish 4。我已激活 EPEL repo 来安装 varnishhttp://repo.varnish-cache.org/redhat/varnish-4.0/ 安装和配置我的 default.vcl 后,我无法启动服务 varnish,我总是在 /var/log/audit/audit.log 中收到一些信息,告诉我 selinux 阻止 varnishd 启动:
type=AVC msg=audit(1412184576.830:242): avc: denied { getattr } for pid=4623 comm="varnishd" path="/etc/hosts" dev=vda1 ino=17248 scontext=unconfined_u:system_r:varnishd_t:s0 tcontext=system_u:object_r:file_t:s0 tclass=file
type=SYSCALL msg=audit(1412184576.830:242): arch=c000003e syscall=5 success=no exit=-13 a0=3 a1=7fff399e8290 a2=7fff399e8290 a3=0 items=0 ppid=4620 pid=4623 auid=0 uid=498 gid=497 euid=498 suid=498 fsuid=498 egid=497 sgid=497 fsgid=497 tty=pts0 ses=1 comm="varnishd" exe="/usr/sbin/varnishd" subj=unconfined_u:system_r:varnishd_t:s0 key=(null)
我尝试使用 audit2allow,但除了安装生成的模块之外,我还遇到了同样的错误......
答案1
我已设法使其工作:禁用 selinux,运行 varnish,然后重新启用 selinux,重新启动,启动服务,然后执行
grep varnishd_t /var/log/audit/audit.log | audit2allow -M myvarnish
当模块启用时,服务现在启动...