曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 5115|回复: 0
打印 上一主题 下一主题

[SELinux] SELinux 简介

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2013-6-17 17:39:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SELinux (Security-Enhanced Linux, 安全增强型 Linux) 是 Linux 的一种安全增强机制,并使用 LSM ( Linux Security Modules )集成到内核之中。它是美国国家安全局(NSA)与 SELinux 社区共同开发的一个项目。在 RHEL/CentOS 中默认安装有 SELinux 。

SELinux 将一种灵活的 MAC(Mandatory Access Control,委托访问控制)机制集成到内核中。在标准的 Linux 里,使用的是 DAC (Discretionary Access Control,自由存储控制)机制,当一个应用程序或进程以某个用户(UID 或 SUID)来运行的话,那该进程就有了该用户操作对象(object,如普通文件,sockets 及其它进程)的相应权限。一个运行了 MAC 机制的内核可以更好的保护系统不受到恶意的或有设计缺陷的程序所损害。

在日常的应用中,系统中的普通用户基本不会察觉到 SELinux 的存在。只有系统管理员才需要考虑如何为服务器环境制定严格的安全策略。安全策略根据需要,可以指定得严格些,也可以相对宽松,制定严谨详尽的策略往往会有些复杂,但正是这些详尽的策略使得 SELinux 内核可以完整的,精细粒度地控制整个系统。

当一个 subject (如一个应用程序) 试图访问一个对象(object,如一个文件)时,策略会检查 AVC(access vector cache,访问矢量缓存),其中缓存了 subject 和 object 的相关权限。如果在 AVC 中无法获取相应的权限关系,那么就会到安全服务器上查询该文件及应用程序的安全文本(security context,SELinux 的重要组成部分),然后再决定该访问是允许还是被拒绝,若是拒绝,那么就会在 /var/log/message 中记录一条 avc: denied 的信息。subject 与 object 的安全文本来自已安装的策略之中。上面描述的情况可以参考下图:



SELinux 操作模式
SELinux 有 3 个操作模式,可参考:http://www.groad.net/bbs/read.php?tid-7834.html

SELinux 伪文件系统(Pseudo-File System)
位于根目录下的 /selinux/ 是一个伪文件系统,类似于 /proc/ ,它里面包含了内核子系统常用的命令,管理员和普通用户通常不需要对其中的内容进行操作:
-rw-rw-rw-.  1 root root    0 Jun 13 18:45 access
dr-xr-xr-x.  2 root root    0 Jun 13 18:45 avc
dr-xr-xr-x.  2 root root    0 Jun 13 18:45 booleans
-rw-r--r--.  1 root root    0 Jun 13 18:45 checkreqprot
dr-xr-xr-x. 83 root root    0 Jun 13 18:45 class
--w-------.  1 root root    0 Jun 13 18:45 commit_pending_bools
-rw-rw-rw-.  1 root root    0 Jun 13 18:45 context
-rw-rw-rw-.  1 root root    0 Jun 13 18:45 create
-r--r--r--.  1 root root    0 Jun 13 18:45 deny_unknown
--w-------.  1 root root    0 Jun 13 18:45 disable
-rw-r--r--.  1 root root    0 Jun 13 18:45 enforce
例如,可以用 cat 命令来查看强制文件(enforce file)的布尔值,为 1 时表示处于强制执行模式(enforcing),为 0 时表示处于 permissive 模式。

SELinux 配置文件
SELinux 的配置文件为 /etc/sysconfig/selinux 。该文件是主配置文件,可以配置它来使能或禁止 SELinux :
# cat /etc/sysconfig/selinux

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted
SELINUX 用来设置 3 种模式。
SELINUXTYPE 用来指定 SELinux 应该实施哪种策略。一般情况下是实施 targeted (针对性)策略,它只针对某些特定的网络守护进程进行保护。下面的几个被保护的守护进程默认使用 targeted 策略:
dhcpd, httpd (apache.te), named, nscd, ntpd, portmap, snmpd, squid, and syslogd
其它的则运行在 unconfined_t 域中。如果安全文本中标以该域标识,那么就让 subject 和 object 以标准的 Linux 安全机制进行操作,即 DAC 模式。


另外,图形化管理工具为 system-config-selinux

它是众多 SELinux 命令行工具的一个集合。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-6 21:39 , Processed in 0.073343 second(s), 23 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表