SELinux导致磁盘IO问题
昨天长春机房新上一台服务器晚上就挂了一次,早上重启后一查系统盘的%util占用100%.怎么也下不去,把所有应用程序全停了,还是不行,一查才知是SELinux若得祸.SELinux 是从FC3和AS4起,所提供的一个高级安全特性,也是Linux安全特性上的一次突破.
它可以对系统上运行的任何一个应用程序做权限上的控制。
SELinux默认开启.长春的这台服务器安装时启用了SELinux才导致%util占用过高.
我们解决办法比较容易,修改/etc/selinux/config 置SELINUX=disabled 重启系统即可.
一旦启用SELinux,系统中大部分服务的启用若没在SELinux策略中定义..SELinux则拒绝此服务正常应用..SELinux把所有的拒绝信息输出到:/var/log/messages..若外界不停的访问系统中的某应用服务,而SELinux不停的拒绝,同时输出拒绝信息.当访问量到达一定程度.SELinux写操作就会导致%util占用过高.
所以如果某个服务比如bind不能正常启动,可以查询messages文件来确认是否是SELinux造成服务不能运行。这些信息可以很简单的使用/usr/bin/audit2allow来更改规则.
运行如下命令,就可以看出哪些程序的访问被SELinux拦截掉:#cat /var/log/messages | /usr/bin/audit2allow
只能把被拒绝的访问加入到SELinux的配置文件中才能解决些类安全特性的限制.SELinux的配置文件目录:/etc/selinux/targeted/src/policy/domains/program
SELinux的配置相关文件都在/etc/selinux下,其中/etc/selinux/targeted目录里就包含了策略的详细配置和context定义,以下是主要文件及功用:
/etc/selinux/targeted/contexts/*_context 默认的context设置
/etc/selinux/targeted/contexts/files/* 精确的context类型划分
/etc/selinux/targeted/policy/* 策略文件
最后完成配置使其生效使用如下命令重新加载SELinux:make -C /etc/selinux/targeted/src/policy reload
setenforce 0 关闭SELinux不重启系统
现实工作中对SELinux的应用很少,所以在这不详细介绍.待日后涉及到SELinux再作补充.
作者:HuaYing