谢润:什么是selinux 为什么使用 SE Linux (enforce文件的说明)

来源:百度文库 编辑:九乡新闻网 时间:2024/04/29 01:29:33
(2009-02-12 12:18:41)转载
标签: 电脑
linux
上下文
security
selinux
安全
分类: linux
selinux 文档系统和 /proc 文档系统类似,都是虚拟的文档系统。因此有些安装程式需要您编辑/etc/fstab 文
件。 您能够用 ls -l /selinux 命令来显示。
total 0
-rw-rw-rw- 1 root root 0 Nov 25 11:27 access
-rw-rw-rw- 1 root root 0 Nov 25 11:27 context
-rw-rw-rw- 1 root root 0 Nov 25 11:27 create
-rw------- 1 root root 0 Nov 25 14:19 enforce
-rw------- 1 root root 0 Nov 25 11:27 load
-r--r--r-- 1 root root 0 Nov 25 11:27 policyvers
-rw-rw-rw- 1 root root 0 Nov 25 11:27 relabel
-rw-rw-rw- 1 root root 0 Nov 25 11:27 user
运行 cat 命令查看 "enforce"文档将会显示一个值,代表 SE Linux 当前的状态,1 代表
enforcing 状态, 0 代表 permissive 状态。
新的 SE Linux 使用了文档系统的扩展属性(Extended attributes)来存放安全上下文(security contexts)。您必须让您的内核支持这种扩展属性属性。 扩展属性是个 名称?数据 元组 (name-data tuple)-- 举个例子说,security.selinux 就是个属性的名称,安全上下文(security context)就是要存的数据。 当 SE Linux 正在运行时,您能够用 ls --context filename 命令来查看一个文档的安全上下文(我们将在后面进一步解释这个命令),无论 SELinux 是否打开,您都能够用 getfattr 命令查看文档系统的扩展属性。但是您要先装支持 attr 的软件包并且通过 getfattr 命令的 manpage 学会使用他。这个命令的运行方法是:
Getting Started with SE Linux HOWTO:the new SE Linux
faye@kaos:~$ getfattr -m . -d /etc/passwd
getfattr: Removing leading ’/’ from absolute path names
# file: etc/passwd
security.selinux="system_u:object_r:etc_t\000"
您所查看的文档的 security.selinux 属性中储存了此文档的安全上下文, 所以上面例子中的上下文就是 system_u:object_r:etc_t 。任何运行了 SE Linux 的 ext2/3 文档系统上都有security.selinux 这个属性(这个新特性的关键). 假如您引导了一个没有 SE Linux 的内核,您将仍然看到这个扩展属性. 当您用 make relabel 操作配置了文档的安全上下文期间,扩展
属性就被 setfiles 配置了。从 init 加载 SE Linux 策略打开了 SE Linux 的系统在引导时,init 进程既要挂载 /selinux 文档系统,并
在那之后载入 SE Linux 的策略。安全ID(SIDs) 和 父进程安全ID(PSIDs) 不再使用SIDs (安全ID) 在旧的 SE Linux 是用户进程的内核接口. PSIDs (父进程安全ID SIDs) 是内核映射(配置)磁盘上的文档的上下文的根据。请看NSA的 Configuring the SELinux Policy 获得更多的帮
助。 在新的SE Linux中, 扩展属性记录了安全上下文,所以SIDs和PSIDs 也就不必要了。
-Z 参数-Z 能够替代 --context 命令参数,比如 ls -Z 和 ps -Z.
用 chcon 命令替代了 chsid 命令chsid 命令在旧的 SE Linux 中用来配置文档的安全上下文。新的 SE Linux 中用 chcon 命令来配置。 chcon 在旧的 SE Linux 中已能够使用,但是在新的SE Linux 中的配置用户或类型方面得到了进一步改善。能够查看 manpage 获得更多的提示。
1.4. Fedora 用户的策略(Policy)源
代码目录介绍
在 Debian 中, 策略的源代码目录是/etc/selinux. 在 Fedora 中是/etc/security/selinux/src/policy。
在这份文档中我市参照 Debian 的源代码目录做的操作, 假如您是 Fedora 用户, 请用/etc/security/selinux/src/policy 替换。
为什么使用 SE Linux?
SE Linux 能够为您的系统提供较棒的安全防护。使用者能被分配预先定义好的角色,以便他们不能存取文档或访问他们不拥有的程式。这可不是简单的 " chmod 777" 同等物操作。这在角色, 或他所在的安全上下文已限制接触的文档和其他的资源的使用者定义中是不同于一般的 Unix 许可权限的,除了在一种比较受约束的流行之外。带一个用户的.rhosts 文档在一个一般的 Unix 系统上申请。假如他们使他成为任何人可写入 , 那么任何能登录的人都能够作危险的操作。 在 SE Linux 之下,您能控制其他用户是否有能力改变他们.rhosts文档, 连同阻止其他的人写入 , 就算拥有者已使他成为任何人可写
入。
一个通常的疑问是 SE Linux 的权限配置怎样和标准的 Unix 的权限配置共存。
当您做特定的操作的时候, Unix 权限首先被检查。 假如他们允许您的操作 ,
那么然后, SE Linux 将会检查并且允许或拒绝使用者的使用。 但是假如 Unix
许可不让您做某事,在那里的运行的操作被禁止和 SE Linux 检查没关系。
另外的一个例子是,假如有一个配置了 SUID 的可执行文档,如/usr/bin/passwd他能够运行命令 chmod 666 /etc/shadow,SE Linux 会阻止任何人非法的这样配置文档。