linux安全中阶教程之selinux(适合有一定水平的管理员)

上传人:xzh****18 文档编号:42062979 上传时间:2018-05-31 格式:DOCX 页数:9 大小:27.39KB
返回 下载 相关 举报
linux安全中阶教程之selinux(适合有一定水平的管理员)_第1页
第1页 / 共9页
linux安全中阶教程之selinux(适合有一定水平的管理员)_第2页
第2页 / 共9页
linux安全中阶教程之selinux(适合有一定水平的管理员)_第3页
第3页 / 共9页
linux安全中阶教程之selinux(适合有一定水平的管理员)_第4页
第4页 / 共9页
linux安全中阶教程之selinux(适合有一定水平的管理员)_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《linux安全中阶教程之selinux(适合有一定水平的管理员)》由会员分享,可在线阅读,更多相关《linux安全中阶教程之selinux(适合有一定水平的管理员)(9页珍藏版)》请在金锄头文库上搜索。

1、Linux 安全中阶教程之 SElinux(适合有一定水平的管理员)一:SElinux(安全增强 linux 简介)1:使用 SElinux 可以将进程放入在特定的 SElinux 域,同时赋予系统上的资源(如文件, 网络套接字,系统调用等)SElinux 上下文。装入 SElinux 的策略(通常作为系统启动过 程的一部分),然后决定哪个进程域可以访问哪些资源上下文。 2:在红帽企业版 linux 5 中,有关 SElinux 的选择有下面几种: (1) 我是否需要启用 SElinux (2) 一旦启用,我需要 SElinux 处于允许(permissive)还是强制(enforcing)状

2、态。 (3) 我需要在文件上赋予什么样的 SElinux 上下文。 3:在实际工作中,红帽企业版 linux 5 支持一种 SElinux 策略,叫目标策略(targeted). 这个策略在大多数应用之中。在目标策略之中,只有目标进程受到 SElinux 的影响。而其 他进程运行在非限制模式下。目标策略只影响常用的网络应用程序。受到限制的服务在 200 个以上,有增加的趋势。SElinux 限制的典型应用程序如下: (1)dhcp (2)httpd (3)mysqld (4)named (5)nscd (?) (6)ntpd(?) (7)portmap (8)postgres (?) (9)s

3、nmpd (?) (10)squid (11)syslogd 4:启用 SElinux/etc/sysconfig/selinux setenforce getenforce/etc/sysconfig/selinux (1) 强制(enforcing):任何违法 SElinux 的操作都被禁止。(2) 允许(permissive):任何违反 SElinux 的操作都会受到一个警告信息。但是行动可以继续。(3) 停用(disabled):不启用 SElinux 策略。Setenforce 和 getenforce 命令Setenforce 0/1 0 表示允许;1 表示强制Getenforce

4、 查看当前 SElinux 的状态。 5:查看 SElinux 上下文 使用命令 ps Z 和 ls Z 每个进程都属于个 SElinux 域; 每个文件都被赋予一个 SElinux 上下文。 相关的域和上下文可以使用 ls 和 ps 命令的命令选项 Z 来显示 进程 SElinux 域和 SElinux 上下文,具有以下格式: System_u:object_r:httpd_exec:s0 说明: 上面的字段以冒号作为分隔符, 第一个字段:用户 第二个字段:角色 第三个字段:类型 第四个字段:与 MLS,MCS 有关 说明: SEliunx 目标策略只于第三个字段有关,即类型字段(TYPE)

