【信息安全】SELinux

    SELinux 是安全增强了的Linux,是Security-enhanced Linux 的简写,SELinux 使用了分级的强制访问控制,是Linux 内核的重要安全措施;SELinux 改进了对内核对象和服务的访问控制,改进了对进程初始化、继承和程序执行的访问控制,改进了对文件系统、目录、文件和打开文件描述的访问控制,还改进了对端口、信息和网络接口的访问控制。

1. SELinux 的强制访问控制机制(MAC

SELinux 在内核中使用强制访问控制机制(MAC)检查允许的操作。SELinux MAC 访问控制框架中定义,所有的主体(进程)对系统的客体或目标对象(如:文件、设备、socket、端口等)进行操作,需要权限或许可。

2. SELinux 安全上下文

SELinux 中,访问控制属性叫做安全上下文。所有客体(文件、进程间通讯通道、套接字、网络主机等)和主体(进程)都有与其关联的安全上下文,一个安全上下文由三部分组成:用户、角色和类型标识符。这里的类型标识符被用于强制访问控制规则的设置。

主客体的安全上下文的定义

SELinux 中,需要对主客体的安全上下文进行定义,不同类型的主客体定义的方式也不同。对于有唯一且永久的节点号的传统文件系统,SELinux 用永久的标识映射,通过fs_use_psid 命令来指定文件系统内的节点的安全上下文和文件系统本身的安全上下文。

#fs_use_psid ext2

#fs_use_psid ext3

#fs_use_psid reiserfs

对于不支持永久标识映射的文件系统,用genfscon 命令来指定文件系统或文件路径或文件的安全上下文。

#genfscon proc / system_u:object_r:proc_t

#genfscon proc /kmsg system_u:object_r;proc_kmsg-t

#genfscon /kcore system_u:object-r:proc_kcore_t

对于代表管道和socket 对象的伪文件系统,SE Linux 常指定创建进程的上下文给代表对象的节点。

这个行为用fs_use_task 来声明。

#fs_use_task pipefs system_u:object_r:fs_t

#fs_use_task sockfs system:object_r:fs_t

查看安全上下文

SELinux 系统中通过添加一个-Z 选项显示主体和客体的安全上下文:

ps -Z 显示进程(主体)的安全上下文

ls -Z 显示文件(客体)的安全上下文

3 SELinux 中的类型强制(TE:Type Enforcement

SELinux 中,不管用户UID 或者GID 是什么,所有访问都必须明确授权,SELinux 默认不允许任何访问。这就意味着在SELinux 中,没有默认的超级用户了,任何访问需要通过指定主体类型和客体类型,使用allow 规则来授予访问权限,allow 规则由四部分组成:

源类型(Source type(s) ) 通常是尝试访问的进程的域类型

目标类型(Target type(s) ) 被进程访问的客体的类型

客体类别(Object class(es)) 指定允许访问的客体的类型

许可(Permission(s)) 象征目标类型允许源类型访问客体类型的访问种类

语法格式如下:

allow Source type Target type Object class { Permission }

强制访问控制配置示例

假设我们允许进程(主体)passwd 命令可以读和执行/etc/shadow 文件,那么首先,需要知道主体和客体的类型。

查看主体的类型

# ps -aZ

joe:user_r:passwd_t 16532 pts/0 00:00:00 passwd

//从安全上下文的类型标识符中可以看到主体类型是passwd_t

查看客体文件的类型

#ls -Z /etc/shadow

-r---- root root system_u:object_r:shadow_t shadow

//从安全上下文的类型标识符中可以看到客体类型是shadow_t

根据主客体的类型配置访问规则

#allow passwd_t shadow_t : file {read execute getattr}

//拥有域类型passwd_t 的进程(主体)可以读/执行具有shadow_t 类型的文件(客体),可以获取具有shadow_t 类型的客体文件的属性

4. SELinux 中的多层安全MLS

类型强制(TE)无疑是SELinux 引入的最重要的强制访问控制(MAC)机制,然而,在某些情况下,对于保密控制应用程序的一个子集,传统的多层安全(MLSMAC 与类型强制(TE)一起使用显得更有价值,在这些情况下,SELinux MLS 特性是可选的,作为SELinux 的两个MAC 机制中的一个,它通常不是最重要的那个,对大多数安全应用程序而言,包括许多非保密数据应用程序,类型强制是最适合的安全增强的机制,对于一些涉密的数据,MLS 相比于TE 对应用程序还是增强了更多的安全性。

---------------------------------
kingsql分享
hongzhuohui@kingsql.com
转载请注明出处

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

转载于:http://blog.itpub.net/28389881/viewspace-1266656/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值