SELinux 的启动、关闭与观察

来源:互联网 发布:淘宝充值店怎么开 编辑:程序博客网 时间:2024/04/29 09:33
目前 SELinux 支持三种模式,分别如下:
  • enforcing:强制模式,代表 SELinux 运行中,且已经正确的开始限制 domain/type 了;
  • permissive:宽容模式:代表 SELinux 运行中,不过仅会有警告信息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;
  • disabled:关闭,SELinux 并没有实际运行。

那你怎么知道目前的 SELinux 模式呢?就透过 getenforce 吧!

[root@www ~]# getenforceEnforcing  <==诺!就显示出目前的模式为 Enforcing 罗!

另外,我们又如何知道 SELinux 的政策 (Policy) 为何呢?这时可以使用 sestatus 来观察:

[root@www ~]# sestatus [-vb]选项与参数:-v  :检查列於 /etc/sestatus.conf 内的文件与程序的安全性本文内容;-b  :将目前政策的守则布林值列出,亦即某些守则 (rule) 是否要启动 (0/1) 之意;范例一:列出目前的 SELinux 使用哪个政策 (Policy)?[root@www ~]# sestatusSELinux status:                 enabled    <==是否启动 SELinuxSELinuxfs mount:                /selinux   <==SELinux 的相关文件数据挂载点Current mode:                   enforcing  <==目前的模式Mode from config file:          enforcing  <==配置档指定的模式Policy version:                 21Policy from config file:        targeted   <==目前的政策为何?

如上所示,目前是启动的,而且是 Enforcing 模式,而由配置档查询得知亦为 Enforcing 模式。此外,目前的默认政策为 targeted 这一个。你应该要有疑问的是,SELinux 的配置档是哪个文件啊?其实就是 /etc/selinux/config 这个文件喔!我们来看看内容:

[root@www ~]# vi /etc/selinux/configSELINUX=enforcing     <==调整 enforcing|disabled|permissiveSELINUXTYPE=targeted  <==目前仅有 targeted 与 strict
  • SELinux 的启动与关闭

上面是默认的政策与启动的模式!你要注意的是,如果改变了政策则需要重新启动;如果由 enforcing 或 permissive改成 disabled ,或由 disabled 改成其他两个,那也必须要重新启动。这是因为 SELinux 是整合到核心里面去的,你只可以在 SELinux 运行下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!同时,由 SELinux 关闭 (disable) 的状态到开启的状态也需要重新启动啦!所以,如果刚刚你发现 getenforce 出现 disabled 时,请到上述文件修改成为 enforcing 吧!

所以,如果你要启动 SELinux 的话,请将上述的 SELINUX=enforcing 配置妥当,并且指定 SELINUXTYPE=targeted 这一个配置,并且到 /boot/grub/menu.lst 这个文件去,看看核心有无关闭 SELinux 了呢?

[root@www ~]# vi /boot/grub/menu.lstdefault=0timeout=5splashimage=(hd0,0)/grub/splash.xpm.gzhiddenmenutitle CentOS (2.6.18-92.el5)        root (hd0,0)        kernel /vmlinuz-2.6.18-92.el5 ro root=LABEL=/1 rhgb quiet selinux=0        initrd /initrd-2.6.18-92.el5.img# 如果要启动 SELinux ,则不可以出现 selinux=0 的字样在 kernel 后面!

请注意到上面特殊字体的那一行,确认 kernel 后面不可以接『 selinux=0 』这个项目!因为 selinux=0 指定给核心时,则核心会自动的忽略 /etc/selinux/config 的配置值,而直接略过 SELinux 的加载,所以你的 SELinux 模式就会变成 disabled 啦!因为我们要启动,所以这里得要确认不存在 selinux=0 才行!切记切记!如果一切配置妥当,接下来就是 reboot 重新启动吧!

如果你已经在 Enforcing 的模式,但是可能由於一些配置的问题导致 SELinux 让某些服务无法正常的运行,此时你可以将 Enforcing 的模式改为宽容 (permissive) 的模式,让 SELinux 只会警告无法顺利连线的信息,而不是直接抵挡主体程序的读取权限。让 SELinux 模式在 enforcing 与 permissive 之间切换的方法为:

[root@www ~]# setenforce [0|1]选项与参数:0 :转成 permissive 宽容模式;1 :转成 Enforcing 强制模式范例一:将 SELinux 在 Enforcing 与 permissive 之间切换与观察[root@www ~]# setenforce 0[root@www ~]# getenforcePermissive[root@www ~]# setenforce 1[root@www ~]# getenforceEnforcing

0 0
原创粉丝点击