5、. 二:SElinux 介绍 SElinux 是美国国家安全局为 linux 系统设计的一项开放源码项目,主要是希望将其作为 系统的最后一道防线,来抵御黑客的攻击和入侵系统。 1 常见的读取控制1.1 DAC (Discretionary Access Control)”任意式读取控制”。在 DAC 的架构下,每个对 像都会记录一个拥有者的信息。只要是对象的拥有者,就可以获得该对象的完全控制权限。 DAC 允许拥有者完全权限。其他需要读取该对象时候,必须授予适当的权限。但是每个对象仅有一组拥有者的信息,如果需要更复杂的读取控制能力,必须使用 ACL。ACL 的全名是 “访问控制列表(Acces

6、s Control List)”.是 DAC 的延伸。在 ACL 环境下,你可以不同 的用户设置一组权限。如此一来,就可以对不同的用户设置不同的权限了。1.2 MAC (Mandatory Access Control)“强制性读取控制”.在 MAC 架构下,会为每一个对象 添置一个安全的上下文(Security Context).进程和用户除了具备传统的的权限之外,还 必须获得 SElinux 的授权,方能读取对象。1.2.1 RBACRBAC 全称是“角色基础读取控制”(Role-based Access Control),在此架构下,是以用 户所属的角色进行读取权限判定的动作的。如:老板

7、的可以读取哪些对象,经理可以读取 哪些对象。等1.2.2 MLSMLS 全名是“多层次安全”(Mulit-Level Security),在此架构下,是以对象的机密等级 来决定进程对该物的读取权限的。 2:SElinuxSElinux 是一个在内核中执行,提供 MAC 能力的子系统,以弥补传统的 DAC 架构的不足。 SElinux 子系统以“类型强制性”读取控制机制为主,并融合 RBAC,MLS 与 MCS 3 种 MAC 读取控制机制的特性。2.1 什么是类型强制性的读取控制机制?在 SElinux 世界里,定义了许多的类型(TYPE).每一个进程,文件,设备,网络连线等, 都必须标示其所

8、属的类型。进程仅能读取相同类型的文件,如果非相关的类型,且 SEliunx 不允许读取时,则无法读取。这就是类型强制性的读取控制机制。 警告:SElinux 的类型读取控制是在传统的 DAC 权限之后进行的。换言之,就是说在取得 了 DAC 权限之后,再由 SElinux 来进行类型的强制性控制了。 3:SElinux 的术语3.1 对象在 SElinux 里,所有可被读取的的皆为对象。3.2 主体在 SElinux 里,把进程理解为主体3.3 类型 SElinux 允许你为系统中的每一个主体或对象定义一个类型。 3.4 领域3.5 用户SElinux 通过用户代表一些账号的识别数据。 3.6

9、 角色角色用来代表某一些用户或对象的组合。 3.7 安全策略SElinux 目前有三个安全策略:targeted,strict,mls 3 个安全策略,每一个安全策略的功 能,用途和定位不同的。3.7.1 targeted: 用来保护常见的网络服务 #默认的 redhat enterprise linux 会自动安装。3.7.2 strict: 用来提供符合 RBAC 机制的安全性能3.7.3 mls: 用来提供符合 MLS 机制的安全性。 注意:本文档主要讲解安全策略 targeted. 3.8 安全上下文SElinux 系统中的每一个进程与对象都会记录一条安全上下文。 4:SElinux

10、软件包 5:初始化 SElinux 程序 6:切换 SElinux 状态6.1 查看 SElinux 的状态命令:sestatus -v 7:停用和启用 SElinux7.1 通过内核启动参数 如:kernel/vmlinuz. ro root=LABEL=/ rhgb quiet selinux=N(0/1)0 表示停用1 表示启用7.2 通过 SElinux 配置文件/etc/sysconfig/selinux 连接文件/etc/selinux/config 源文件7.3 手动启用或停用 SElinux三:管理安全上下文 RED HAT ENTERPRISE LINUX 的每一个对象都会存

11、储其安全上下文。并将其作为 SElinux 判 断进程能否读取的依据。 1:SElinux 的安全上下文的格式:USER:ROLE:TYPE:LEVEL:CATEGORY 1.1 USER 用户字段 这个字段用来记录用户登录系统后所属的 SElinux 的身份的。 USER 通常以 _u 为后缀,常见的如下:System_u 系统账号类型的使用者User_u 真实用户类型的使用者Root超级用户的使用者说明:targeted 安全策略并未支持 USER 字段1.2 ROLE 角色字段ROLE 通常以 _r 为后缀 说明:targeted 安全策略并未支持 ROLE 字段1.3 TYPE 字段T

