SELINUX详解

产生的原因
传统的档案权限(DAC)容易因为权限过高导致误用或被入侵者利用
所以产生可MAC权限,MAC针对控制的主体是进程而不再是文件
而SELlinux提供一些预设的策略。并在该策略中提供多种规则,让你选择是否启用。

SELinux 的运作
主体 (Subject):进程
目标 (Object):文件
模式政策 (Policy):
  • targeted:针对网络服务限制较多,针对本机限制较少,是预设的政策;
  •  strict:完整的SELinux 限制,限制方面较为严格。
建议使用预设的 targeted 政策即可。

安全性文本文 (Security Context)
安全性本文可使用『 ls -Z 』去观察如下
如上所示,安全性本文主要用冒号分为三个字段,这三个字段的意义为:
Identify:role:type
身份识别:角色:类型
身份识别 (Identify)
  • root:表示 root 的账号身份,如同上面的表格显示的是 root 家目录下癿数据啊!
  • system_u:表示系统程序方面的识别,通常就是程序啰;
  • user_u:代表的是一般使用者账号相关的身份。
角色 (Role):透过角色字段,我们可以知道这个数据是属于程序、档案资源还是代表使用者。一般的角色有:
  • object_r:代表的是档案戒目录等档案资源
  •   system_r:代表的是程序,不过,一般使用者也会被指定成为 system_r 喔!
类型 (Type) :(最重要!) 基本上,一个主体程序能不能读取到这个档案资源,不类型字段有关!而类型字段 在档案不程序的定义不太相同,分别是:
  •   type:在档案资源 (Object) 上面称为类型 (Type);
  •  domain:在主体程序 (Subject) 则称为领域 (domain) 了!
domain 需要与 type 搭配,则该程序才能够顺利地读取档案资源啦!



目前 SELinux 支持三种模式,分别如下:
  • enforcing(强制模式):已经正确地开始限制 domain/type 了;
  • permissive(宽容模式):仅会有警告讯息幵不会实际限制
  • disabled(关闭):SELinux 幵没有实际运作

查看当前SELinux模式
[root@www ~]# getenforce
Permissive

列出目前的 SELinux 使用哪个政策 (Policy)?
[root@www ~]# sestatus
SELinux status: enabled <==是否启动 SELinux
SELinuxfs mount: /selinux <==SELinux 的相关档案数据挂载点
Current mode: enforcing <==目前的模式
Mode from config file: enforcing <==配置文件指定癿模式
Policy version: 21
Policy from config file: targeted <==目前的政策为何

切换当前SELinux模式(只在当前有效
[root@www ~]# setenforce [0|1]
选顷不参数:
0 :转成 permissive 宽容模式;
1 :转成 Enforcing 强制模式

修改SELinux的配置文件
[root@www ~]# vi /etc/selinux/config
SELINUX=enforcing <==调整 enforcing|disabled|permissive
SELINUXTYPE=targeted <==目前仅有 targeted 不 strict
注:改变了政策则需要重新启动才有效,关闭或开启SELinux只能在这改,改了没反应,可以查看/boot/grub/menu.lst文件 kernel 后面是否有接『 selinux=0 』

重设SELinux安全性文本
[root@www ~]# chcon [-R] [-t type] [-u user] [-r role] 档案
[root@www ~]# chcon [-R] --reference=范例文件 档案
选项与参数:
-R :连同该目录下的次目录也同时修改;
-t :后面接安全性本文癿类型字段!例如 httpd_sys_content_t ;
-u :后面接身份识别,例如 system_u;
-r :后面接角色,例如 system_r;
--reference=范例文件:拿某个档案当范例来修改后续接的档案的类型!
范例:
[root@www ~]# chcon -t httpd_sys_content_t /var/www/html/index.html
[root@www ~]# ll -Z /var/www/html/index.html
-rw-r--r-- root root root:object_r:httpd_sys_content_t
/var/www/html/index.html

预设的安全性本文改正回来
[root@www ~]# restorecon -Rv /var/www/html/index.html    
restorecon reset /var/www/html/index.html context
system_u:object_r:etc_t:s0->
system_u:object_r:httpd_sys_content_t:s0
-v :将过程显示到屏幕上

查看错误的工具
setroubleshoot --> 错诨讯息写入 /var/log/messages
auditd --> 详绅资料写入 /var/log/audit/audit.log


[root@www ~]# seinfo [-Atrub]
选选和参数:
-A :列出 SELinux 癿状态、规则布尔值、身份识别、角色、类别等所有信息
-t :列出 SELinux 的所有类别 (type) 种类
-r :列出 SELinux 的所有角色 (role) 种类
-u :列出 SELinux 的所有身份识别 (user) 种类
-b :列出所有规则的种类 (布尔值)
范例:列出不 httpd 有关的规则 (booleans) 有哪些?
[root@www ~]# seinfo -b | grep httpd
Rule loading disabled
allow_httpd_mod_auth_pam
allow_httpd_bugzilla_script_anon_write
httpd_enable_ftp_server
....(底下省略)....

布尔值的查询和修改
查询本系统内所有癿布尔值讴定状冴
[root@www~]#getsebool -a
[root@www ~]# setsebool [-P] 布尔值=[0|1]
选选和参数:
-P :直接将设定值写入配置文件,该设定数据未来会生效

默认目录的安全性本文查询与修改
[root@www ~]# semanage {login|user|port|interface|fcontext|translation}
-l
[root@www ~]# semanage fcontext -{a|d|m} [-frst] file_spec
选顷不参数:
fcontext :主要用在安全忢本文方面癿用途, -l 为查询的意忠;
-a :增加的意思,你可以增加一些目录的默认安全性本文类型讴定;
-m :修改的意思;
-d :删除的意思。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31386161/viewspace-2129580/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31386161/viewspace-2129580/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值