Linux服务器构建与运维管理 算7章:系筑安全 系统安全 组此置理 A 检测工 安全审计工具:Nmap 入侵检测工具: sno, last、 Lastb、 Lapdog、 history 1系统安全 Linux是一个开放操作系统,许多程序或工具可对Lnux操作系统进行 Linux目前存在如下安全隐患,例如: 操作系统进行文件操作时可大致分为读、写和执行三种 能会板任意修改 在Liu中,许多重要文件(如/ minoan)如果被修改,就可随意侵入系统 内存等资源未能重置或清空,入侵者可能通过 资原获取信息。选成信泄落。 要进程不受保护, Linux中有些重雯进程(如vEB服务守护进程)没 有得到操作系统的严格保护,容易受到啵坏
1 Linux服务器构建与运维管理 第7章:系统安全 1 阮晓龙 13938213680 / rxl@hactcm.edu.cn http://linux.xg.hactcm.edu.cn http://www.51xueweb.cn 河南中医药大学信息管理与信息系统教研室 信息技术学院网络与信息系统科研工作室 2019.1 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 提纲 系统安全 SELinux SELinux框架 SELinux文件 SELinux配置管理 防火墙 Linux防火墙 iptables 系统安全检测工具 安全审计工具:Nmap 入侵检测工具:snort、last、lastb、lastlog、history 2 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.系统安全 3 1.1目前存在的安全隐患 Linux是一个开放操作系统,许多程序或工具可对Linux操作系统进行 管理,也使得攻击Linux更容易。 Linux目前存在如下安全隐患,例如: 操作系统进行文件操作时可大致分为读、写和执行三种。 一些系统文件一旦可写,就可能会被任意修改。 在Linux中,许多重要文件(如/bin/login)如果被修改,就可随意侵入系统。 进程终止后其运行时使用的内存等资源未能重置或清空,入侵者可能通过 未重置或清空资源获取信息,造成信息泄露。 重要进程不受保护。Linux中有些重要进程(如VJEB服务器守护进程)没 有得到操作系统的严格保护,容易受到破坏
1系统安全 管理,也使得攻击 Linux更容易 Linux目前存在如下安全隐患 有数走梯枝含个击。多个 扫描工具恶意攻击 描,检测务悉是否存在安全漏司,尽曾其本身不 置成自动攻击的脚本进行攻击 1系统安全 12U安金机 c Linux内置多种安全保护机 PAM( Pluggable Authentication Modules)是一套共享库,其目的是 口,将认证工作由 的群 进行选择,能够在不重新编译与认证相关 情况下改变本 安全审计析 各种安全挞施,但还会被发现一些新的,入 以记录攻击行为,同时记 事件信息和网连 1系统安全 1.2UnueRen8 Linux内置多种安全保护机制。 通过标记系统中的主客体,强制性地限制信息的共享和流动,使不同的用户只 问到与其相关的、抱定范围的信息,从根本上的止信息池密和访问乱的 防火境是在被保护服务器和互联网之间,或者在其他网络之间限制访问的一 °要的火的同制,计以及攻击边趣,可务器目的
2 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.系统安全 4 1.1目前存在的安全隐患 Linux是一个开放操作系统,许多程序或工具可对Linux操作系统进行 管理,也使得攻击Linux更容易。 Linux目前存在如下安全隐患,例如: 服务性攻击。 网络中存在的服务性攻击越来越多。如众所周知的smurf攻击,如某台服务器将 大量含有虚假源地址的ICMP包发送到一个或多个服务器上,会导致多个服务器 分别响应每一个ICMP包,整个网络充满广播包,致使系统繁忙而拒绝服务。 扫描工具恶意攻击。 扫描工具可以对系统进行扫描,检测服务器是否存在安全漏洞,尽管其本身不 进行攻击,但是可以被配置成自动攻击的脚本进行攻击。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.系统安全 Linux内置多种安全保护机制。 PAM机制。 PAM(Pluggable Authentication Modules)是一套共享库,其目的是提供一个 框架和一套编程接口,将认证工作由程序员交给管理员。 PAM允许管理员在多种认证方法之间进行选择,能够在不重新编译与认证相关 的应用程序的情况下改变本地认证方法。 安全审计机制。 即使运维人员在Linux中采取了各种安全措施,但还会被发现一些新的漏洞,入 侵者可以在漏洞被修补之前攻破尽可能多的服务器。 虽然Linux不能预测何时服务器会受到攻击,但是它可以记录攻击行为,同时记 录事件信息和网络连接情况,为后续进行复查提供支持。 5 1.2 Linux安全机制 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 1.系统安全 6 1.2 Linux安全机制 Linux内置多种安全保护机制。 强制访问控制机制。 强制访问控制(MAC,Mandatory Access Control)是一种由系统管理员从全 系统的角度定义和实施的访问控制机制。 通过标记系统中的主客体,强制性地限制信息的共享和流动,使不同的用户只 能访问到与其相关的、指定范围的信息,从根本上防止信息泄密和访问混乱的 现象。 防火墙机制。 防火墙是在被保护服务器和互联网之间,或者在其他网络之间限制访问的一种 部件或一系列部件。 通过配置防火墙的访问控制、审计以及抗攻击等功能,可以保障服务器自身的 安全
2. SELinux 的舰,是由实国图安全后是并发的自目在腔 SELinux起原于1980年开始的微内核和操作系统安全的研究,这两条研 计算机( DTMach, Distribute Trusted Mach 想与夫的后实安全核自,生订出下 支持吏丰富的动态类型的强制机制。 2. SELinu 2美国国家安全局认为需要通过社区推广Fask,井广泛收集使用意见 共版本,叫尝安全增的nu 美国国家安全局在2001年 Linux核心高峰会上,以普通Lnu为基础榮 同时具有资料标记与强制存取控制的功能,号称是 安全的Lnu操作系统 sELinus可以被用来制栏序的最小执行权限,提高程序安全,从而保护程序和资料 的完整性和机密性 2. SELinux 目前所有26及以上版本的inux内核中都集成了 SELina 刘家:而用户运行的进程则被当做主,设备基至端口都将作为 ·主题不直接访问任何对象”(文件、目录、设备基至端口 “主题访问对象需经过的步骤如所示
3 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 7 2.1 SELinux简介 SELinux(Security-Enhanced Linux)是基于Linux内核的强制访问控 制机制的实现,是由美国国家安全局(NAS)开发的项目,旨在增强 传统Linux操作系统的安全性。 SELinux起源于1980年开始的微内核和操作系统安全的研究,这两条研究 线路最后形成了分布式信任计算机(DTMach,Distribute Trusted Mach) 的项目,并融合了之前研究项目的成果。 美国国家安全局的研究组织参加了DTMach项目,付出了巨大努力,并且 继续参与了大量的后续安全微内核项目,最终产生了一个新的项目Flask, 支持更丰富的动态类型的强制机制。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 8 2.1 SELinux简介 美国国家安全局认为需要通过社区推广Flask,并广泛收集使用意见。 1999年夏天,美国国家安全局在Linux内核中实现Flask安全架构。 2000年12月,美国国家安全局发布研究的第一个公共版本,叫做安全增强的Linux。 因为是在主流的操作系统中实现的,所以SELinux开始受到Linux社区的注意。 SELinux最早是在Linux 2.2.x内核中以一套内核补丁形式发布。 美国国家安全局在2001年Linux核心高峰会上,以普通Linux为基础架 构提出了SELinux,并使用较具有弹性的MAC和Flask架构,将Linux安 全等级提升至B1,同时具有资料标记与强制存取控制的功能,号称是 最安全的Linux操作系统。 SELinux可以被用来限制程序的最小执行权限,提高程序安全,从而保护程序和资料 的完整性和机密性。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 9 2.1 SELinux简介 目前所有2.6及以上版本的Linux内核中都集成了SELinux。 使用SELinux后,操作系统中的文件、目录、设备甚至端口都将作为 “对象”,而用户运行的进程则被当做“主题”。 “主题”不能直接访问任何“对象”(文件、目录、设备甚至端口)。 “主题”访问“对象”需要经过的步骤如图所示。 Setenforce 0
2. SELinux 25ELuR级 SELin的身份( dentity)不同于传统的 UNIX uid(u SELina的身份和 UNIX uid可以共存于同一个操作系统中 SELin的身份是安全上下文的一部分,会影响到思个域可以进入。 2角色 色枝零角色用明先定义 配置文件中 如果策略数据库中定义了一个角色不可以使用一个域,则操作被拒绝 2. SELinux 25ELnuc. 所有进程都在域中进行,域直接决定了进程的访问 域基态上是 定了一个进程可以对哪些类型进 板操:后看图段全氧·只能等执付这个序,就有可能0的 那且HA×需系统建:在是苦元天持权线中指精 常见的域类型有: 2. SELinux 22sELnuo 类型: 城是对进的应用,而炎型是分配给目录,文
4 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 10 2.2 SELinux术语 身份: SELinux的身份(identity)不同于传统的UNIX uid(user id)。 SELinux的身份会跟UNIX uid有很相似的文本标识,但它们是两个完全不 同的概念,例如运行su命令将不会改变SELinux中的身份。 SELinux的身份和UNIX uid可以共存于同一个操作系统中。 SELinux的身份是安全上下文的一部分,会影响到哪个域可以进入。 角色: 角色决定了哪些域可以使用。 哪些域被哪些角色使用,可以预先定义在策略配置文件中。 如果策略数据库中定义了一个角色不可以使用一个域,则操作被拒绝。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 11 2.2 SELinux术语 域: 所有进程都在域中进行,域直接决定了进程的访问。 域基本上是一个进程运行操作的列表,或者说它决定了一个进程可以对哪些类型进 行操作。在这个系统上的任何用户,只要能够执行这个程序,就有可能获得root的 权限,这存在着巨大的安全漏洞。 在使用SELinux的操作系统中,如果一个正在执行的进程想要转换进入特权域中执行 时,则SELinux需要检测该进程是否允许进入特权域中进行执行。 常见的域类型有: sysadmi_t表示为系统管理域; user_t表示为无特权用户域; init_t表示Init进程运行域; named_t表示named进程运行域。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 12 2.2 SELinux术语 类型: 类型是设定一个对象并设置该对象可以被哪些内容访问。 类型的定义和域的定义基本相同,不同之处在于域是对进程的应用,而类型是分配给目录、文 件和套接字的。 策略: 策略是可以设置的规则,决定了一个角色的用户可以访问什么、哪个角色可以进入 哪个域和哪个域可以访问哪个类型等问题,用户可以根据想要建立系统的特点来设 置相应策略
25ELuR级 安全上下文 安全上下文包括了所有事情属性的述,包括文件、目录、进程、 TCP socke以及 安全上下文同时也包含了身份、角色域和类型等内容 在 SELinux系统上可以用令来查看当前用户的安全上下文 转换 据安全上下文来判断是杏发生转换。 主要有两种方式的转换 第二种:在特株目录下创建文件时反生的文件类型的转洗 23SEUhM:F 2 SELinux系统架构图所示。 运维人员制定安全策略( security 库【RuD 哪在一起,从而检测一个主题( Subject 有权闲能够访问到某一对象( Obec 2. SELinux SELn SELina有较高阶的语吉表示,可分别为各分层设定安全策略,经由 SELin自动 重姐后,能根所设定的策略限制存取权限
5 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 13 2.2 SELinux术语 安全上下文: 安全上下文包括了所有事情属性的描述,包括文件、目录、进程、TCP sockets以及 以上所有的内容。 安全上下文同时也包含了身份、角色、域和类型等内容。 在SELinux系统上可以用id命令来查看当前用户的安全上下文。 转换 根据安全上下文来判断是否发生转换。 主要有两种方式的转换: 第一种:当前执行了一个被限定类型的程序时会发生的进程域转换。 第二种:在特殊目录下创建文件时发生的文件类型的转换。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 14 2.3 SELinux框架 SELinux系统架构如图所示。 SELinux提供策略语言(Policy Language)供运维人员制定安全策略(Security Policy),并由核心层进行存取控制检查,同时也可加载策略(Load Policy)为 SELinux提供新的策略政策,共同维护SELinux的规则数据库(Rule DB)。 SELinux将系统内核(Kernel)及安全策略绑在一起,从而检测一个主题(Subject) 是否有权限能够访问到某一对象(Object)。 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 15 2.3 SELinux框架 SELinux系统架构如图所示。 SELinux提供了范例策略(Example Policy),详细规划了安全策略所应有的权限, 包括Server Process(如Samba Server)、Client Process(如Web Browser)等, 并允许使用者利用类型强化(Type Enforce,TE)及RBAC(Role Base Access Control)方式来控制系统。 通过权限的分散及强制的限制,SELinux可以有效防止rootkit及未知攻击,并且 SELinux拥有较高阶的语言表示,可分别为各分层设定安全策略,经由SELinux自动 重组后,能根据所设定的策略限制存取权限
24SEL件 SELinuX已经作为模块集成到内核中,且默认处于开启状态。 对于管理人员来说,需要关注 SELinux的配置与管理。 配置文件目录 / selinux/即为 sELina伪文件系统,它包括内核子系统最常使用的命令 etc/ seinu/目录是所有策略文件和主配置文件存放的麦位置 过catt/ elinux/con的g可查看 SELin的全配文件 2. sELin, 245Eh件 2. SELinux 25 查看 SELinur状态: estates 出加的,的的
6 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux SELinux已经作为模块集成到内核中,且默认处于开启状态。 对于管理人员来说,需要关注SELinux的配置与管理。 配置文件目录: /selinux/即为SELinux伪文件系统,它包括内核子系统最常使用的命令。 此类型的文件系统与/proc/伪文件系统非常相似。 系统管理员和用户通常不需要直接操作该部件。 /etc/selinux/目录是所有策略文件和主要配置文件存放的首要位置。 通过cat /etc/selinux/config可查看SELinux的全局配置文件。 16 2.4 SELinux文件 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 17 2.4 SELinux文件 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 查看SELinux状态:sestatus 18 2.5 SELinux配置管理
SE 2. SELinu 查看SELu状态: getentarce aa.9.a-4F:30+=-D:B4 2. SELi 三
7 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 查看SELinux状态:sestatu 19 2.5 SELinux配置管理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 查看SELinux状态:getenforce 20 2.5 SELinux配置管理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 查看SELinux状态:getenforce 21 2.5 SELinux配置管理
2. SELinux 改 SELinux状态: setence +,, SE通 修改SEL 2. SELinux 25 修改 SELinux状态: setence 修改配置文件,实现 SELin的启用与禁用 修改 sELinux的配置文件,将配盖 ELINUX选项没置为daed,从 当系统重启后,配置生效
8 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 修改SELinux状态:setenforce 22 2.5 SELinux配置管理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 修改SELinux状态:setenforce 23 2.5 SELinux配置管理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 修改SELinux状态:setenforce 修改配置文件,实现SELinux的启用与禁用 修改SELinux的配置文件,将配置文件中的SELINUX选项设置为“disabled”,从 而关闭SELinux状态。 当系统重启后,配置生效。 24 2.5 SELinux配置管理
2. SELinux 吗g标容模式m分)的参数 2. SELinux Policy 当用户雯执行某一程序(例如 器)或某一进程执行动作时 会依照Pccy(策略)所制定的内容来检查用户或进程相对应的权限 级和力技方的用应,必须要同时付合传的使用方 SELin需要一个合适的Pcc才可以发挥效果。 组某图台(要)的时作系发行负,做 2. SELinux ted Policy是RHEL60已定义好的Pdky,这个 Targeted Policy的用 保护的服务有htpd( apache)、 named、dhpd 口布尔值( boolean) 口文件上下文( file contexts)
9 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 修改SELinux状态:setenforce 在系统启动时修改SELinux状态 在系统启动前,可以通过Kernel(内核)命令行参数的方式设定,即利用Boot loader设定该参数,对常用的GRUB就可以在/etc/grub.conf中进行设定。 其中主要有3种需要添加的命令,具体如下所示。 ①selinux=0:表示为SELinux停用模式(disabled)的参数; ②permissive=0:表示为SELinux宽容模式(permissive)的参数; ③enforcing=0:表示为SELinux强制模式(enforcing)的参数。 25 2.5 SELinux配置管理 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux Policy 当用户要执行某一程序(例如启动Web服务器)或某一进程执行动作时, 系统会依照Policy(策略)所制定的内容来检查用户或进程相对应的权限 信息,如果权限符合,系统就会允许该操作的执行。 SELinux检查方式独立于传统的使用者权限,必须要同时符合传统的使用者 权限和SELinux权限才能顺利执行相应操作。 SELinux需要一个合适的Policy才可以发挥效果。 如果Policy太宽松会使SELinux毫无用武之地。 如果Policy太严格会让用户操作觉得碍手碍脚。 通常Security Policy(安全策略)的制定工作由操作系统发行者来负责,例如 RedHat、SUSE、Debian等都内置了Policy。 26 2.6 SELinux布尔值和上下文配置 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux Policy Targeted Policy是RHEL 6.0已定义好的Policy,这个Targeted Policy的用 途是保护系统上的各项服务。 CentOS 6.0上SELinux可保护的服务有httpd(apache)、named、dhcpd、 snmpd等200多个服务。 Targeted Policy可粗分为两种类型的属性: 布尔值(boolean) 文件上下文(File contexts)。 27 2.6 SELinux布尔值和上下文配置
2. SELinu 例上下文量 2. SELinux Policy 用该门体的权8行的,图可 2. SELinux ,它可用来设定每个文件及 10
10 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux 28 2.6 SELinux布尔值和上下文配置 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux Policy Targeted Policy的属性:布尔值(boolean) 用来控制每个deamon(service)process“守护(服务)进程”的权限,不仅可 对该进程进行整体的权限控制外(${deamonname}_disable_tran),而且还可 对该进程的局部权限做控制。 如httpd(apache)就有多个布尔值boolean属性,httpd_enable_cgi可控制 httpd是否可以执行cgiscript;httpd_can_network_connect可控制httpd是否可 以对外做网络联机等。 29 2.6 SELinux布尔值和上下文配置 河南中医药大学 / 阮晓龙 / 13938213680 / http://linux.xg.hactcm.edu.cn / http://www.51xueweb.cn 2. SELinux Policy Targeted Policy的属性:文件上下文(File contexts) 用来控制文件系统中每个文件及目录的SELinux权限,它可用来设定每个文件及 目录的属性,可针对某个进程做严格的读写限制。 简单来说,布尔值控制进程行为本身,而上下文是控制进程读写文件的权限。 30 2.6 SELinux布尔值和上下文配置