12、YPE 类型字段通常以 _t 为后缀的。这个字段是 SElinux 安全上下文中最常用也是最重要 的字段。常见的 TYPE 字段如下: 下列表格列举了常见的 TYPE 字段项目说明Unconfiged_未设置类别Default_t默认类别Mnt_t代表挂载点的类型,/mnt/中的文件属于这个类别Boot_t作为开机文件的类型,/boot/中文件属于这个类别Bin_t作为二进制执行文件,/bin 中多数属于这个类别Sbin_t作为系统管理类型的文件,/sbin 中属于这个类别Device_t代表设备文件. /dev 下属于这个类别Lib_t连接库类型/lib 下属于这个类别Var_tUsr_tE

13、tc_t.Tty_device_t代表终端机或控制台设备Su_exec_t具备 SU 功能的执行文件Java_exec_tJAVA 相关的执行文件Public_content_t公共内容类型的文件。如:FTP,NFS 等服务器文件Shadow_t代表存储密码文件的类型Httpd_t作为 HTTP 文件的相关类别1.4 LEVEL(层次) 和 CATEGORY(分类)字段(略过) 2:安全上下文的默认值 RED HAT LINUX 系统如何产生每一个对象的安全上下文?从进程和文件两方面加以分析:2.1进程默认安全上下文子进程继承父进程的安全上下文,除外子进程修改了自己的安全上下文。2.2 文件默

14、认的安全上下文2.2.1 安装 RPM 包说产生的文件因为 RPM 包里面就记录了每一个文件的安全上下文的数据,所以在安装 RPM 包的时候,RPM 工具就会自动配置安装包里面的文件的上下文到系统目录里面。2.2.2 手动建立的新文件在什么目录下建立新文件,就沿用什么目录的安全上下文。 3:查看文件和进程的安全上下文使用命令:id Z (查看账号的);ls Z (查看文件的);ps Z (查看进程的)。4:修改安全上下文修改对象(文件)的安全上下文,使用命令:chcon 命令格式:Chcon OPTIONS CONTEXT FILES.Chcon OPTIONS reference=PEF_F

15、ILES FILES 说明:CONTEXT 为要设置的安全上下文FILES 对象(文件)-reference 参照的对象PEF_FILES 参照文件上下文FILES应用参照文件上下文为我的上下文。OPTIONS 如下:-f强迫执行-R 递归地修改对象的安全上下文-r ROLE 修改安全上下文角色的配置-t TYPE 修改安全上下文类型的配置-u USER 修改安全上下文用户的配置-v 显示冗长的信息 5:修复安全上下文5.1 5.1.1 先使用命令 matchpathcon 找出对象的安全上下文,然后再使用命令 chcon 命令修改对象 的安全上下文。5.1.2 使用命令 fixfiles 工

16、具仅修复 RPM 包里的对象的安全上下文使用工具 fixfiles 来修复 RPM 包文件的安全上下文。命令格式:fixfiles -R PACKAGES check|restore参数说明:-R PACKEAGES 指定仅修复 PACKAGES 软件包;如果没有指定这个参数,表示修复所有的软件包Check仅检查指定的软件包中错误的安全上下文Restore 除了检查之外,还修复错误的安全上下文命令使用:Fixfiles -R sedmail check #检测 sendmail 错误的上下文Fixfiles -R sedmail restore #修复 sendmail 错误的上下文5.1.3 使用 restorecon 还原文件的上下文说明:非 RPM 包的文件安全上下文修复。(5.1.1 也可)命令格式:restorecon OPTIONS FILES 6:重新生产安全上下文只需两步:6.1 建立空文件 /.autorelabel6.2 重新启动系统即可

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号