《selinux管理及应用.ppt》由会员分享,可在线阅读,更多相关《selinux管理及应用.ppt(24页珍藏版)》请在三一办公上搜索。
1、ChinaUNIX沙龙SELinux管理及应用,尹剑鹏,主 题 大 纲,1、SELinux简介2、SELinux特点3、SELinux配置文件小解4、Security context安全上下文5、SELinux运行机制6、SELinux的一些命令7、实例讲解(vsftp、samba、http),说 明,本内容参考了网上搜索到的多个技术文档,主要有:Kenduest Lee的SELinux管理配置林彦明的Enterprise Linux实战之RHEL4的安全新机制-Security Enhanced Linux系统平台:Redhat Enterprise Linux 5 U3,1、SELinux
2、 简介,SELinux全称Security Enhanced Linux,由美国国家安全局(National Security Agency)开发,构建于kernel之上的、拥有灵活而强制性的访问控制结构,旨在提高Linux系统的安全性,提供强健的安全保证,可防御未知攻击,据称相当于B1级的军事安全性能;已经被整合到2.6kernel中;传统Linux在没有SELinux保护的时候,倘若运行于之上的服务被骇客攻陷,其服务器最高权限就有可能随之丧失;但是倘若有了SELinux的保护,入侵的也只是服务本身,整个服务器的最高权限依旧还健在;,附注:计算机安全级别,D级别是最低的安全级别,对系统提供最
3、小的安全防护。系统的访问控制没有限制,无需登陆系统就可以访问数据,该级别系统包括DOS,Win98等;C1级称为选择性保护级,可以实现自主安全防护,对用户和数据的分离,保护或限制用户权限的传播;C2级具有访问控制环境的权力,比C1的访问控制划分的更为详细,能够实现受控安全保护、个人帐户管理、审计和资源隔离。该级别系统包括UNIX、Linux和WindowsNT系统;B1级称为标识安全保护;B2级称为结构保护级别,要求访问控制的所有对象都有安全标签以实现低级别的用户不能访问敏感信息,对于设备、端口等也应标注安全级别;B3级别称为安全域保护级别,这个级别使用安装硬件的方式来加强域的安全,比如用内存
4、管理硬件来防止无授权访问;A级别称为验证设计级,是目前最高的安全级别,在A级别中,安全的设计必须给出形式化设计说明和验证,需要有严格的数学推导过程,同时应该包含秘密信道和可信分布的分析,也就是说要保证系统的部件来源有安全保证。,(2),普通Linux和传统UNIX系统一样,是基于自主存取控制的,即DAC;只要符合规定的权限,就可存取资源;此时,一些具有SUID/SGID权限的程序就存在严重安全隐患,甚至因为管理员的错误配置就可引发巨大的漏洞,被轻易取得最高权限;SELinux是基于强制存取控制的,即MAC,通过强制性的安全策略,应用程序或用户必须同时符合DAC及对应SELinux的MAC才能进
5、行正常操作,否则都将遭到拒绝或失败,而这些问题将不会影响其他正常运作的程序和应用,并保持它们的安全系统结构。,2、SELinux特点,1、MAC(Mandatory Access Control)-对访问的控制彻底化,对所有的文件、目录、端口的访问,都是基于策略设定的。这些策略是由管理员设定的、一般用户是无权更改的;2、RBAC(Role Base Access Control)-对于用户只赋予最小权限。对于用户来说,被划分成一些role,即使是root用户,你要是不在sysadm_r里,也还是不能实行sysadm_t管理操作的。因为,哪些role可以执行哪些domain也是在策略里设定的。r
6、ole也是可以迁移的,但是只能按策略规定的迁移;,(2),3、TE(Type Enforcement)-对进程只赋予最小运行权限,TE概念在 SELinux中非常重要;其特点是对文件赋予一个叫type的文件类型标签,对于进程赋予一个叫 domain的 标签;Domain标签能够执行的操作也是由access vector(存取矢量)在策略里设定好的;4、domain迁移-防止权限升级,A程序在A Domain内运行,B程序在B Domain内运行,在A Domain中执行B程序时,可以规范B程序使用A Domain的环境还是使用B Domain的环境。,3、SELinux配置文件小解,(2)SE
7、Linux的执行模式,enforcing强制模式,只要SELinux不允许,就无法执行;permissive警告模式,将该事件记录,依然允许执行;disabled关闭SELinux;停用、启用需要重启计算机;使用setenforce切换enforcing与permissive模式不需要重启计算机;getenforce及sestatus查看执行模式;,(3)SELinux的安全规则(policy),targeted,保护常见的网络服务,为SELinux默认值;strict,提供符合Role-based-Access Control(RBAC)之policy,具备完整的保护功能,保护网络服务、一般
8、指令及应用程序;改变policy后,需要重启计算机;用SELinux Boolean增加policy的弹性;,4、Security context,Security context,安全上下文;系统根据PAM子系统中的pam_selinux.so模块设定登录者运行程序的安全上下文;文件,rpm包安装的会根据rpm包内记录来生成安全上下文;如果是手动创建的,会根据policy中规定的来设置安全上下文;如果是cp,是重新生成安全上下文;如果是mv,安全上下文则不变。,(2),id Z 检查账号的安全上下文;ps Z检查进程的安全上下文;ls Z 检查文件、目录的安全上下文;,(3),1、/usr/
9、include/sepol/policydb/context.h73 static inline int context_cpy(context_struct_t*dst,context_struct_t*src)74 75 dst-user=src-user;76 dst-role=src-role;77 dst-type=src-type;78 return mls_context_cpy(dst,src);79 2、格式:user:role:type,(4.1、user),user identity:类似Linux系统中的UID,提供身份识别;安全上下文的一部分;三种常见的 users:
10、user_u-普通用户登录系统后的预设;system_u-开机过程中系统进程的预设;root-root 登录后的预设;在 targeted policy 中 users 不是很重要;在strict policy 中比较重要,所有预设的 SELinux Users 都是以“_u”结尾的,root 除外。,(4.2、role),文件/目录的role,通常是 object_r;程序的role,通常是 system_r;用户的role,targeted policy为system_r;strict policy为sysadm_r、staff_r、user_r;用户的role,类似系统中的GID,不同角
11、色具备不同的的权限;用户可以具备多个role;但是同一时间内只能使用一个role;roles 是 RBAC(Roles Based Access Control)的基础;,(4.3、type),type:用来将主体和客体划分为不同的组,给每个主体和系统中的客体定义了一个类型;为进程运行提供最低的权限环境;当一个类型与执行中的进程相关联时,其type也称为domain;SElinux security context 中最重要的部位,是 SELinux Type Enforcement 的心脏,预设值以_t结尾;,5、SELinux的运行机制,(2),系统中每个文件、目录、网络端口等都被指定一个
12、安全上下文,policy 则给出各安全上下文之间的作用规则。SELinux根据policy及security context规则来决定行为是否可存取;Subject:系统进程,比如/usr/sbin/httpd;Object:被存取的项目,比如File、Directory、IP、Socket等;,6、SELinux的一些命令,1、sestatus 查询SELinux的状态2、selinuxenabled 检查SELinux是否处于激活状态;echo$?返回0说明处于激动状态,反之返 回-256;3、setenforce enforcing|permissive|1|0 enforcing与1,表示开启强制模式;permissive与0,表示开启警告模式;,(2),4、getsebool getsebool a与sestatus b5、setsebool 参数-P,永久性设置;,(3),6、chcon 修改文件、目录的安全上下文 chcon uuser chcon rrole chcon ttype chcon R 递归,7、实例讲解,RHEL5.3,yum安装vsftpdsambahttp,谢 谢,