第4章 RHCSA级的安全选项
Linux安全是从“自主访问控制(Discretionary Access Control, DAC)”这个概念开始的。自主访问控制涉及文件和目录的权限和所有权。通过使用特殊的位,包括访问控制列表(Access Control List, ACL),权限可以比简单的user/group/other分类更加精细。这些访问控制列表把权限分配给某些特定的用户或组,覆盖了标准的权限,允许为指定的文件或目录设置更加精细的访问规则。
此外,安全领域的另一个概念是防火墙。本章讨论iptables服务(这是RHEL 6中的默认防火墙)和新的防火墙守护进程,后者支持不同的信任区域。本章将介绍如何使用firewall-config图形实用工具和firewall-cmd命令工具来允许或阻止通过firewalld的服务。
大部分Linux系统上都安装了SSH服务。这是登录到一台机器上非常常用的一个服务,所以各地的黑帽黑客都希望找到SSH的弱点。因此,本章还将介绍如何为SSH使用基于密钥的验证来提高安全性。
通过另一个安全概念即强制访问控制(Mandatory Access Control),可提供进一步的保护。在RHEL 7中,此概念的MAC实现就是安全增强型Linux(Security-Enhanced Linux, SELinux)。Red Hat希望考生在考试过程把SELinux置于活动状态。因此我们要分析如何设置强制模式,修改文件上下文,使用布尔型参数以及诊断受到破坏的SELinux策略。
如果现在使用的系统是安装过程创建的默认安装,则在本章中需要安装额外的程序包。如果可以使用网络安装,则读取这个程序包的名字并把yum install命令应用到这个程序包上。例如,为查看基于GUI的防火墙配置工具,需要用下面的命令安装这个工具:
# yum install firewall-config
有关此程序包安装过程的更多信息,请阅读第7章的内容。
考试内幕
基本的文件权限
在Linux中,安全始于文件的权限。由于在Linux中任何东西都可以定义为文件,因此安全从文件开始确实是一个很好的想法。不管如何,在Red Hat认证目标中有关安全的概念一旦理解后就很简单:
● 显示、设置和修改标准的ugo/rwx权限
● 诊断和纠正文件权限问题
Linux文件的标准权限是为用户(users)、组(groups)和其他用户(others)定义的,这些导致了ugo,它们的权限就是文件的读(read)、写(write)和执行(execute),这些定义了rwx权限。我们把这些权限定义为自主访问控制,与本章也将讨论的强制访问控制系统即SELinux相对应。
访问控制列表
可以将访问控制列表配置为覆盖和扩展基本的文件权限。例如,利用访问控制列表,我们可以在自己的主目录中建立一个文件,该主目录只允许有限的几个其他用户和组读取它。相关的RHCSA认证目标是:
● 创建和管理访问控制列表(ACL)。
防火墙控制
在Linux中配置后,防火墙允许某些端口通过而阻止其他所有端口通过。此外,防火墙还可以用于从多个方面控制通信流量,但这属于RHCE的考试内容。相关的RHCSA认证目标是:
● 用firewall-config、firewall-cmd或iptables配置防火墙参数。
Secure Shell Server
在前言中已经介绍过,SSH服务是一个需要重点关注的地方。相关的RHCSA认证目标为:
● 为SSH配置基于密钥的验证
对于基于密钥的验证,可使用私钥/公钥对登录到远程系统。不再需要通过网络进行口令的传输。这种验证使用的1024或更多位口令要比通过网络传输的口令更难破解得多。
安全增强型Linux
我们没有办法避开它!在Red Hat考试中考生必须面对SELinux。除非能够用SELinux配置一些服务,否则不能保证你们能通过Red Hat考试。为了帮助考生掌握必须要掌握的内容,Red Hat分解了与SELinux有关的认证目标。第一个认证目标是SELinux基础,因为它涉及SELinux在一个系统上的三个模式(强制模式/许可模式/禁用模式):
● 给SELinux设置强制模式/许可模式。
另一个认证目标要求考生理解为文件和进程定义的不同SELinux上下文。虽然用到的命令都比较简单,但是在Linux可用的上下文就像服务那样众多:
● 显示和确认SELinux文件和进程上下文。
在测试不同的SELinux上下文时,错误总是会发生的。读者也许记不得与重要目录有关的默认上下文。但如果用正确的命令不需要记住全部内容,正如下面的认证目标所表示的那样,恢复为默认的上下文是一件相当容易的事:
● 恢复文件默认的上下文。
下一个认证目标看起来比较复杂。但是与SELinux有关的布尔型参数都有一个描述性的名字。可以使用更优秀的工具来进一步显示这些可用的布尔型上下文。从本质上说,这意味着在SELinux下运行一个特定的服务,所要做的就是打开一个(或更多)布尔型参数(而不需要直接修改SELinux的策略规则):
● 使用布尔型参数来修改系统SELinux设置。
当SELinux工作后,应该监视系统上发生的违反策略的行为。错误地进行配置或者未经授权的侵入都会违反策略。因此,为了最大限度地利用SELinux,应该知道如何审核违反策略的行为,并能够解决常见的问题。相关的RHCSA目标是:
● 诊断和解决常见的违反SELinux策略的行为。