SELINUX:squid服务启动/重启失败

时间:2019-08-20 17:58:30  来源:igfitidea点击:

在CentOS 6.5中安装Squid版本3.5.0后,squid服务却无法启动/重新启动。
一般来说,在安装了默认配置的包之后,我们可以在没有任何配置的情况下启动/停止/重新启动服务。

原因

原因是启用了selinux,我们可以禁用selinux,
或者使用下面的方法进行selinux设置。

故障排除步骤:

安装policycoreutils python

Policycore utils是一个包实用程序,它帮助操作SELINUX系统和政策。
policycoreutils包含许多命令。例如,semanage、audit2allow等。

安装policycoreutils-python

yum install policycoreutils-python

重启Squid服务

安装 policycoreutils python后,重启 squid服务
这样我们就可以查看报错日志

tail -n 50 /var/log/audit/audit.log

结果显示 SELINUX不允许Squid写入。

type=AVC msg=audit(1394114838.911:45): avc: denied { write } for pid=1505 comm="squid" name="/" dev=tmpfs ino=5421 scontext=unconfined_u:system_r:squid_t:s0 tcontext=system_u:object_r:tmpfs_t:s0 tclass=dir
type=SYSCALL msg=audit(1394114838.911:45): arch=c000003e syscall=2 success=no exit=-13 a0=7fff32db9a10 a1=a0242 a2=180 a3=7fff32db9790 items=0 ppid=1493 pid=1505 auid=0 uid=23 gid=23 euid=23 suid=0 fsuid=23 egid=23 sgid=23 fsgid=23 tty=pts0 ses=2 comm="squid" exe="/usr/sbin/squid" subj=unconfined_u:system_r:squid_t:s0 key=(null)

查看selinux状态,确实是启用的。

# getenforce 
Enforcing

使用audit2allow

使用audit2allow来帮助从被拒绝的操作日志生成SELINUX策略allow规则。

audit2allow -M MYPOLICY < /var/log/audit/audit.log

它将创建两个文件:

cat MYPOLICY.te

如果觉得MYPOLICY.te中的规则没问题,那么安装新生成的模块。

semodule -i MYPOLICY.pp

重启squid服务

成功安装SELINUX模块后。再次重启squid服务

/etc/init.d/squid restart
/etc/init.d/squid restart

现在问题解决了。