安全性指南 Red Hat Enterprise Linux 7 Security Guide Zh CN

User Manual:

Open the PDF directly: View PDF PDF.
Page Count: 149 [warning: Documents this large are best viewed by clicking the View PDF Link!]

Martin Prp Tomáš Čapek Stephen Wadeley
Yoana Ruseva Miroslav Svoboda Robert Krátký
、校坤 翻、校明晗 翻、校吴洁
、校可 校编辑:任浩 校编辑:鄭中
帽企 Linux 7
安全性指南
帽企 Linux 7安全性指南
帽企 Linux 7 安全性指南
帽企 Linux 7安全性指南
Martin Prpič
Red Hat 工程部出版中心
mprpic@redhat.com
Tomáš Čapek
Red Hat 工程部出版中心
tcapek@redhat.com
Stephen Wadeley
Red Hat 工程部出版中心
swadeley@redhat.com
Yoana Ruseva
Red Hat 工程部出版中心
yruseva@redhat.com
Miroslav Svoboda
Red Hat 工程部出版中心
rkratky@redhat.com
Robert Krátký
Red Hat 工程部出版中心
msvoboda@redhat.com
、校
澳大利昆士大学 笔译暨研究所
cuteckhaha@sina.com
、校明晗
澳大利昆士大学 笔译暨研究所
342024612@qq.com
、校吴洁
澳大利昆士大学 笔译暨研究所
cielxphantom@163.com
、校
澳大利昆士大学 笔译暨研究所
m.zk.dreamer@gmail.com
编辑:任浩
澳大利昆士大学 笔译暨研究所
renhao0823@gmail.com
编辑:鄭中
帽工程部翻中心 澳大利昆士大学笔译暨研究所
ccheng@redhat.com, uqcchun1@uq.edu.au
法律通告法律通告
Copyright © 2013 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0
Unported License. If you distribute this document, or a modified version of it, you must provide
attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat
trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert,
Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity
logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other
countries.
Linux ® is the registered trademark of Linus Torvalds in the United States and other countries.
Java ® is a registered trademark of Oracle and/or its affiliates.
XFS ® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States
and/or other countries.
MySQL ® is a registered trademark of MySQL AB in the United States, the European Union and
other countries.
Node.js ® is an official trademark of Joyent. Red Hat Software Collections is not formally related to
or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack ® Word Mark and OpenStack logo are either registered trademarks/service marks
or trademarks/service marks of the OpenStack Foundation, in the United States and other countries
and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or
sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.
摘要摘要
可帮助用和管理了解保工作站和服器不受本地和程入侵、攻意活
程和践。 重于帽企 Linux,但细节的概念和技适用于所有Linux指南详细
了一些划和工具,划和工具可以数据中心、工作所以及家庭建一个安全的境。
使用正确的管理知、警告和工具, Linux 的系可在充分发挥功能以及保障自身安全的情况下
抗最常入侵行和攻方法。
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1 安全安全话题话题概述
1.1. 什么是算机安全?
1.2. 安全控制
1.3. 漏洞
1.4. 安全威
1.5. 的漏洞和攻
2 安装的安全提示安装的安全提示
2.1. 安全 BIOS
2.2. 其他
3 更新系更新系
3.1. 维护安装的
3.2. 其他
4 用工具和服用工具和服化您的系化您的系
4.1. 算机安全
4.2. 控制 root 访问
4.3. 安全服
4.4. 安全访问
4.5. 使用防火
4.6. DNSSEC DNS
4.7. 私用网VPN
4.8. 加密
5 统审统审
用例
5.1. 核系
5.2. 安装 audit 件包
5.3. 配置 audit
5.4. 开始 audit
5.5. 义审规则
5.6. 理解核日志文件
5.7. 搜索核日志文件
5.8.
5.9. 其他
6 性与漏洞性与漏洞
6.1. 帽企 Linux 的安全合
6.2. 典型的合策略
6.3. 使用 SCAP 工作台
6.4. 使用 oscap
6.5. Satellite 上使用 OpenSCAP
6.6.
6.7. 附加
7 准和法准和法
7.1. 邦信息准(FIPS
7.2. 国家工安全划操作手册
7.3. 支付卡行数据安全
7.4. 安全技术实施指南
A. 加密加密
A.1. 同步加密
3
3
3
4
8
10
12
12
12
13
13
16
18
18
25
30
44
49
70
78
88
96
96
97
98
98
99
100
104
108
109
110
111
111
111
118
123
129
129
130
132
132
133
133
134
135
135
1
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.1. 同步加密
A.2. 加密
B. 核系核系引用引用
B.1. 核事件字段
B.2. 记录类
C. 订历订历
135
135
138
138
140
145
安全性指南安全性指南
2
1 安全安全话题概述概述
由于使用大的算机业务运作以及个人信息管理的依性不断增加,各个行都要了解网
算机安全践。企要求具有专业和技能的安全家正确核系并量身定制解决方案以适其机
操作要求。因大多数机都在不断壮大,其工要在本地或者访问公司 IT 源,因此安全的
得更加重要。
憾的是,很多机(以及个人用于安全问题都是后炮,于安全的考虑总是放在功能、生力、便
利性、易于使用以及算之后才考。正确的安全部署通常都是事后考即在未授入侵
之后
才考
。在接到不可信的网例如互网之前,采取正确的方法可有效阻止入侵尝试
注意注意
个文档会常参考在 /lib 中的文件。当使用 64 位系统时,有些提到的文件可能位于 /lib64
中。
1.1. 什么是什么是算机安全?算机安全?
算机安全是一个笼统术语,其意涵盖了从算到信息理的很大域。依赖计算机系和网络进行日常
务处理以及访问重要信息的行业视其数据为总资产的重要成。有些名和度量已日常业务词汇
比如总拥有成本(TCO)、投ROI)和服务质量(QoS)。使用些度量,各行可将某些方面,比
如数据整合和高可用性(HA)作划和程管理成本的一部分。在有些行中,比如子商,数据的
可用性和可信性意味着成功与失
1.1.1. 准化的安全性准化的安全性
每个行中的企都要依准制定体(比如美国医疗协会,AMA气与子工程师协会,IEEE
定的法规则也适用于信息安全。很多安全顾问方都准安全模式,即 CIA,或称
保密、
完整及可用
个三的模式是一般被人接受的估敏感信息并建立安全策略的元素。下面我一步
详细描述 CIA 模式:
保密敏感信息必只能对预先定的一个体可用。限制未授权传输以及使用信息。例如:信息保密
可确保客个人或者财务信息不会被未授个人以意目的取,比如盗窃或者造信用。
完整以任何方式修改信息以致其不完整或者不正确。限制未授修改或者敏感信息的能
力。
可用户应该可以在需要时访问信息。可用性可保以共同商定的率和取信息。这经
常要根据百分比算,并在网商及其企使用的服级协议SLA)中有具体
明。
1.2. 安全控制安全控制
算机安全通常可分三个主要型,通常指的是 controls
物理控制
控制
管理控制
1 安全安全话题话题概述
3
三个主要型定了正确安全部署的主要任。在些控制中有一些子分一步些控制以及如何
部署它
1.2.1. 物理控制物理控制
物理控制是在定结构施保安全的方法,用来阻止或者防止敏感料的未授权访问。物理控制示例
包括:
像机
作或者警系
照片 ID
并有固定
生物识别(包括指、声音、面部、迹及其它用来识别个体的自方法)
1.2.2. 控制控制
控制使用技来控制整个物理架和网中名敏感数据的访问和使用。技控制影
大,包括以下技方面:
加密
智能卡
络认证
访问控制(ACL
文件完整
1.2.3. 管理控制管理控制
管理控制定安全性中人的因素。它涉及机中所有级别的个人,并决定些用可以访问哪源和信
息:
及恢复
招聘和分离策略
注册及使用
1.3. 漏洞漏洞
如果有充分的时间源和情,攻者几乎可以攻陷任何系。所有安全程和技目前都不能保统绝
不会受到入侵。路由器可帮助保到互网的网关安全。防火可帮助保络终端安全。虚私用网
安全地以保密流方式送数据。入侵探可警告您那些作。但是些技能否成功依各种不同因
素,其中包括:
负责配置、控和维护专业人士。
迅速有效地丁和更新服及内核的能力。
安全性指南安全性指南
4
一直保持警惕的反能力。
由于数据系和技的不断化,保业资源安全是很复的。个复性,通常很找到可用于您所
有系专业资源。然人可以在很多到很高的水准,但是很找到在多个域都非常精通的人。主
要是因信息安全的每个域都要求您的持关注,信息安全不是一成不的。
漏洞估是您网和系安全的内部审计。其果表明您网信息的保密性、完整性和可用性(如<
1.1.1 准化的安全性 >所作出的解)。通常,在侦查阶用漏洞估。在此段,
些重要数据行收集。此段会入系备阶段,借此所有已知漏洞行必要的目标检测。准
备阶段会以止,在段中会所有发现风险进行等,分高、中和低三;关于目
的安全增方式(或降低漏洞风险的方式)也会讨论
如果您在家里行弱点估,您一般会检查家里的每扇看看是否关上并好。您看每扇窗,确定关
上并好。个理念也同适用于系、网子数据。意用就是您数据的小和劫匪。清楚他的工
具、心机,您就可以作迅速作出反
1.3.1. 义评义评估和测试
弱点估可分为两类
由外而内
由内而外
由外而内的弱点,您要从外部抗您的系。身公司之外您提供了黑客的角。您看到的
就是黑客看到的公开路由的 IP 地址、您 DMZ 中的系、您防火外接口等等。DMZ 代表停火区
对应那些于可信内部网,比如企业专 LAN和不可信的外部网,比如公共互网之算机或者小的
子网。通常 DMZ 包括可接到内部网流量的设备,比如 WebHTTP)服器、FTP 器、SMTP
件)服器和 DNS
由内而外的弱点,您于有利地位,因您在内部且被认为是可信的。就是您和您的同事登
到系后的角。您会看到打印服器、文件服器、数据和其它源。
这两种弱点估有很大不同。作公司的内部用有比外部用更多的特。在大多数机中是将安全配
防止入侵者入。很少是用来防的内部用(比如部防火、用级访问控制以及内部
的授权过程。)一般来,作大多数系从内部看来有很多源是公司的内部源。一旦您身公司之外,
您的状就成不可信。您在公司外部可使用的系源通常非常有限。
弱点估和
入侵测试
的不同。将弱点估作入侵测试的第一步。弱点估收集的信息可用于
该评估是来检查漏洞和潜在弱点,而入侵测试则是要利用所发现的漏洞和弱点。
估网络设备是一个动态过程。无是信息安全是物理安全,都是动态的。估所示的概况,可能会
现误报和漏误报是指工具所发现的漏洞实际上并不存在。漏是指漏了实际漏洞。
安全管理只能通其所使用的工具和所有的知发挥其作用。采用任何当前可行的估工具,在您的系
统运估工具,但几乎可确定的是其中存有误报。无是程序错误还是用户错误,其果是相同的。
些工具可能会发现误报,或更有甚者,发现
在明确了弱点估和入侵测试的不同,行入侵测试前仔虑评果以便得新的最佳践方
法。
警告警告
不要尝试利用生的漏洞。这样做可能会您系和网的生和效率起到截然相反的效果。
以下列表出了一些行弱点估的点。
关注信息安全。
在黑客发现潜在漏洞之前找到些潜在漏洞。
1 安全安全话题话题概述
5
保持系的更新和修
提升工的专业与帮助。
经济损失和面宣
1.3.2. 漏洞漏洞估方法估方法
选择弱点估工具方面,建立弱点估方法是很必要的。憾的是目前没有先确定或者内公的方
,但尝试和最佳践可作有效的指方法。
是什么?我看的是某台服是整个网以及网中的所有西?我是在公司外部是内
部?
问题的答案在帮助您决定工具选择乃至使用方法至关重要。
要更多地了解所布的方法,以下网站:
http://www.owasp.org/
开放式
Web
用程序安全目(
OWASP
The Open Web Application Security
Project
1.3.3. 漏洞漏洞估工具估工具
使用某些形式的信息收集工具,可启动评估。在估整个网络时,首先制出布局,找正在行的主
机。一旦找到主机的位置,将分别检查每个主机。关注些主机需要一套工具。知道使用一种工具是
漏洞最关的一步。
就像日常生活的每个方面一,很多工具可行同一任个概念也可用于行弱点估。有些具体到操作
用程序甚至网的工具(要看所使用的协议)。有些工具是免的,有些不是。有些工具很直
用,而有些神秘,且文档支持很差,但有其它工具没有的一些功能。
使用合适的工具可能是一项艰巨的任,最经验决定一切。如果可能的,建立一个测试实验室,尽
您所能尝试许多不同的工具,下每一个工具的点和缺点。 README 文件,或些工具的手册。此
外,在互网上查阅更多信息,如文章、分步指南,或是针对这些工具的件列表。
下面讨论的工具只是多可用工具中的一个例子。
1.3.3.1. 使用使用 Nmap 描主机描主机
Nmap 是一种常用工具,可用于判定网的布局。Nmap 多年来一直被使用,它可能是收集信息常使用
的工具。其秀的手册选项和使用方法行了详细描述。管理可以在网上使用 Nmap 找主
机系以及打开些系的端口。
Nmap 是漏洞估的第一步。您可以映射出在您网上所有的主机,甚至可以传递选项,允 Nmap 尝试对
特定主机正在行的操作系统进识别 Nmap 制定关于使用安全服和限制未使用服的政策奠定了良
好基
要安装 Nmap 则须 root 户运 yum install nmap 命令。
1.3.3.1.1. 使用使用 Nmap
在所描机器的主机名或 IP 地址下 nmap 命令,Nmap 就可以在 shell 提示符中行:
nmap <hostname>
例如,描机器的主机名 foo.example.com,用 shell 提示入以下命令:
~]$ nmap foo.example.com
安全性指南安全性指南
6
基本描(只需花几分,根据主机所在位置以及其他网状况)的果与以下果相似:
Interesting ports on foo.example.com:
Not shown: 1710 filtered ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
113/tcp closed auth
Nmap 测试最常通信端口,以用于听或等待服个常识对于想关不必要或未使用的服的管
,是非常有用的。
关于使用 Nmap 的更多信息,以下 URL 的官方主
http://www.insecure.org/
1.3.3.2. Nessus
Nessus 是一个可提供全方位服的安全描程序。Nessus 的插件式结构自定其系和网。与
其他的描程序一Nessus 只能在其依名数据发挥作用。好在 Nessus 常更新,且具有全
告、主机描以及实时漏洞搜索的功能。请记住,即使是像 Nessus 常更新的大工具,也可能会出
误报和漏
注意注意
Nessus 端和服件需要支付订阅费才能使用。一点已加到此文档中,以供那些有趣使用
程序的用参考。
关于 Nessus 的更多信息,以下 URL 的官方网站:
http://www.nessus.org/
1.3.3.3. OpenVAS
OpenVAS Open Vulnerability Assessment System
,开放式漏洞估系
)是一套可用于描漏洞和全面
漏洞管理的工具和服 OpenVAS 框架可提供多基于网、桌面和命令行的工具,用于控制解决方案
的不同件。 OpenVAS 的核心功能是其所提供的安全描器,可使用超 33,000 每日更新的网漏洞测试
NVT Network Vulnerability Test )。与 Nessus 1.3.3.2 “Nessus”)不同,OpenVAS 并不
需要任何订阅费
关于 openVAS 的更多信息,以下 URL 的官方网站:
http://www.openvas.org/
1.3.3.4. Niktou
Nikto 是一款杰出的
通用网关接口
”(CGIcommon gateway interface) 脚本描器。 Nikto 可用于检查
CGI 漏洞,可以避的方式行,以便避入侵探Nikto 所提供完整的文档料,在行程序前,
当仔细查核。如果您有提供 CGI 脚本的网器,那么Nikto 就是用于检查器安全的最佳源。
关于 Nikto 的更多信息,可以下 URL
http://cirt.net/nikto2
1 安全安全话题话题概述
7
1.4. 安全威安全威
1.4.1. 安全威安全威
如果不能在以下方面很好地配置网,就会增加被袭击风险
不安全的不安全的
错误配置的网是未授的主要切入点。一个可信任并且开放的本地网暴露于高风险的互网上就如
同开揖盗可能什么都不会生,但
会有人利用这样的机会。
广播网广播网
管理通常无法意到其安全方案中网硬件的重要性。简单的硬件,比如集线器和路由器,它
是广播或者非切的原,即,无,某个点通将数据送到接收,集线器或者路由器都
会向接受者数据包的广播并数据。个方法是外部入侵者以及本地主机的未授户进行地址解
析(ARP)或者介质访问控制 MAC)地址嗅探的最薄弱的环节
集中管理的服集中管理的服
一个潜在的网陷是使用集中管理的算机。很多企常用的削支出的方法是将所有服都整合到一个
大的机器中。很方便,因它容易管理,同时费用相多台服器配置来更加便宜。但是集中管理的服
器也会造成网络单点的失。如果中央服器被破坏,会造成整个网完全不能使用,甚至更糟糕的是,
有可能造成数据被改或者被盗。在些情况下,中央服器就成为访问整个网的开放通道。
1.4.2. 器安全威器安全威
器安全与网安全同重要,因器通常有机的大量重要数据。如果服器被破坏,其所有内
容都可被破解者走或者任意改。下面的小节详细论述了一些主要问题
未使用的服未使用的服及开放端口及开放端口
一般系管理安装操作系统时不会注意实际安装了些程序。可能会造成一些问题,因可能安装了并不
需要的服,而些服可能被安装和配置了默认设置,并且有可能被开这样可能会造成在服器或者工
作站中行不必要的服,比如 TelnetDHCP 或者 DNS,而管理并没有意一点,从而造成不必要
的流量经过该器,甚至成破解者的潜在通道。有关关端口以及禁用未使用服
4.3 安全服〉。
未打未打丁的服丁的服
安装包括的大多数服用程序都是经过严测试的安全件。经过境中的用后,将
底改其代,并会发现和修复很多 bug
但是世界上不存在十全十美的件,而且是有可以改的空外,新的件通常不会行您希望的
测试,因它最近才用于境,或者因它可能不如其它服件那么受迎。
者和系管理员经常会在服用程序中找到可开 bug,并将信息在 bug 跟踪和与安全相关的网
布,比如 Bugtraq 件列表(http://www.securityfocus.com)或者算机急反应团队CERT)网站
http://www.cert.org)。些机制是警告社区安全患的有效方法,但关键还是要系管理可正确
其系丁。是事,因破解者也可访问的弱点跟踪服,并在可能的情况下使用那些信息破解未
丁的系。良好的系管理需要警惕、持 bug 跟踪,同时严格的系统维护可保您有一个更安全的
境。
有关保持系更新的参考〈 3
更新系
〉。
安全性指南安全性指南
8
疏忽的管理疏忽的管理
管理不能其系丁是服器安全的最大威之一。根据
管理、核、网、安全研究院
(即
SANS料,造成算机安全漏洞的主要原因是的人员维护安全,不其提供培,也没有
时间让其完成这项工作。指的是那些缺乏经验的管理以及度自信或者缺乏力的管理
有些管理无法其服器和工作站打丁,而有些不会检查来自系内核或者网流量的日志信息。
个常错误是不修改默的密或者服。例如:有些数据包使用默的管理,因数据
者假管理会在安装后立刻更改些密。如果数据管理没有更改个密,那么即使是缺乏经验
的破解者也可使用广人知的默码获数据的管理特里只是几个疏忽管理造成服器被破坏的
示例。
自身有安全自身有安全问题的服
即使最慎的机,如果选择自身就有安全问题的网,也可能成某些安全漏洞的受害者。例如:很多
的开是假在可信网中使用,一旦些服可通网使用,即其本身得不可信,则这些假
件就不存在了。
一种不安全的网那些使用不加密用名和密码认证的服Telnet FTP 就是这样的服。如果数据
包嗅探件正在程用户间的数据流量,那么这样的服名和密就很容易被截。
务还更容易成安全内名
牲品。在这类中,破解者会通愚弄网中已
破解的名称服器,将网流量重新指向其自己的机器而不是期的服器。一旦有人打开到器的
,攻者的机器就成为隐形中人,悄无声息地在程服和毫无疑心的用户间信息。使用个方
法,破解者可在服器或者用根本没有意到的情况下收集管理密和原始数据。
一个不安全的型是网文件系和信息服,比如 NFS 或者 NIS,它专门为 LAN 使用而开的,但
憾的是 WAN (用于程用在也使用。NFS 情况下没有配置任何验证或者安全机制以防止破
解者挂 NFS 共享并访问其中包括的内容。NIS 也有重要信息,网中的每台算机都必了解
信息,其中包括密和文件限,而且它文本 ASCII 或者 DBMASCII 衍生的)数据
库访问的破解者可访问中的每个帐户,包括管理员帐户在内。
情况下 Red Hat Enterprise Linux 7 布是关的。但是由于管理通常会发现使用
些服,所以慎的配置很关。有关使用安全方式定服参考 4.3 安全服>。
1.4.3. 工作站和家庭工作站和家庭 PC 安全威安全威
工作站和家庭 PC 可能比网或者服器受到攻的可能性小,但因通常都有敏感数据,比如信用卡信
息,因此它也是破解者的目。工作站可在用不知情的情况下在合作攻中被指派作破解者的
机器。因此,了解工作站的安全漏洞可免于常重新安装操作系,或者防止数据被盗。
不安全的密不安全的密
不安全的密是攻取系统访问的最简单的方法之一。有关如何在生成密码时避免常缺陷,参考
4.1.1 安全>。
有漏洞的客有漏洞的客用程序用程序
然管理可保障服器安全并行修,但并不意味着程用访问该是安全的。例如:如果
器通公共网提供 Telnet 或者 FTP ,那么攻者就可以捕过该的用名和密,然后
使用该帐户信息访问远程用的工作站。
即使使用安全协议,比如 SSH,如果程用没有即更新其客用程序,那么于某些攻,他
也是不堪一的。例如:v.1 SSH 端无法抵御 SSH 器的 X 转发。一旦它接到
器,那么攻者就可悄无声息地捕所有端通过该络执行的击键和鼠标动作。问题 v.2 SSH
中得到了解决,但也取决于是否留意什么用程序有此漏洞并根据需要更新它
[1]
1 安全安全话题话题概述
9
4.1 算机安全>中详细论述了管理和家庭用户应采取什么步限制算机工作站的安全漏洞。
1.5. 的漏洞和攻的漏洞和攻
1.1 “漏洞详细论述一些入侵者访问络资源的最常漏洞和切入点。些常漏洞的重点是解
了攻是如何行的以及管理正确保其网免受似攻
1.1. 漏洞漏洞
漏洞漏洞 描述描述
或者默使管理密空白或者使用有品供商所
定的默在硬件中非常常
比如路由器和防火,但是些服
Linux行可包含默管理者密(通
Red Hat Enterprise Linux 7 并没有品附
)。
通常与网硬件有关,比如路由器、防火
VPN 以及网NAS
置。
传统操作系,特是那些捆绑
(比如 UNIX Windows
管理建特户账户,并
将密码设为空,这样为发现该账户
意用提供了最佳切入点。
共享密安全服可因开或者测试为
的而打包默安全密。如果不更改
并将其放在互网的境中,
有同一默
所有
都可访问共享
钥资源及其所包含的敏感信息。
先配置到安全服器装置中,在无线
访问点中最常
IP 诈 远程机器会装作是您本地网中的点,
找服器弱点并安装后程序或者木
得您网络资源控制
是很困的,因它包括攻预测
TCP/IP 序列号以便与目统链
但有些工具可帮助攻者完成这样的任
相比 PKI 或者其它在 ssh 或者 SSL/TLS
中所使用加密认证的其它形式,我不建
您使用根据目统运行的使用
根据
认证
的服(比如
rshtelnetFTP 及其它)。
窃听 通窃听点之接收集通
个活跃节点的数据。
这类最可能在文本传输协议中有
效,比如 TelnetFTP HTTP 传输
程攻者必访问 LAN 中受威
以便行此。通常黑客会使用
(比如 IP 或者中人)威
LAN 中到系
防方法包括使用加密密到服
一次性密或者加密的认证防止密
您在传输过程中使用大加
密。
安全性指南安全性指南
10
弱点 攻者找到在网行的服的缺陷或
者漏洞,通过这些弱点攻者可威整个
及其所有数据,并可能威胁该
到其它系
基于 HTTP 的服,比如 CGI
命令行甚至互 shell 访问
容易受到攻的。即非特
比如 “nobody HTTP ,也可
似配置文件以及网映射等信息,或
者攻者可启动这样就可
耗尽系统资源或者其他用无法使用系
统资源。
在开测试阶段服候会有一些被
的弱点,些弱点(比如
冲溢出
者可使用任意程序的内存
从而使服者一个互命令
提示符即可允行所有任)可
者完全有管理控制。
管理员应确定不要作 root 户运行那些
,且应该注意供商或者
CERT CVE 安全性机构为程序提供的
丁会勘更新。
用程序弱点 攻者要找桌面和工作站程序(比如
件客端)的缺陷,并行任意代
,植入木以便一步破坏,或者使系
。如果被破坏的工作站剩余网
有管理特一步的攻
工作站和桌面更容易被攻工作人
没有防止或者探测这种侵害的专业
经验。有必要在安装未授权软件或者打
开不明件附件告知他可能存在
的危
可使用一些防护软件以便件客
件不会自打开或者行附件。外,
过红帽网;或者其它系管理服
更新工作站件可减轻多种安全性部署
担。
DoS
者或者一者通向目主机
(可以是服器、路由器或者工作站)
送未授数据包合攻某个机的网
或者服源。这样可迫使合法用
法使用该资源。
在美国大多数告的 DoS 案例生在
2000 年。一些有很高流量的商和政府
网站受到 ping flood 得不可用,
些攻是利用几个被破坏的系使用
带连接作 zombies,或者重新指向广播
行的。
通常会装源数据包(也会重新广播),
让调查的真得困
使用 iptables 和网入侵探
snort 过滤IETF rfc2267
点是可帮助管理追踪并阻止布的
DoS
漏洞漏洞 描述描述
[1] http://www.sans.org/security-resources/mistakes.php
1 安全安全话题话题概述
11
2 安装的安全提示安装的安全提示
当您第一次将 CD 或者 DVD 放入磁盘驱动器安装 Red Hat Enterprise Linux 7 就由安全性问题。开始就安全
配置您的系您今后外的安全性得更松。
2.1. 安全安全 BIOS
使用密 BIOS(或者与 BIOS 等的程序)以及引程序可防止未授使用可移,或者
过单模式 root 机器而对该的物理访问。您应该采用的防止此的安全工具,
取决于工作站中的信息敏感性以及机器的位置。
例如:如果是在易展中使用,且不包含任何敏感信息,那么防止此就不那么重要。但是如果在同一
易展中,某雇笔记电脑中有用未加密的 SSH ,且没有小心保管,那么就可能
重的安全泄漏,并整个公司造成无法料的失。
如果工作站位于授或者可信用可以访问的位置,那么保障 BIOS 或者引程序安全就不那么
2.1.1. BIOS
使用密护计算机的 BIOS 主要有原因 :
1.
防止更改
BIOS
如果某个入侵者可访问该 BIOS,他就可以将其从磁或者光
可以入安全模式或者模式,可以在启动随机程或者复
制敏感数据。
2.
防止系
有些 BIOS 导过程中的密。当激活 BIOS ,攻者会在 BIOS 启动
程序前被迫入密
不同算机生商提供的 BIOS 的方法不同,具体步骤请查询计算机手册。
如果您忘 BIOS ,您可以使用主板中的跳线或者断开 CMOS 接重新。因此,
可能上您的机箱。但是在尝试断开 CMOS 池前请查算机或者主板手册。
2.1.1.1. x86 平台安全平台安全
其它架使用不同的程序行那些与 x86 BIOS 基本等的低。例如:Intel® Itanium™
使用
展固件接口
EFIshell
有关在其它架中使用密护类 BIOS 程序的使用明,参考生商的解释说
2.2. 其他其他
更多有关安装的情,参考Red Hat Enterprise Linux 7 安装手册〉
[2]
[2] 不同制造商提供的系 BIOS 会有所不同,有些可能不支持任何型的密,而其它可能支持某种
型,但不支持其它型。
安全性指南安全性指南
12
3 更新系更新系
一章述了及更新系程,它包括划和配置安装安全更新的方法,用最新升包所引入的更,
并且使用 Red Hat 户门户来了解安全更新公告。
3.1. 维护维护安装的安装的
如果发现安全漏洞,了限制潜在的安全威更新受影件。如果该软件是 Red Hat
Enterprise Linux 分布在支持的件包的一部分,Red Hat 尽快布修复漏洞的更新件包。
有关特定的安全漏洞的公告常会伴有丁(或者源代)来解决问题丁会直接用于 Red Hat
Enterprise Linux 件包并且在经过测试后作更新来公布。然而,如果公告不包括丁, Red Hat
者会先和维护者共同来解决问题。一旦解决了该问题件包就会在测试后作更新来公布。
如果您系中的使用布勘更新,我烈建您尽快更新受影件包以便尽量少系潜在
漏洞的时间
3.1.1. 划和配置安全更新划和配置安全更新
所有的件都包含 bug,通常 bug 会造成漏洞让恶意用侵入您的系。未更新件包是造成电脑入侵的
共同原因。及地安装安全划能快速除被找到的漏洞,这样就不会被利用。
当安全更新可用,安排安装更新并测试。我需要使用其他的控件在布更新以及系安装更新期
的系些控件取决于每一个匹配的漏洞,但是也包括其他的防火,外部防火的使用和
置的化。
使用勘机制来修复支持件包中的 bugs。勘包含一个或者多个 RPM 件包,并伴有简单的解释说
每一个特定的勘理的问题。所有的勘都通 Red Hat 订阅订阅管理管理 分配给积订阅的客理安
问题的勘被称 Red Hat
安全建
3.1.1.1. 使用使用 Yum 的安全特征的安全特征
Yum 件包管理包含多与安全相关的特征,可以用来搜索、列表、示和安装安全勘些特征有可能
使用 Yum 来安装安全更新。
在您的系检查可用的安全有关的更新, root 行以下的命令:
~]# yum check-update --security
Loaded plugins: langpacks, product-id, subscription-manager
rhel-7-workstation-rpms/x86_64 | 3.4 kB 00:00:00
No packages needed for security; 0 packages available
注意以上命令是在非交互状行,所以它可以在脚本中自动检测是否有可用更新。当安全更新可用
命令会返回 100 的退出。当安全更新不可用则变为0 。一旦遭遇错误,它就返回 1
在模情况下,使用以下命令安装安全有关的更新:
~]# yum update --security
使用 updateinfo 子命令来示或者依照可用更新的所提供的信息。updateinfo 子命令本身接受
多命令,其中有与安全相关的使用方法。为获些命令的概述,参考 3.1 “可用安全相关的命令以及
yum updateinfo”
3.1. 可用安全相关的命令以及可用安全相关的命令以及 yum updateinfo
3 更新系更新系
13
命令命令 描述描述
advisory [advisories] 示有关一个或者多个建。使用一个或者多个建来替代
advisory
cves 示子设备的信息,关于 CVE (
弱点与揭露
)
security 或者 sec 示所有安全相关的信息。
severity 或者 sev
severity_level
在提供的 severity_level 示与安全相关的件包的信息。
3.1.2. 更新和安装更新和安装件包
当更新系中的件包,从可信源下更新是很重要的。攻者可易重建本用来解决问题的同一版本
号的件包,通不同的安全漏洞并布到互网中。如果种情况,采取例如验证针对原始 RPM 的文
件之的安全措施是无法探到漏洞。因此,只从可信来源下 RPMs 是非常重要的,例如从 Red Hat
检查软件包名以确定其完整性。
想要更多有关如何使用 Yum 件包管理器的信息,参考《帽企Linux 7 管理指南》。
3.1.2.1. 验证签验证签名的名的件包
所有 Red Hat Enterprise Linux 件包都 Red HatGPG GPG 代表 GNU 私防私防、或者
GnuPG,是用来确保分布式文件真性的免费软件包。如果验证软件包名失则软件包可能被修改,因
此就不能信任此件包。
Yum 件包管理器允所有安装和更新件包行自动验证,此的特性。了在您的系中配置
选项,在 /etc/yum.conf 配置文件中就必gpgcheck 配置指令 1
在您的文件系中,使用以下命令手动验证软件包信息。
rpmkeys --checksig package_file.rpm
参考〈 (GPG) 〉有关 Red Hat 户门户的文章,以取其他有关 Red Hat 件包
法的信息。
3.1.2.2. 安装安装名的名的件包
从您的文件系中安装验证件包(参考〈 3.1.2.1 验证签名的件包〉,取更多有关如何验证
件包的信息)。作 root 使用 yum install 命令。
yum install package_file.rpm
使用 Shell glob 即刻安装多个件包。例如,以下命令在有的目中安装所有的 .rpm 件包。
yum install *.rpm
重要重要
在安装任何安全勘之前,确保阅读包含在勘误报告中的所有具体步并依次行。参考
3.1.3 用安装更新所引入的〉以取有关勘更新所引入化的基本指令。
3.1.3. 用安装更新所引入的用安装更新所引入的
安全性指南安全性指南
14
并安装安全勘和更新后,停止使用旧的件并开始使用新件是很重要的。如何做取决于所安装件的
型。以下列表列出了件常并提供在件包升后使用更新版本的步
注意注意
通常重是保使用件最新版本的最确定的方法,但是并不常提出此要求,而且系管理
无法个操作。
用程序用程序
间应用程序可以是由系户启动的任意程序。通常此程序只有在用、脚本或者自
工具启动时才使用。
当更新种用程序后,停止系程序的所有事,并再次启动该程序以便使用更新的版
本。
内核内核
内核是 Red Hat Enterprise Linux 7 操作系的核心建。它对访问内存、理器及外围设备进
行管理,并度所有任
由于其核心角色,所以无法在不停机的情况下重 Kernel。因此只有重后方可使用 Kernel
更新版本。
KVM
当更新 qemu-kvm libvirt 件包,必停止所有的客机,重相关的虚(或者重
启动主体系)并且重机。
使用 lsmod 命令来确定从以下文件中下载哪个模kvmkvm-intel 或者 kvm-amd。然后使用
modprove -r 命令除,之后使用 modprobe -a 命令重新加受影的模。例如:
~]# lsmod | grep kvm
kvm_intel 143031 0
kvm 460181 1 kvm_intel
~]# modprobe -r kvm-intel
~]# modprobe -r kvm
~]# modprobe -a kvm kvm-intel
共享共享
共享是代码单元,例如 glibc,它可用于很多用程序和服。使用共享用程序通常在
启动时载入共享代,因此所有使用更新用程序都必停止并重
确定某个特定的的正在行的用程序,使用 lsof 命令:
lsof library
例如:确定与 libwrap.so.0 的正在行的用程序,请输入:
~]# lsof /lib64/libwrap.so.0
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
pulseaudi 12363 test mem REG 253,0 42520 34121785
/usr/lib64/libwrap.so.0.7.6
3 更新系更新系
15
gnome-set 12365 test mem REG 253,0 42520 34121785
/usr/lib64/libwrap.so.0.7.6
gnome-she 12454 test mem REG 253,0 42520 34121785
/usr/lib64/libwrap.so.0.7.6
个命令会返回所有正在行的使用 TCP 包装行主机访问控制的程序。因此,如果更新
tcp_wrappers 件包,停止并重列出的程序。
是在引导过程中启动的可保留的服器程序。系的示例包括 sshd 或者
vsftpd
只要机器行,些程序就常被保留在内存中,每更新的系件包更新之后,必
止并重可以透 root 使用systemctl 命令来完成:
systemctl restart service_name
使用您所希望重的名称来覆盖 service_name,例如 sshd
其他其他
按照以下的明,该说明是由接到以下正确更新的用程序所概括的。
帽目帽目参考《》以取在《Red Hat品文档》中的正在
Red Hat Directory 器版本。
帽企帽企管理器管理器 参考《Red Hat Enterprise Linux 7 安装指南》以取在《Red Hat
Enterprise 拟产品文档》中的正在讨论 Red Hat Enterprise 化版本。
3.2. 其他其他
如需取更多有关安全更新、安装安全更新方法、Red Hat Customer Portal帽客户门户)以及相关的主
的信息,参考以下列出的源。
安装的文安装的文
yum(8) — Yum 用于解程序包管理器的手册提供有关在您的系中使用 Yum 安装、更新以及
件包方法的信息。
rpmkeys(8) —rpmkeys 用于解释实用程序的手册释这款程序可用来验证程序包真的方法。
线线文档
Red Hat Enterprise Linux 7 管理指南》
管理指南
》解Yum 以及 rpm 程序可用来安
装、更新和除在 Red Hat Enterprise Linux 7 件包。
Red Hat Enterprise Linux 7 SELinux 和管理的指南SELinux
和管理指南
》解
SELinux
制性访问控制
机制的配置。
帽客帽客户门户户门户
帽客户门户户门户包含通往最重要源以及有关可用新内容的更新的接。
安全系和程序提供有关Red Hat安全响应团队信息以及何与之系的操作明。
安全性指南安全性指南
16
帽安全博客提供来自 Red Hat 帽安全专业的与安全有关的最新问题的文章。
2
安装的安全提示
〉描述了如何在开始段安全地配置您的系更容易行后来的其外安
置。
4.8.2 GPG 〉描述了如何作个人 GPG 定您的通
3 更新系更新系
17
4 用工具和服用工具和服化您的系化您的系
4.1. 算机安全算机安全
Red Hat Enterprise Linux 7 用来确身份的主要方法。什么密安全、工作站
以及网是那么的重要。
出于安全目的,安装程序会统进行配置,从而可使用
安全哈希算法
512SHA512)和影子密烈建
您不要更改置。
如果在安装程中取消选择影子密所有密都会以向哈希的形式保存在可 /etc/passwd 文件
中,这样就使得在离线破解攻面前得很脆弱。如果入侵者可作户访问该机器,他就可
以将 /etc/passwd 文件复制到他自己的机器中,并行密破解程序。如果文件中存在不安全的密
,那么密被破解只是时间问题
影子密可通 /etc/shadow 文件中保存密哈希消除型的攻文件只能由 root 户读取。
就迫使潜在的攻者要登录该机器中的程服(比如 SSH 或者FTP程密破解。种暴力破解
速度会慢很多,并且会留下明的痕迹,因在系文件中会出几百条失录尝试。当然,如果攻者在
间对使用薄弱密的系统进行攻,那么他可能在黎明前就可访问权限,并修改日志文件以掩盖其踪
迹。
除要考格式和存外,内容也是要考问题。用如要保帐户不被破解,最重要的是大的密
4.1.1. 安全安全
4.1.1.1. 大的密大的密
建一个安全可靠的密,用户须记长比短而复的密建一个有八个字符的密,就算它
含有数字、特殊符号和大写字母,也不是个好主意。化密破解工具,例如翰开手(John The
Ripper),以便破解人也住的密
在信息中, (entropy) 表示的是不确定性的量度,与随机量有关,并以为单位来表信息量度。熵值
越高,密就越安全。根据美国国家准与技研究院(National Institute of Standards and Technology
NIST)特出版物 认证指南>(NIST SP 800-63-1Electronic Authentication Guideline),在一本收
5 万个常用密的字典里,某一密没有出现过熵值应该至少有 10 位。这样说来,一个由 4 个随机字
成的密,其熵值 40 位。一个由多个字成的密,旨在增安全性,也被称
,例如:
randomword1 randomword2 randomword3 randomword4
如果系制要求使用大写字母、数字或特殊符号,那么采用上述建的密可以易地被修改,例如修
改第一个字符大写字母,在末尾增添 "1!"。要注意这样的修改
并不能
著地增的安全性。
建密一种方法是使用密生成器。pwmake 是一个命令行程序,用于生成随机密,可由四种字符
成:大写字母、小写字母、数字和特殊符号。其功能您能够详细了解用于生成密的具体熵值。而熵值产
生于 /dev/urandom这项功能您能 指定最小熵值为 56 位,这对于不常出暴力破解的系和服
熵值已足于攻者无法直接访问哈希密文件的用程序, 64 位就足以适用于此类运用程
序。当攻者可能取直接访问哈希密限,或密被用作加密于此情况使用 80 128
位。如果您无法明确指定一个具体的熵值pwmake 将会使用默认值建一个 128 位的密行下
列命令:
pwmake 128
安全性指南安全性指南
18
然有不同的方法可以建一个安全可靠的密,但都要避免以下不明智的做法:
使用字典里的单词,外语单词,逆序单词,或使用数字。
使用少于 10 字符的密或密
使用键盘布局的系列
写下您的密
在密中使用个人信息,如出生日期、周年念日、家庭成姓名、或物名字。
在不同的机器上使用相同的密或密
建密非常重要,但合理地管理密,特于大型机中的系管理而言,也同重要。下面
的小节详细了在机中如何很好地建并管理用
4.1.1.2. 制使用制使用大的密大的密
如果一所机构拥有大量的用,那么系管理个基本选择可用于制使用大的密。他可以
建密,或是他可以户创建他自己的密,同时验证是否有足度。
户创建密,就要确保个密是好密。但随着机展,这变成了一项艰巨的任也增加了用
风险,由于他要写下他的密,因而就暴露了密
基于些原因,大多数系管理更喜欢让户创建自己的密,但极地验证这些密是否足大。在某
些情况下,管理可能会制用定期更改密,防止密码过期。
当用被要求建或更改密码时,可以使用 passwd 命令行用程序,就是PAM-检测软 (
可插入验证
Pluggable Authentication Modules
) ,可检查是否短或是否容易被破解。检查过程是由
pam_pwquality.so PAM 块执行的。
注意注意
帽企 Linux 7 中, pam_pwquality PAM 取代了 pam_cracklib原先用于帽企
Linux 6 码质检测的默。它与 pam_cracklib 使用相同的后端。
pam_pwquality 是根据一系列规则,用于检查度。其程序有个步:首先,它检查所提供的
是否能在字典中找到。如果不能,它将继续进外一些检查pam_pwquality 其他 PAM
一起堆/etc/pam.d/passwd 文件下的 部分。而自定义规则将在
/etc/security/pwquality.conf 配置文件中具体明。至于检查的完整列表,
pwquality.conf (8) 手册
4.1. pwquality.conf 中密中密检查检查的参数配置的参数配置
了能使用 pam_quality /etc/pam.d/passwd 文件下的 password 中添加以下命令行:
password required pam_pwquality.so retry=3
选择这检查有明确的要求,要每行一。例如,要求一个密度至少有8个字符,包含全部四种
字符,则须添加以下命令行到/etc/security/pwquality.conf 文档:
minlen=8
minclass=4
4 用工具和服用工具和服化您的系化您的系
19
置一个密检查检测是否有连续或重复的字符,则须 /etc/security/pwquality.conf
中添加以下命令行:
maxsequence=3
maxrepeat=3
在本例中,入的密不能含有超 3 连续字符,如abcd1234。此外,完全相同的连续字符也
不能超 3 个。
注意注意
由于root 是施行密码创规则的人,尽管有出警告消息,他也能够为自己或普通用户设置任何密
4.1.1.3. 有效期的参数配置有效期的参数配置
有效期是一个系管理用来保在机中防止不良密的技。密有效期的意思就是在指定段后
(通常 90 天),会提示用户创建新密。它的理是如果制用周期性修改其密,那么破解的密
码对与入侵者来只在有限的时间内有用。密有效期的面影是用可能需要写下些密
Red Hat Enterprise Linux 7 中有个用来指定密有效期的主要程序:chage 命令或者 管理管理
system-config-users用程序。
重要重要
帽企 Linux 7 中,影子口令是默认启用的。更多信息, 帽企 Linux 7
指南》。
chage 命令的 -M 选项指定有效的最天数。例如:要将用的密码设 90 天内有效,请执行以下
命令:
chage -M 90 <username>
在上面的命令中使用用名称替 <username>。要禁用密码过期功能,通常在 -M 选项后使用 99999
相当于 273 年多一点)。
关于 chage 命令的可使用选项的更多信息,下表。
4.1. chage 命令行命令行选项选项
选项选项 描述描述
--hesiodlhs=<lhs> 指定了从 1970 1 1 日密更改后的天数
--hesiodlhs=<lhs> 指定帐户的日期,以年-月-日的格式出。除了使用日期,
使用从 1970 1 1 日以来的天数。
--hesiodlhs=<lhs> 指定了在密码过期后,但在帐户前的非活天数。如果数 0,密
期后帐户不会被住。
-l 列出当前账户置参数。
安全性指南安全性指南
20
--hesiodlhs=<lhs> 指定了用修改密的最小天数隔。如果数值为 0
期。
--hesiodlhs=<lhs> 指定了有效密的最大天数。当此选项指定的天数加上 -d 选项指定的天数
未到当前日期,用在使用账户前修改密
--hesiodlhs=<lhs> 指定在密到期日期之前户发出警告的天数。
选项选项 描述描述
可以使用 chage 命令以互形式修改多个密码过期功能以及帐户信息。使用以下命令入互模式:
chage <username>
以下是使用个命令的示例互
~]# chage juan
Changing the aging information for juan
Enter the new value, or press ENTER for the default
Minimum Password Age [0]: 10
Maximum Password Age [99999]: 90
Last Password Change (YYYY-MM-DD) [2006-08-18]:
Password Expiration Warning [7]:
Password Inactive [-1]:
Account Expiration Date (YYYY-MM-DD) [1969-12-31]:
您可以在用首次登录时码进行参数配置,使密码过期。就可迫使用修改密
1. 置初始密。有种常用的方法可实现这个步:您可以指定默的密,或使用空密
要指定默的密则须 root 使用 shell 提示符打出下列信息
passwd username
或者,您可以分配一个空,而不要一个原始密。如果想要这样进行的使用以下命令:
passwd -d username
警告警告
尽管使用空密十分便利,却是极不安全的做法。因任何第三方都可以先行登,使用
不安全的用入系。可能的避免使用空密。如果无法不使用的一定要确
保用在未用空密码锁账户前登
2. 要迫使密即刻到期,则须 root 户运行以下命令:
chage -d 0 username
个命令会将密上次作出改的日期1970 1 1 日)时间这样,无有什么密
到期政策,它都会迫使密作出即到期一行
在用 初次登录时立即会提示入新密
可以使用 管理者管理者 程序建密码过期策略,如下。注意:您需要管理权执
4 用工具和服用工具和服化您的系化您的系
21
1. 面板中的 ,指向 管理管理 并点 示用管理器。您可在 shell 提示符后
入命令 system-config-users
2. 标签,并选择列表中需要的用
3. 工具中的 选项选项示用属性对话框(或者选择文件文件的首选项选项)。
4. 信息 标签,并选择 用密码过 单选框。
5. 多少天前需要更改多少天前需要更改 字段入所需,并点 确定确定
4.1.2. 定未激活的用定未激活的用户账户户账户
4.1.3. 录尝试录尝试定用户账户户账户
帽企 Linux 6 中, pam_faillock PAM 管理员锁定在指定次数内登录尝试的用
账户。限制用录尝试的次数主要是作一个安全措施,旨在防止可能针对获取用账户的暴力破
解。
pam_faillock ,将登录尝试的数据存在 /var/run/faillock 下每位用的独立文
件中。
注意注意
在登录尝试的文件中,命令行的序很重要。在此序中有任何改都会致所有用户账户
定。当使用了 even_deny_root 选项,也会 root 户账户定。
根据些步骤对账户锁行参数配置:
1. 实现在三次失败尝试后,任何非 root 户进定,并在十分对该则须添加以下
命令行到 /etc/pam.d/system-auth 文件和/etc/pam.d/password-auth 文件中的 auth
段:
auth required pam_faillock.so preauth silent audit deny=3
unlock_time=600
auth sufficient pam_unix.so nullok try_first_pass
auth [default=die] pam_faillock.so authfail audit deny=3
unlock_time=600
2. 在前一步指定的个文件中的 account 区段中添加以下命令行:
account required pam_faillock.so
3. 让账户锁定也适用于 root 则须 /etc/pam.d/system-auth 文件和
/etc/pam.d/password-auth 文件中的pam_faillock 条目里添加 even_deny_root 选项
auth required pam_faillock.so preauth silent audit deny=3
even_deny_root unlock_time=600
auth sufficient pam_unix.so nullok try_first_pass
auth [default=die] pam_faillock.so authfail audit deny=3
even_deny_root unlock_time=600
auth sufficient pam_faillock.so authsucc audit deny=3
even_deny_root unlock_time=600
安全性指南安全性指南
22
john 在前三次登后,尝试第四次登录时,他的账户在第四次尝试中被定:
[yruseva@localhost ~]$ su - john
Account locked due to 3 failed logins
su: incorrect password
一个用即使在数次登之后,其账户仍未被定,则须 /etc/pam.d/system-auth
/etc/pam.d/password-auth 中的 "first call of" pam_faillock 之前添加以下命令行。也可以用user1,
user2, user3 代替实际名。
auth [success=1 default=ignore] pam_succeed_if.so user in user1:user2:user3
看每个用尝试次数,则须 root 户运行以下命令行:
[root@localhost ~]# faillock
john:
When Type Source
Valid
2013-03-05 11:44:14 TTY pts/0
V
要解一个用账户则须 root 户运行以下命令行:
faillock --user <username> --reset
当使用 authconfig 功能对验证配置参数行修改 authconfig 功能的置参数会覆盖 system-auth
件和 password-auth 文件。要同使用配置文件和authconfig ,您必使用以下步骤对账户锁行参数
配置:
1. 建以下符号接:
~]# ln -s /etc/pam.d/system-auth /etc/pam.d/system-auth-local
~]# ln -s /etc/pam.d/password-auth /etc/pam.d/password-auth-local
2. /etc/pam.d/system-auth-local 文件含有以下命令行:
auth required pam_faillock.so preauth silent audit deny=3
unlock_time=600 include system-auth-ac
auth [default=die] pam_faillock.so authfail silent audit
deny=3 unlock_time=600
account required pam_faillock.so
account include system-auth-ac
password include system-auth-ac
session include system-auth-ac
3. /etc/pam.d/password-auth-local 文件含有以下命令行:
auth required pam_faillock.so preauth silent audit deny=3
unlock_time=600 include password-auth-ac
4 用工具和服用工具和服化您的系化您的系
23
auth [default=die] pam_faillock.so authfail silent audit
deny=3 unlock_time=600
account required pam_faillock.so
account include password-auth-ac
password include system-auth-ac
session include system-auth-ac
关于 pam_faillock 不同配置选项的更多信息, pam_faillock(8) 手册
4.1.4. 话锁话锁
在每天的操作中,用可能会因一些原因需离开他的工作站,使得工作站无人守。可能会者有物
访问机器的机会,尤其在物理安全措施不完的情况下(参 1.2.1 物理控制)。问题笔记
电脑中尤突出,因的便携性影了其物理安全。您可以通利用会话锁定来风险。会话锁
的特征就是除非入了正确的密,否禁止访问
注意注意
定屏幕,而不是行注一做法的主要优势是允户进程(例如文件传输)持续进行。而注
会停止程。
4.1.4.1. 使用使用 vlock 定虚定虚控制台控制台
可能也需要定虚控制台。可以通使用一个名 vlock 用程序来实现。要安装用程序,
则须 root 户执行以下命令:
~]# yum install vlock
安装之后,可以通使用 vlock 命令,无需其他任何参数,任何控制台会话进定。定当前
的虚控制台会的同,仍允许访问其他虚控制台。要禁止访问工作站所有的虚控制台,则须执
以下命令:
vlock -a
在本例中, vlock 定了当前活的控制台,而 -a 选项则是防止切到其他虚控制台。
其他信息 vlock(1) 手册
重要重要
那些与 vlock 版本有关的问题仍存在于当前的 Red Hat Enterprise Linux 7
个程序目前不允使用 root 码对控制台行解。其他信息可 BZ#895066
定控制台并不能清除滚动控制台屏幕冲区,但允任何人物理访问工作台,看原先在控制台
出的命令和任何所示的出内容。更多信息 BZ#807369
安全性指南安全性指南
24
4.2. 控制控制 root 访访问
当管理家庭机器 root 或者使用 setuid 程序得有效 root ,比如 sudo 或者 su
行一些任setuid 程序是使用程序有者的用 IDUID行操作,而不是用操作程序。这样的程
序可在详细列表的有者部分的 s 表示,如以下示例所示:
~]$ ls -l /bin/su
-rwsr-xr-x. 1 root root 34904 Mar 10 2011 /bin/su
注意注意
s 可以是大写也可以是小写。如果是大写,意味着没有定基本限。
然而,于机的系管理而言,必决定此机的用户应有多大的管理访问权访问机器。通常仅为 root
所能行的一些操作,如重和安装可移媒体,通一个名 pam_console.so PAM ,可允
首位登物理控制台的用户进行操作。但是,其他重要的系管理任,如网参数更、新鼠的参
数配置、或网络设备的安装,些都有管理限才能行操作。因此,系管理决定用户应有多大的
访问
4.2.1. 不允不允 root 访问访
如果管理为总总理由认为 root 不妥,当泄露 root ,且不允
程序密护进级别 1 模式(有关此话题的更多信息, 4.2.5 程序的
>)。
以下有四种不同的方式能管理一步确保禁止 root
root shell
要防止用 root 直接登,系管理可将 root 账户 shell 参数置到 /etc/passwd
文件下的 /sbin/nologin
4.2. 禁用禁用 root shell
效果效果 不不影
禁止访问 root shell 或将任何此类尝试载入日
志。禁止以下程序访问 root 账户
login
gdm
kdm
xdm
su
ssh
scp
sftp
有些程序无需 shell ,如文件传输协议 FTP
File Transfer Protocol)客端、件客
和很多 setuid 程序。
禁止以下程序访问 root
账户
sudo
FTP clients
Email clients
禁止通禁止通任何控制台任何控制台设备 (tty) root 访问访问
一步限制访问 root 账户,管理可以通过编辑 /etc/securetty 文件在控制台禁止 root
。此文件列出了 root 的所有设备。如果此文件不存在, root 可以通
任何通信设备进行登,无是通控制台是通原始网接口。十分危,因可以作
4 用工具和服用工具和服化您的系化您的系
25
root Telnet 的机器,也就是通文本中行密码传输
在默情况下,Red Hat Enterprise Linux 7 /etc/securetty 文件只允 root 物理
接到机器的控制台。要防止 root 则须 root shell 提示符打出以下命令,
此文件的内容:
echo > /etc/securetty
要使 securetty 支持 KDM GDM XDM 管理器,则须添加以下命令行:
auth [user_unknown=ignore success=ok ignore=ignore default=bad]
pam_securetty.so
添加到以下列出的文件中:
/etc/pam.d/gdm
/etc/pam.d/gdm-autologin
/etc/pam.d/gdm-fingerprint
/etc/pam.d/gdm-password
/etc/pam.d/gdm-smartcard
/etc/pam.d/kdm
/etc/pam.d/kdm-np
/etc/pam.d/xdm
警告警告
空白的 /etc/securetty 文件
能防止 root 户远程使用 OpenSSH 工具套件登
认证前无法打开控制台。
4.3. 禁用禁用 root
效果效果 不不影
控制台或者网防止 root 账户访问
防止以下程序访问 root 账户
login
gdm
kdm
xdm
可打开 tty 的其他网
有些程序无需作 root ,但可通
setuid 或其他途径完成管理任
以下
程序访问 root 账户
su
sudo
ssh
scp
sftp
禁止禁止 root SSH
要防止 root SSH 协议则须编辑 SSH 护进程的配置文件
/etc/ssh/sshd_config,且更以下命令行:
安全性指南安全性指南
26
#PermitRootLogin yes
将其改
PermitRootLogin no
4.4. 禁止禁止 Root SSH
效果效果 不不影
工具的 OpenSSH 套件防止 root 访问
止以下程序访问 root 账户
ssh
scp
sftp
有些程序并非 OpenSSH 工具套件的一部分。
使用使用 PAM 限制限制 root 访访问
/lib/security/pam_listfile.so PAM 在拒特定账户方面提供了极大的灵活
性。管理可用此模来引用一份不允的用。要限制 root 访问则须编辑
/etc/pam.d/ 下的目文件,且确保身份验证是需要使用 pam_listfile.so
The following is an example of how the module is used for the vsftpd FTP server in the
/etc/pam.d/vsftpd PAM configuration file (the \ character at the end of the first line is not
necessary if the directive is on a single line):
auth required /lib/security/pam_listfile.so item=user \n
sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
这样 PAM 参考 /etc/vsftpd.ftpusers 文件,并所有列出的用绝访问该。管理
可更改个文件的名称,且可每个服保存独立的列表,或者使用一中央列表拒绝访问多个服
如果管理想要拒绝访问多个服,可在 PAM 配置文件中添加似的行,比如 /etc/pam.d/pop
/etc/pam.d/imap 为电件客端添加,在 /etc/pam.d/ssh SSH 端添加。
关于 PAM 的更多信息, /usr/share/doc/pam-<version>/html/ 下的《 Linux-
PAM
管理指南
》。
4.5. 使用使用 PAM 来禁用来禁用 root
4 用工具和服用工具和服化您的系化您的系
27
效果效果 不不影
PAM 检测软件能禁止 root 访问。禁
止以下服务访问 root 账户
login
gdm
kdm
xdm
ssh
scp
sftp
FTP clients
Email clients
任何 PAM 检测
PAM 无法识别的程序和服
4.2.2. root 访问访
如果机中的用是可信且具有算机知,那么允 root 访问就不是什么问题。根据用 root
访问意味着个人用理一些次要活,比如添加设备或者配置网接口,那么可管理员处理网
全和其它重要问题
一方面,个人用 root 访问致以下问题
机器错误配置
具有 root 访问的用错误配置其机器,并需要帮助方可解决问题。更有甚者他
在不知情的情况下开安全漏洞。
行不安全的服
root 访问的用可能会在其机器中行不安全的服,比如 FTP 或者 Telnet,并
可能名和密码处于危些服可通文本个信息。
root
件附件
Linux 有影的病毒然少,但确存在。但只有在作 root 户运
行它们时才有威
保持审计线索完整
root 账户经多个用所共享,如此一来就有多个系管理可以
,所以就无法弄清在一固定时间内究竟是个用 root 。使用独登录时,用所登账户
以及用来表示会跟踪目的的唯一将被放入任务结构,而户启动的每一个程序的父类别。当使
用并录时,唯一就可以用于特定登的跟踪行。当一个行引起了审计事件,那么就记录下登
账户以及与唯一的会。使用 aulast 命令可些登和会aulast 命令中的 --proof
选项可用于表示一个特定的 ausearch 查询,以便隔离由一个特定会话产生的可审计事件。关于审计
的更多信息, 5
统审
>。
4.2.3. 限制限制 root 访访问
管理是希望允只通 setuid 程序访问,而不是完全拒绝访问 root ,例如 su sudo。关于
su sudo 的更多信息,Red Hat Enterprise Linux 7 管理指南 》和 su(1) sudo(8)
手册
4.2.4.
当用 root 录时,无人看管的登可能会造成重大的安全风险。要降低风险,您可以配置系
实现在一段时间后自
1. 确保 screen 工具包已安装。您可以作 root 过运行以下命令来实现
yum install screen
安全性指南安全性指南
28
关于如何在 Red Hat Enterprise Linux 7 安装工具包的更多信息,Red Hat Enterprise
Linux 7 管理》。
2. root,在 /etc/profile 文件的开添加以下命令行来确保此文件的程不被中断:
trap "" 1 2 3 15
3. /etc/profile 文件的尾添加以下命令行,以实现每次登控制点或程控制台就
screen
SCREENEXEC="screen"
if [ -w $(tty) ]; then
trap "exec $SCREENEXEC" 1 2 3 15
echo -n 'Starting session in 10 seconds'
sleep 10
exec $SCREENEXEC
fi
注意,每当一个新的会话启动时,就会示一条信息,用户则等待十秒。要启动前的
等待时间则须 sleep 命令后改
4. /etc/screenrc 配置文件中添加以下命令行,来实现在不活周期后关 screen
idle 120 quit autodetach off
时间的限制 120 秒。要个限制时间则须 idle 指令后改
或者您可以通使用以下命令行来配置系,以实现仅锁定会
idle 120 lockscreen autodetach off
种方式将要求使用密来解
更将在下一次用统时生效。
4.2.5. 程序的保程序的保
使用密 Linux 程序的主要原因如下:
1.
防止模式
如果攻者可将系模式,他就可以自 root ,而不会
被提示其 root
警告警告
不建过编辑 /etc/sysconfig/init 文件下的 SINGLE 参数,来实现禁止用密码访问单
模式。 者可以通 GRUB 2 kernel 命令行指定一个自定的初始命令(使用
init= 参数)来跳。如《Red Hat Enterprise Linux 7 管理指南》所介,推荐
使用密 GRUB 2 程序。
2.
禁止访问
GRUB 2
控制台
如果机器使用 GRUB 2 其引程序,攻者可使用 GRUB 2
器界面来改其配置,或使用 cat 命令来收集信息。
4 用工具和服用工具和服化您的系化您的系
29
3.
禁止访问不安全的操作系
如果是双重引,攻者可以在启动时选择操作系,例如 DOS
就可忽略访问控制和文件限。
Red Hat Enterprise Linux 7 Intel 64 AMD 64 平台上使用 GRUB 2 程序。关于 GRUB 2 详细
料,Red Hat Enterprise Linux 7 管理指南》。
4.2.5.1. 不允不允交互式交互式启动
启动顺序的开 I ,可允您交互式启动。在交互式启动中,系会提示您逐一启动。然
而,可能会致那些通物理访问您系的攻者禁用安全相关的服,以及访问限。
要防止用交互式启动则须 root 禁用 /etc/sysconfig/init 文件下的 PROMPT 参数:
PROMPT=no
4.3. 安全服安全服
然用户访问管理控制管理是个重要问题,但些网络处于活态对任何一位管理以及
Linux 操作者来都更重要。
Red Hat Enterprise Linux 7中的很多服似网器。如果在一个机器上行网,那么服
用程序(亦称 daemon),就会听一个或者多个网端口的接。些服器被视为潜在的攻手段。
4.3.1. 风险
Linux 造成很多危。以下是一些主要问题列表:
DoS
向服务发出大量求,拒无法使用,因它会尝试记录
并回每个求。
分布的拒
DDoS
一种 DoS 击类型,可使用多台被入侵的机器(常是几千台或者更
多)某个服务执合攻,向其送海量求并使其无法使用。
脚本漏洞攻
如果某台服器使用脚本行服器端作,网器通常这样做,那么破解者就可以
那些没有正确写的脚本。些脚本漏洞攻击导存溢出,或者允者更改系中的文件。
存溢出攻
接到特端口1023 的服器必管理用行。如果用程序有可利用的
存溢出,那么攻者就可作为运该应用程序的用户访问。因有可利用的存溢出存在,破解者可
使用自工具来识别有漏洞的系,并在访问后,使用自工具套件保持其对该访问
注意注意
Red Hat Enterprise Linux 7 中可使用 ExecShield 冲溢出漏洞的威是可行内存片段和
,由 x86 兼容的唯一或者多理器内核支持。ExecShield 可通将虚内存分成可行片段
以及不可行片段降低冲溢出的风险。所有尝试执行可行片段之外程序代(比如存溢出漏洞注
入的意代)可触片段失止。
Execshield 支持
禁止
(NX) AMD64 平台的技 eXecute Disable (XD) Itanium 上的技
Intel® 64 些技 Execshield 合作可防止意代在有 4KB 行代码单位的虚
的可行部分行,降低来自存溢出漏洞的攻击风险
安全性指南安全性指南
30
重要重要
要限制通络进行攻应该将所有不使用的服
4.3.2. 识别识别并配置服并配置服
要提高安全性,默 Red Hat Enterprise Linux 7 中安装的大多数服。但有些是例外:
cups — Red Hat Enterprise Linux 7 的默打印服器。
cups-lpd 用打印服器。
xinetd控制与一系列下接的超器,比如 gssftp telnet 器。
sshd — OpenSSH 器,是 Telnet 的安全替代品。
在决定是否要保持,最好根据常,并避免冒任何风险。例如:如果无法使用打印机,那就不
cups 继续运行。同也适用于 portreserv。如果您没有挂 NFSv3 卷或者使用 NISypbind
),则应该禁用 rpcbind检查哪些可用的网可以在开机时启动是不的。我推荐还应该检查哪
些端口已打开并在听。 4.4.2 验证使用听的端口
4.3.3. 不安全的服不安全的服
无疑,任何网都是不安全的。就是什么要关不使用的服是如此的重要。我会常规发现并修
漏洞,些工作更新与网有关的件包非常重要。 3
更新系
>。
某些网络协议本身就比其它协议更不安全。协议包含一些服
以不加密的方式在网传输名和密
很多老的协议,比如 Telnet FTP,它们对认证
加密,尽量避免使用。
以不加密方式传输敏感数据
很多协议在网络间传输数据不加密。协议包括 TelentFTPHTTP
SMTP。很多网文件系,比如 NFS SMB 也以不加密的方式在网络间传输信息。用在使用
协议时任限制要传输的数据型。
本身就不安全的服示例包括 rloginrsh telnet、以及vsftpd
所有程登 shell 程序 (rloginrsh 以及 telnet) 避免使用以支持 SSH
4.3.10 保障 SSH” 〉有关 sshd
FTP 并不象 shell 天生安全有威,但需要小心配置并 FTP 器以免出问题。有关保
FTP 器安全的 4.3.8 FTP 安全
小心使用并在防火后使用的服包括:
auth
nfs-server
smb 以及 nbm (Samba)
yppasswdd
ypserv
ypxfrd
4 用工具和服用工具和服化您的系化您的系
31
有关保安全的更多信息, 4.4 安全访问〉。
4.3.4. 保障保障 rpcbind
rpcbind NIS NFS RPC 务进动态端口分配的守护进程。它的认证机制比薄弱,并可以
其控制的服分配大范的端口。因此很其安全。
注意注意
NFSv4 不再需要 rpcbind ,所以保障 rpcbind 安全只影 NFSv2 NFSv3 行。如果您要
NFSv2 或者 NFSv3 器,就需要rpcbind,且在以下章用到 rpcbind
如果 RPC 遵守以下基本规则
4.3.4.1. 使用使用 TCP Wrapper rpcbind
TCP Wrapper 没有内嵌的认证形式,所以使用 TCP Wrapper 限制些网或者主机可以访问 rpcbind
很重要。
外,限制访问时
使用 IP 地址。由于通使 DNS 中毒和其它方法可以造主机名,所以
免使用主机名。
4.3.4.2. 使用防火使用防火 rpcbind
一步限制访问 rpcbind ,最好是为该器添加 firewalld 规则,并限制具体网访问
以下是 firewalld Rich Text 命令的个示例。第一个是实现从网 192.168.0.0/24 111 端口(rpcbind
使用的端口)的 TCP 接的示例。第二个是实现从本地主机到同一端口的 TCP 接的示例。弃所有其
它数据包。
~]# firewall-cmd --add-rich-rule='rule family="ipv4" port port="111"
protocol="tcp" source address="192.168.0.0/24" invert="True" drop'
~]# firewall-cmd --add-rich-rule='rule family="ipv4" port port="111"
protocol="tcp" source address="127.0.0.1" accept'
地,要限制 UDP 流量,则须使用以下命令:
~]# firewall-cmd --add-rich-rule='rule family="ipv4" port port="111"
protocol="udp" source address="192.168.0.0/24" invert="True" drop'
注意注意
--permanent 添加到 firewalld Rich Text 命令中,以实现永久置。有关行防火的更多信
息, 4.5 使用防火 〉。
4.3.5. NIS 安全安全
信息服
” (NIS) 是一个 RPC ,亦称之 ypserv 可与 rpcbind 及其它相关服一同使用,向自
称在其域中的所有算机布用名、密以及其它敏感信息映射。
安全性指南安全性指南
32
NIS 器由用程序成。它包括以下的用程序:
/usr/sbin/rpc.yppasswdd也称 yppasswdd 个守护进程允更改其 NIS
/usr/sbin/rpc.ypxfrd也称 ypxfrd 个守护进负责 NIS 映射传输
/usr/sbin/ypserv NIS 器守护进程。
就当今的准而言, NIS 在某种程度上并不安全。它没有主机认证机制,且所有通传输都是不加密
的,包括哈希密。因此置使用 NIS 的网络时,要特小心。事上, NIS 的默配置本身就不安全,
情况得更
任何想要 NIS 器的人先要保障 rpcbind 的安全,正如在〈 4.3.4 保障 rpcbind”〉中概
括的那,然后解决以下的问题,比如网络计划。
4.3.5.1. 划网
由于 NIS 络传输敏感信息加密,所以在防火后,且在隔离和安全的网行就非常重要。使
用不安全的网络传输 NIS 信息,无都有被截风险划网有助于防止重的安全漏洞。
4.3.5.2. 使用使用似密似密 NIS 域名和主机名域名和主机名
只要用知道 NIS 器的 DNS 主机名和 NIS 域名,那么在 NIS 域中的任何算机都可以在未经认证的情况
下使用命令从服器中提取信息。
例如:如果有人是从笔记电脑连接到网或者从外部侵入(并要嗅探内部 IP 地址),那么以下命令就可揭
/etc/passwd 映射:
ypcat -d <NIS_domain> -h <DNS_hostname> passwd
如果个攻者是 root ,那么他就可通以下命令 /etc/shadow 文件:
ypcat -d <NIS_domain> -h <DNS_hostname> shadow
注意注意
如果使用 Kerberos ,那么 /etc/shadow 文件就不会存在 NIS 映射中。
者更难访问 NIS 映射,则须让 DNS 主机名生成一个随机字符串 ,比如
o7hfawtgmhwg.domain.com。同地,也可建一个
不同的
随机 NIS 域名。访问该 NIS
得更加困
4.3.5.3. 编辑编辑 /var/yp/securenets 文件文件
如果 /var/yp/securenets 文件是空白文件,或是根本不存在(默安装后就是种情况),那么 NIS
听所有网。首先要做的就是在文件中添加子网掩/络对这样一来 ypserv 只会响应来自对应
求。
以下是 /var/yp/securenets 文件的条目示例:
255.255.255.0 192.168.0.0
4 用工具和服用工具和服化您的系化您的系
33
警告警告
首次启动 NIS ,一定要有已生成的 /var/yp/securenets 文件。
个技并不提供 IP 嗅探式攻的保,但至少可以限制 NIS 器提供服的网
4.3.5.4. 分配静分配静端口并使用端口并使用 Rich Text 规则
所有与 NIS 的服器都可以分配到指定的端口,rpc.yppasswdd 除外护进程允更改其登
。其它 NIS 器守护进 rpc.ypxfrd ypserv 分配端口,就可允许创建防火墙规则,以
便一步防止入侵者破坏 NIS 器守护进程。
要做到一点,怎行在 /etc/sysconfig/network 中添加以下命令行:
YPSERV_ARGS="-p 834"
YPXFRD_ARGS="-p 835"
以下 rich text firewalld 规则可用于定服器用些端口听的网
~]# firewall-cmd --add-rich-rule='rule family="ipv4" source
address="192.168.0.0/24" invert="True" port port="834-835" protocol="tcp"
drop'
~]# firewall-cmd --add-rich-rule='rule family="ipv4" source
address="192.168.0.0/24" invert="True" port port="834-835" protocol="udp"
drop'
就是,如果求来自 192.168.0.0/24,那么服器就只可接到 834 835 端口。第一规则用于
TCP ,第二规则用于 UDP
注意注意
有关用 iptables 命令行防火的更多信息,情参 4.5 使用防火〉。
4.3.5.5. 使用使用 Kerberos 认证
NIS 用于认证操作,其中要考问题是,无机器,/etc/shadow 映射上的哈希密
络进送。如果入侵者可以访问 NIS 域或者探流量,那么他就可以收集用名以及哈希密
。在有充足时间的情况下,密程序可以猜对较弱的密,那么攻者就可以访问上的有效
Kerberos 使用密加密,那么就不用通络发送哈希密,所以系就更加安全。关于 Kerberos 的更
多信息, Linux域身份,认证,策略指 〉。
4.3.6. NFS 安全
安全性指南安全性指南
34
重要重要
NFS 流量可通使用不同版本的 TCP 送,但它 NFSv3 下使用,而不是 UDP ;在使用
NFSv4 NFS 流量是必要的。所有版本的 NFS 都支持 Kerberos 和分组认证,作
RPCSEC_GSS 内核模的一部分。因 Red Hat Enterprise Linux 7 支持 NFSv3 使用 rpcbind,所以
有关 rpcbind 信息也包括在内。
4.3.6.1. 划网
NFSv2 NFSv3 传统上来,不能安全地传输数据。在所有版本的 NFS 都有能力使用Kerberos 的普通
文件系统进认证(且选择性加密)。 NFSv4 下,可以使用Kerberos;在 V2 V3 下,定文件和
文件仍无法使用 Kerberos 。当使用 NFSv4 ,如果客户处 NAT 或者防火的保下,那么可能会关
。关于如何使用 NFSv4.1 NAT 和防火行授的具体信息,帽企Linux7
管理手册》。
4.3.6.2. 保障保障 NFS 载选项载选项
帽企 Linux 7 存管理手册详细 /etc/fstab 文件中 mount 命令的使用。从安全管理的角
度来得注意的是, /etc/nfsmount.conf 详细讲解了 NFS 载选项可用于定客
4.3.6.2.1. 审查审查 NFS
警告警告
只能出整个文件系出文件系的子目一个安全问题。因某些情况,客可能会
文件系出的子目取文件系中未出的目 exports(5) 手册中的子树检
)。
使用 ro 选项可使文件系统导出的属性在任何候都会少可文件系统进行写入操作的
数量。只有在明确要求的情况下,才能使用rw 选项。更多信息, exports(5) 的手册。例如,
写入访问会加大符号接攻风险包括临时,如/tmp /usr/tmp
rw 选项录时,要避免全域可写,在任何候都可降低风险。就像某些用程序以明文存密
存加密弱的密出主目也被视为风险的操作。审查和改进应用代可以风险。一
些用没有在他 SSH 定密,因此也意味着主目存在风险制使用密或者使用
Kerberos 可以风险
限定只有需要访问权限的客才能出目 NFS 器上使用 showmount -e 命令来审查该
出的内容。出没有明确需求的任何内容。
勿使用 no_root_squash 选项,并且审查现有的安装程序,以确保并未使用该选项。更多信息,
4.3.6.4 勿使用 no_root_squash 选项〉。
secure 选项是服器端选项,用于限定只能从保留 端口出。默情况下,服器只允
保留 端口(端口号不超 1024行通,因为传统上来,客只允““可信(例如内
NFS )来使用些端口。然而,因多网上,任何人要成某些客端的 root 并不。因此,
假定保留端口所行的通讯拥有特于服器而言,通常都是不安全的。因此,限制保留端口具有有限的
;最好是依靠 kerneros ,防火,以及限定只有特定客才能出。
4 用工具和服用工具和服化您的系化您的系
35
如果可能的,大多数的客仍使用保留端口。然而,保留端口是有限的源,因此客(尤其是那些有大
NFS 的客)可以选择编号更高的端口。Linux 可以通使用 noresvport 载选项来完成。如果
您希望在出目中允作,那么您可以通insecure 选项来完成。
禁止用器是一个很好的做法。在审查 NFS 器的上述,也审查访问入服器的人
和内容。
4.3.6.2.2. 审查审查 NFS
使用 nosuid 选项来禁止使用 setuid 程序。nosuid 选项可禁用 set-user-identifier set-group-
identifier 位。可阻止程用过运 setuid 程序取更高的特。在客端和服器端使用该选
noexec 选项可禁止客端上的所有可行文件。使用此选项可防止用无意中行了文件系中所共享的的
文件。于大多数的(即使不是全部的)文件系而言,nosuid noexec 选项都是选项
使用 nodev 选项可防止客端将device-files” 硬件设备进理。
resvport 选项是客端挂载选项secure 是相的服器端选项上述明)。它限定只有使
保留端口才能行通。保留端口或是知名端口会保留或程序,比如 root
会促使客使用保留的源端口与服行通
在,所有版本的 NFS 都支持挂 Kerberos 认证个挂载选项 sec=krb5
NFSv4 支持用 Kerberos 行挂,通使用 krb5i 来确保完整性,使用 krb5p 来确保私保。在使用
sec=krb5 行挂载时,上述些都会使用到,但需要在 NFS 器上配置。有关出目man 5
exports)的更多信息,手册
NFS 手册man 5 nfs)中,安全注意事 部分解了在 NFSv4 中增安全的问题,以及包含了所有
NFS 详细的挂信息。
4.3.6.3. 注意注意错误
NFS 器通过查阅 /etc/exports 文件,决定些文件系以及将些目录导出到些主机中。编辑
此文件小心,不要添加多余的空格。
例如,/etc/exports 文件中的以下命令行可实现与主机 bob.example.com 共享 /tmp/nfs/
限。
/tmp/nfs/ bob.example.com(rw)
一方面,由于主机名的一个空格,使 /etc/exports 中的以下命令行可实现与主机 bob.example.com
共享同一目的只读权限,同时实现
所有人
共享它的/写限。
/tmp/nfs/ bob.example.com (rw)
最好使用 showmount 命令检查所有已配置的 NFS 共享,以确定共享的内容:
showmount -e <hostname>
4.3.6.4. 勿使用勿使用 no_root_squash 选项选项
情况下,NFS 共享会将 root 更改一个非特户帐户,即 nfsnobody 会将所有 root
建的文件的所有者更改 nfsnobody可防止用 setuid 置程序的上
安全性指南安全性指南
36
如果使用 no_root_squash,那么 root 就可以更改共享文件系中的任何文件,并留下感染木
用程序其它用行。
4.3.6.5. NFS 防火配置配置
NFSv4 帽企 Linux 7 NFS 版本,且它要求只TCP 开放 2049 端口。如果使用 NFSv3 ,那么
就需要四个外的端口,如下述明。
NFSv3配置端口配置端口
NFS 使用的端口是由 rpcbind 动态分配,在建防火墙规则时,可能会造成问题。要个步则须
使用 /etc/sysconfig/nfs 文件指定要使用的端口:
MOUNTD_PORT 用于挂 TCP UDP 端口(rpc.mountd
STATD_PORT用于 TCP UDP 的端口(rpc.statd
LOCKD_TCPPORT用于 nlockmgr TCP 端口(rpc.lockd
LOCKD_UDPPORT用于 nlockmgr UDP 端口(rpc.lockd
指定的端口号绝对不能用于其它服您的防火墙进行配置,可指定端口号以及 TCP UDP 2049 端口
NFS)。
NFS 器上 rpcinfo -p 命令,可看所使用的端口和 RPC 程序。
4.3.7. Apache HTTP 器安全器安全
Apache HTTP 器是 Red Hat Enterprise Linux 7 中最定、最安全的服之一。有很多可用的选项和技
可用于保 Apache HTTP 器安全 由于数量多,在此就不行深入探。以下小节简要介了在
Apache HTTP 可采用的操作。
在投入生
之前
,一定要核所有脚本都可如期在系行。外,确保只有 root 才有限写入
含脚本或者 CGI 的任何目。要做到一点,则须 root 户运行以下命令:
chown root <directory_name>
chmod 755 <directory_name>
管理员应谨慎使用以下配置选项(在 /etc/httpd/conf/httpd.conf 行配置):
FollowSymLinks
此指令认启用,因此在建符号接到网器的文档 root 录时慎重行事。例如,
/提供符号接。
Indexes
然此指令认启用,但并非必要。要防止访问浏览在服器上的文件,则须删个指令。
UserDir
此指令可确中用户帐户是否存在,所以要默禁用 UserDir 指令。要在服器上用用
名目录浏览则须使用以下指令:
4 用工具和服用工具和服化您的系化您的系
37
UserDir enabled
UserDir disabled root
些指令用于 /root/ 之外的所有用,可激活其用录浏览这一功能。要在禁用帐户列表
中添加用则须 UserDir disabled 命令行添加以空格分隔的用列表。
ServerTokens
ServerTokens 指令控制着服响应标题头信息,信息会送回。它包括不同的信息,
使用下列参数,可以行自定操作:
ServerTokens Full(默认选项提供所有可用信息(OS型以及所使用的模),例
如:
Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
ServerTokens Prod 或者 ServerTokens ProductOnly 提供以下信息:
Apache
ServerTokens Major提供以下信息:
Apache/2
ServerTokens Minor提供以下信息:
Apache/2.0
ServerTokens Min 或者 ServerTokens Minimal提供以下信息:
Apache/2.0.41
ServerTokens OS提供以下信息:
Apache/2.0.41 (Unix)
使用 ServerTokens Prod 选项这样一来,潜在攻者就无法取关于您系的任何有用信
息。
重要重要
IncludesNoExec 指令。默情况下,
器端嵌入
SSI)模无法行命令。除非
必要,建您不要更改置,因它可能会允者在系行命令。
httpd 模式模式
在某些情况下,最好除特定的 httpd 模式,以限制 HTTP 器的功能。要实现这一目的,只须为整个命
令行添加注命令行用于加 /etc/httpd/conf/httpd.conf 文件中您想要除的模。例如,要
除代理模则须过给下列命令行新增字符,下列命令行添加注
安全性指南安全性指南
38
#LoadModule proxy_module modules/mod_proxy.so
注意, /etc/httpd/conf.d/ 包含了可用于加的配置文件。
httpd 以及 SELinux
有关信息, 帽企 Linux 7 SELinux 和管理》。
4.3.8. FTP 安全
文件传输协议
FTP)是一个比旧的 TCP 协议,用来通络传输文件。因器所理的所有传输
包括用户认证,都是未加密,所以它被认为是一个不安全的协议,且应该谨慎地行配置。
Red Hat Enterprise Linux 7 提供FTP
Red Hat Content Acceleratortux 具有 FTP 功能的内核空
vsftpd安全的 FTP 务执行工具。
下列安全指南可用于 vsftpd FTP
4.3.8.1. FTP 信息信息
提交用名和密前,所有用都会看到登信息。默情况下,个信息包含了版本信息,这对尝试识别
弱点的破解者十分有用。
vsftpd 更改登信息,则须 /etc/vsftpd/vsftpd.conf 文件中添加以下指令:
ftpd_banner=<insert_greeting_here>
用登信息文本替上述指令中的 <insert_greeting_here>
于多行信息而言,最好使用信息文件。要化多提示信息管理,则须将所有提示信息放入名
/etc/banners/ 的新目。在本示例中,用于 FTP 接的提示信息文件 /etc/banners/ftp.msg。以
文件的示例:
######### Hello, all activity on ftp.example.com is logged. #########
注意注意
正如〈 4.4.1 使用 TCP Wrappers 以及 xinetd 安全〉所述,没有必要在文件的每一行
中都使用 220
要在 vsftpd 中引用个登信息,则须 /etc/vsftpd/vsftpd.conf 文件中添加以下指令:
banner_file=/etc/banners/ftp.msg
可以送附加信息提示使用 TCP Wrapper 接,如〈 4.4.1.1 “TCP Wrapper 接提示
所述。
4.3.8.2. 匿名匿名访问访问
4 用工具和服用工具和服化您的系化您的系
39
/var/ftp/ 的存在可激活匿名帐户
个目的最简单的方法是安装 vsftpd 件包。件包可匿名用建立目录树,并匿名用
置目的只读权限。
情况下,匿名用不能写入任何目
警告警告
如果 FTP 器的匿名访问,那么就要注意保存敏感数据的位置。
4.3.8.2.1. 匿名上匿名上
要允匿名用文件,那么建 /var/ftp/pub/ 中生成只写目。要完成此操作,则须 root
户运行以下命令:
~]# mkdir /var/ftp/pub/upload
下一步,更改限以防止匿名用户查中的内容:
~]# chmod 730 /var/ftp/pub/upload
详细格式列表如下所示:
~]# ls -ld /var/ftp/pub/upload
drwx-wx---. 2 root ftp 4096 Nov 14 22:57 /var/ftp/pub/upload
匿名用在目取和写入的管理员经常会发现的服器成盗窃件的窩
外,在 vsftpd 下,在 /etc/vsftpd/vsftpd.conf 文件中添加以下行:
anon_upload_enable=YES
4.3.8.3. 户帐户户帐户
FTP 用不安全的网络传输加密的用名和密码进认证,所以最好拒从其用户帐户访问
器。
要禁用 vsftpd 中的所有用户帐户则须 /etc/vsftpd/vsftpd.conf 中添加以下指令:
local_enable=NO
4.3.8.3.1. 限制用限制用户帐户户帐户
要禁止 FTP 访问特殊账户或者特殊群组账户,例如 root 以及那些 sudo 的用,最简单的方法
就是使用 PAM 列表文件,如〈 4.2.1 不允 root 访问〉所述。用于 vsftpd PAM 配置文件是
/etc/pam.d/vsftpd
可以在每个服中直接禁用用户帐户
要在 vsftpd 中禁用特定帐户则须 /etc/vsftpd/ftpusers 中添加用
安全性指南安全性指南
40
4.3.8.4. 使用使用 TCP Wrapper 控制控制访问访问
使用 TCP Wrapper 控制 FTP 护进程的访问,如〈 4.4.1 使用 TCP Wrappers 以及 xinetd
安全〉所述。
4.3.9. 保障保障 Postfix 的安全的安全
Postfix 传输代理(MTA),它使用简单邮传输协议SMTP)在其它 MTA 件客端或者
代理之间传递电子信息。然很多 MTA 都可以在彼此之加密流量,但大多数并不这样做,因此使用任何
公共网络发件都被视为不安全的通形式。Postfix 替代 Sendmail Red Hat Enterprise Linux 7
MTA
使用 Postfix 器的用解决以下问题
4.3.9.1. 限制拒限制拒
为电件的本定的攻者可以极其容易地使用行洪水攻致拒。通过对
/etc/postfix/main.cf 文件中的指令行限制定,可以阻止有效的此。您可以更改已存在的指
赋值,或是以下列格式,将所要的添加到所需的指令中:
<directive> = <value>
以下一系列指令可用于限制拒
smtpd_client_connection_rate_limit时间内,任何客被允个服务进行的最大
尝试次数(如下所述)。如果默认值0就意味着在时间内,客行的接次数与 Postfix
能接收的接次数一多。默情况下,可排除在信任网中的客
anvil_rate_time_unit该单时间可用于行速率限制算。默认值 60 秒。
smtpd_client_event_limit_exceptions 接和速率限制命令中所排除的客。默情况下,
也可排除在信任网中的客
smtpd_client_message_rate_limit 时间内,客被允许进传递信息的最大次数(不
Postfix是否真的接收些信息)。
default_process_limit 提供特定服 Postfix 程默的最大种限制可能因
master.cf 文件中的特定服而取消。默情况下,赋值为 100
queue_minfree列文件系中,接收件所需的最小可用空(以字节为单位)。Postfix SMTP
器当前使用此指令来决定是否可以接收任何件。默情况下,当可用空的最小小于
message_size_limit 1.5 Postfix SMTP 会拒 MAIL FROM 指令。要具体制定一个更高
的可用空最小限定,则须具体制定一个 queue_minfree ,其大小至少是 message_size_limit 1.5
倍。默情况下,queue_minfree 0
header_size_limit用于存信息标题的最大内存(以字节为单位)。如果标题太大,那么超出的部
分就会被舍弃。默情况下,赋值为 102400
message_size_limit信息的最大(以字节为单位),包括信封信息。默情况下,赋值为
10240000
4.3.9.2. NFS 以及 Postfix
勿将 spool /var/spool/postfix/,放到 NFS 共享卷上。因 NFSv2 NFSv3 不会保持
ID ID 的控制,所以个或者更多用可以有相同的 UID,并接收和取彼此的
4 用工具和服用工具和服化您的系化您的系
41
注意注意
NFSv4 中使用 Kerberos,就不会出现这种情况。因 SECRPC_GSS 内核模不会根据 UID
。但是,最好
不要
件池目放到 NFS 共享卷中。
4.3.9.3. 只使用只使用件的用件的用
要防止本地用利用 Postfix 器上的漏洞,那么最好是让邮件用只能使用件程序访问 Postfix
器。应该禁止件服器上的 shell 帐户访问,并且/etc/passwd 文件中的所有 shell 应设定到
/sbin/nologin 中(可能除了 root 之外)。
4.3.9.4. 禁用禁用 Postfix 络侦络侦
情况下,Postfix 听本地回路地址。您可以通过查 /etc/postfix/main.cf 文件来核
一点。
/etc/postfix/main.cf 文件,以确保只出下列 inet_interfaces 命令行:
inet_interfaces = localhost
确保 Postfix 只接收来自本地系而非来自网件信息(比如定务报告)。是默认设置,并且保
Postfix 免受网
inet_interfaces = all 置可用于除本地主机限制,并且允Postfix 听所有接口。
4.3.10. 保障 SSH
Secure Shell SSH)是一个大的网络协议,可通安全的渠道与其他系统进行通。通 SSH 传输
经过加密,可避免被截。关于 SSH 协议,以及在 Red Hat Enterprise Linux 7 中如何使用SSH 的常用信
息,帽企 Linux 7 管理》。
重要重要
此章关注于保障 SSH 安全置的最常用方法。这张列表中所推荐方法不可认为尽的,或
是最威的方法。关于可用于修改 sshd 护进程的所有配置指令, sshd_config(5) ;关于
SSH 基本概念的详细 ssh(1)
4.3.10.1. 加密登加密登
SSH 支持使用加密密录电脑比只使用密要更安全。如果您可以把种方法与其他受到认证的方法相
合,那么就被认为是多因素认证。有关如何使用多种认证方法的更多信息, 4.3.10.2 多种
认证方法〉。
用加密密钥进认证 /etc/ssh/sshd_config 文件中的PubkeyAuthentication 配置指令需
yes注意,是默认设置。把 PasswordAuthentication 指令 no 会消除使用密
的可能性。
使用 ssh-keygen 命令可以生成SSH 。如果在没有其它参数的情况下, SSH 会生成 2048
RSA 集。在默情况下,密钥储存在 ~/.ssh 中。您可以使用 -b 更改密度。正常情况
下,使用 2048 位密就足了。《帽企 Linux 7 管理手册》包含了有关生成密钥对详细信息。
安全性指南安全性指南
42
~/.ssh中,您应该会看到个密。当ssh-keygen 命令,如果您接受种默情况,那么所
生成文件就会命名 id_rsa id_rsa.pub ,并且分含有公和私。您当随,将其
除文件所有者外其他任何人都不可取,使其免于暴露。然而,公钥则需要送到您将要登的系。您可
以使用ssh-copy-id 命令来送密至服
~]$ ssh-copy-id -i [user@]server
个命令会自把公添加到
上的 ~/.ssh/authorized_key 文件中。当您试图
sshd 护进程就会检查此文件。
地,于密以及其他认证机制,您也应该时常更改 SSH 。当您这样做的候,
authorized_key 文件中移除所有不用的密
4.3.10.2. 多种多种认证认证方法方法
使用多种认证方法或者多因素认证,会提升保水平以防止未访问化系以防止被入侵,也可起
到同的效果。尝试使用多因素认证的用,必成功通所有指定的认证方法,才能得到授权进
访问
使用 /etc/ssh/sshd_config 文件中的 AuthenticationMethods 配置指令,可指定要使用的认证
法。注意,使用此指令可以定多份所需的认证方法列表。如果是那,用在完成至少一份列表
上的每种方法。列表需用空格行分隔,且列表中,每个认证方法的名称必用逗号分隔。例如:
AuthenticationMethods publickey,gssapi-with-mic publickey,keyboard-
interactive
如果尝试成功的用是通 publickey 认证 gssapi-with-mic 认证,或是 publickey 认证
keyboard-interactive 认证,那么只有使用上述的 AuthenticationMethods 指令行配置的 sshd
护进程才能得到授权进访问注意,每个所要求的认证方法都要使用对应的配置指令(例如,
/etc/ssh/sshd_config 文件中的PubkeyAuthentication),方可准确地用。关于可用认证方法的常
用列表, ssh(1) 的〈AUTHENTICATION〉章
4.3.10.3. 其他方法保障其他方法保障 SSH 安全安全
协议协议版本
Red Hat Enterprise Linux 7 所提供的 SSH 协议,即使此协议行支持 SSH-1 以及 SSH-2 版本的协议
但是可能的情况下,只使用后者。 SSH-2 版本比起旧版 SSH-1 作了一些的改,并且大多数高配置选项
在使用 SSH-2 才可用。
使用 SSH-2可使 SSH 协议对所使用的认证和通的保围达到最大化。通使用
/etc/ssh/sshd_config 文件中的 Protocol 配置指令,可指定 sshd 护进程所支持的协议版本或是其
他版本的协议。默认设置是 2
钥类钥类
情况下,ssh-keygen 命令会生成一 SSH-2RSA ;使用 -t 选项,通指令它也可生成 DSA
ECDSA ECDSAElliptic Curve Digital Signature Algorithm椭圆线数字名算法)在同等的密
钥长度下可提供更好的操作。它也可生成短的密
非默非默端口
4 用工具和服用工具和服化您的系化您的系
43
情况下, sshd 护进程会 22 端口。更改端口会少系受到基于自络扫描而造成的攻
,从而增加其安全性。通使用 /etc/ssh/sshd_config 配置文件中 Port 指令,可指定端口。
意,要允使用非默端口,必更改 SELinux 认设置。通 root 入以下指令,修改
ssh_port_t SELinux 型,您可以完成此操作:
~]# semanage -a -t ssh_port_t -p tcp port_number
在上述命令中,用 Port 指令指定的新端口号代替port_number
root
如果特殊使用情况下,无需作 root ,那么您应该 /etc/ssh/sshd_config 文件中把
PermitRootLogin 配置指令置成 no。通禁止作 root ,管理者可以个用
行了什么特命令,且之后可root 限。
4.4. 安全安全访访问
4.4.1. 使用使用 TCP Wrappers 以及 xinetd 安全
TCP Transmission Control Protocol传输控制协议 Wrapper 程序不仅仅是可以拒绝对某种服访问
个部分将明如何使用它们传接提示信息程序,警告存在来自某些主机的攻,以及增日志记录
能。关于 TCP Wrapper 功能和控制言的信息, hosts_options(5) 手册。关于可用的状态标
寄存器, xinetd.conf(5) 的手册。您可将此状态标志寄存器作为选项运用于某一服
4.4.1.1. TCP Wrapper 接提示接提示
在用户连接到服务时显示适当的提示可潜在的攻者知道已经惊动了系管理。您可以控制展示
的信息内容。要在服中添加 TCP Wrapper 提示,则须使用 banner 选项
本例使用 vsftpd banner 。要用,则须创建提示信息文件。它是在系中随,但必与守
程的名称保持一致。在本例中,名 /etc/banners/vsftpd 的文件含有以下命令行:
220-Hello, %c
220-All Activity on ftp.example.com is logged.
220-Inappropriate use will result in your access privileges being removed.
%c 令牌提供各种客端信息,比如用名和主机名,或者用名和 IP 地址,些信息可用来生成接,甚至
造成威
要在示此提示信息,则须将下列命令行添加到 /etc/hosts.allow 文件:
vsftpd : ALL : banners /etc/banners/
4.4.1.2. TCP Wrapper 和攻和攻警告
如果已出某个主机或者网正在攻击该器,那么通使用 spawn 指令,使用 TCP Wrapper 可警示
管理关于来自主机或者网的后
个示例中,假到来自 206.182.68.0/24 的破解者尝试器。将下列命令行放入
/etc/hosts.deny 文件,以拒任何来自尝试,并将尝试记录在特定的文件中:
ALL : 206.182.68.0 : spawn /bin/echo `date` %c %d >> /var/log/intruder_alert
安全性指南安全性指南
44
%d 令牌提供破解者企图访问的服名称。
要允许连接并予以记录则须 spawn 指令放入 /etc/hosts.allow 文件
注意注意
spawn 指令可行所有 shell 命令,所以最好生成一个特定脚本以提示管理,或者在特定客
尝试连接到服器的事件中,行一系列命令。
4.4.1.3. TCP Wrapper 和改和改的日志的日志
如果比起其它型更令人担,那么可使用 severity 选项提升的日志级别
个示例中,假设尝试连接到 FTP 23 端口(Telnet 端口)的任何人就是破解者。要指出一点,
在日志文件中使用 emerg 标记认标记 info,并拒绝连
要做到一点,则须将下列命令行放入 /etc/hosts.deny
in.telnetd : ALL : severity emerg
使用默 authpriv 日志工具,但会将从默认值 info 提高到 emerg,即将日志信息直接送到控
制台。
4.4.2. 验证验证使使用听的端口听的端口
当避免打开不必要的端口,因为这会增加您系受到攻的可能性。如果在系统运行之后,您发现有意外打
开的端口听状,那么可能就是入侵的迹象,应该对调查
root ,从控制台出以下命令,以判定个端口正在听来自网接:
~]# netstat -pan -A inet,inet6 | grep -v ESTABLISHED
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
1608/rpcbind
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN
2581/unbound
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
2048/sshd
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
3202/cupsd
tcp 0 0 0.0.0.0:54136 0.0.0.0:* LISTEN
2279/rpc.statd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN
2708/master
tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN
2581/unbound
tcp 0 0 127.0.0.1:8955 0.0.0.0:* LISTEN
2634/dnssec-trigger
tcp6 0 0 :::111 :::* LISTEN
1608/rpcbind
tcp6 0 0 :::60881 :::* LISTEN
4 用工具和服用工具和服化您的系化您的系
45
2279/rpc.statd
tcp6 0 0 ::1:53 :::* LISTEN
2581/unbound
tcp6 0 0 :::22 :::* LISTEN
2048/sshd
tcp6 0 0 ::1:631 :::* LISTEN
3202/cupsd
tcp6 0 0 ::1:25 :::* LISTEN
2708/master
tcp6 0 0 ::1:8953 :::* LISTEN
2581/unbound
udp 0 0 127.0.0.1:766 0.0.0.0:*
2279/rpc.statd
udp 0 0 0.0.0.0:59186 0.0.0.0:*
674/avahi-daemon: r
udp 0 0 0.0.0.0:33639 0.0.0.0:*
2279/rpc.statd
udp 0 0 0.0.0.0:889 0.0.0.0:*
1608/rpcbind
udp 0 0 127.0.0.1:53 0.0.0.0:*
2581/unbound
udp 0 0 0.0.0.0:68 0.0.0.0:*
2642/dhclient
udp 0 0 0.0.0.0:111 0.0.0.0:*
1608/rpcbind
udp 0 0 0.0.0.0:46198 0.0.0.0:*
2642/dhclient
udp 0 0 0.0.0.0:123 0.0.0.0:*
697/chronyd
udp 0 0 0.0.0.0:5353 0.0.0.0:*
674/avahi-daemon: r
udp 0 0 127.0.0.1:323 0.0.0.0:*
697/chronyd
udp6 0 0 :::3885 :::*
2642/dhclient
udp6 0 0 :::889 :::*
1608/rpcbind
udp6 0 0 ::1:53 :::*
2581/unbound
udp6 0 0 :::111 :::*
1608/rpcbind
udp6 0 0 :::123 :::*
697/chronyd
udp6 0 0 ::1:323 :::*
697/chronyd
udp6 0 0 :::33235 :::*
2279/rpc.statd
raw6 0 0 :::58 :::* 7
2612/NetworkManager
注意, -l 选项时,并不会 SCTP stream control transmission protocol,流控制传输协议
器。
核系所需的服和命令的出信息,关那些非特需要或未的,再重复检查继续执行,然后
使用来自一系 nmap 行外部检查,此系是通络连接到第一个系的。可用于验证 iptables
规则描来自外部系 ss 出信息(除了本机 127.0.0.0 ::1 )中示的每一个 IP 地址。使用
安全性指南安全性指南
46
-6 选项 IPv6 Internet Protocol Version 6,网网路通讯协定第六版)地址描。更多信息,
man nmap(1)
以下示例是从一系的控制台出的命令,用于判定个端口正在 TCP 络连
~]# nmap -sT -O 192.168.122.1
关于 ssnmap,以及 services 的更多信息,手册
4.4.3. 禁用源路由禁用源路由
源路由是一种互协议机制,可允 IP 数据包携地址列表的信息,以此分辨数据包沿途经过的路由器。
某一路径,会出一可选项记录为路径。所列出的中路径,即路径记录,可提供返回至源路
由路径上的目的地。就允源路由可指定某一路径,无格的是松散的,可忽略路径列表上的一些或
全部路由器。它可允户恶意重定向网流量。因此,禁用源路由。
accept_source_route 选项致网接口接收
格源路由选项
SSRStrict Source Route
松散
源路由选项
LSRLoose Source Routing 数据包。源路由数据包的接收是由 sysctl 置所控制。作
root 出以下命令, SSR LSR 数据包:
~]# /sbin/sysctl -w net.ipv4.conf.all.accept_source_route=0
如上述所言,可能的(禁止转发可能会干化技),也禁止数据包的转发。作 root 出以
下所列出的命令:
些命令禁止在所有界面上 IPv4 IPv6 数据包转发
~]# /sbin/sysctl -w net.ipv4.conf.all.forwarding=0
~]# /sbin/sysctl -w net.ipv6.conf.all.forwarding=0
些命令禁止在所有界面上所有播数据包转发
~]# /sbin/sysctl -w net.ipv4.conf.all.mc_forwarding=0
~]# /sbin/sysctl -w net.ipv6.conf.all.mc_forwarding=0
接收 ICMP Internet Control Message ProtocoInternet控制协议)重定向多非法使用。除非有特定
需要,禁止 ICMP 重定向数据包的接收和
些命令禁止在所有界面上所有的 ICMP 重定向数据包行接收。
~]# /sbin/sysctl -w net.ipv4.conf.all.accept_redirects=0
~]# /sbin/sysctl -w net.ipv6.conf.all.accept_redirects=0
此命令禁止在所有界面上 ICMP 安全重定向数据包行接收。
~]# /sbin/sysctl -w net.ipv4.conf.all.secure_redirects=0
此命令禁止在所有界面上所有的 IPv4 ICMP 重定向数据包行接收。
4 用工具和服用工具和服化您的系化您的系
47
~]# /sbin/sysctl -w net.ipv4.conf.all.send_redirects=0
是禁止 IPv4 重定向数据包的指示。关于IPv6 点要求 IPv6 Node Requirements IPv4
IPv6 不同的详细 RFC4294
实现永久定,将其添加到 /etc/sysctl.conf
更多信息, sysctl 手册 sysctl(8) 。关于源路由及其量的相关互选项详细
RFC791 〉。
警告警告
以太网可提供其他方式来实现重定向流量,如 ARP (地址解析协议Address Resolution Protocol
MAC (介质访问控制,Medium/Media Access Control)地址欺、未 DHCP 动态主机
配置协议Dynamic Host Configuration Protocol)服器、以及 IPv6 路由器或居通告。此外,偶
广播的播流量会致信息泄露。些缺点只能通操作员执行的特定策才能解决。基于主机的
策并非全部有效。
4.4.4. 反向路径反向路径过滤
反向路径过滤可用于防止数据包从一接口入,又从一不同的接口出。出路径与入路径不同,
被称称路由 asymmetric routing)。路由器通常会按某种路径送数据包,但大多数主机并不需要
么做。在以下此类应用程序中常出异常象:从一出流量,又从一不同的服提供者接那接收
流量。例如,使用 xDSL 的租用线路,或是与 3G 络调制解接的星。如果此类场景适用于您,
那么就有必要关闭输入接口的反向路径过滤而言之,除非必要,否最好将其关,因它可防止来自子
的用采用 IP 地址欺手段,并 DDoS (分布式拒Distributed Denial of Service)攻的机
会。
注意注意
帽企 Linux 7 根据 RFC 3704 入口波器的入站过滤文件所推荐的 格反向路径 Strict
Reverse Path),默使用格反向路径过滤。目前只适用于 IPv4
警告警告
如果要转发程序,那么只能禁用反向路径过滤,若有其他方式可用于验证源地址(如 iptables 规则
示例)。
rp_filter
rp_filter 指令用反向路径过滤 rp_filter 选项可用于指 kernel (操作系内核)
从三种模式中选择一种。
置默为时则须采取以下形式:
~]# /sbin/sysctl -w net.ipv4.conf.default.rp_filter=INTEGER
如果 INTEGER 于以下状
安全性指南安全性指南
48
0 ——行源验证
1 ——于如 RFC3704 所定格模式。
2 ——于如 RFC3704 所定的松散模式。
使用 net.ipv4.interface.rp_filter 实现对每一网接口置的覆写。要在重启时
实现这置能存在,则须修改 /etc/sysctl.conf 文件。
4.4.4.1. 附加附加
以下反向路径过滤进行更多的解
相关网站相关网站
关于入口波器的入站过滤详细 RFC3704
关于 /proc/sys/net/ipv4/ 下的一系列文件以及可用选项
https://www.kernel.org/doc/Documentation/networking/ip-sysctl.txt
4.5. 使用防火使用防火
4.5.1. 防火防火墙简
动态防火后台程序 firewalld 提供了一个 动态管理的防火,用以支持网 “zones” ,以分配一个网
及其相关接和界面一定程度的信任。它具备对 IPv4 IPv6 防火墙设置的支持。它支持以太网,并有分
时间和永久性配置选择。它一个通向服或者用程序以直接增加防火墙规则的接口。
4.5.2. 了解防火了解防火
一个像化的配置工具,firewall-config,用于配置 firewalld:它依次用 iptables工具 行数据包
的内核中的 Netfilter 通信,
使用像化的 firewall-config 工具,按下 Super 键进入活动总览,点 firewall,然后按下
 Enterfirewall-config 工具就出了。您将被提示入管理
firewall-config 工具里有一个标记为 Configuration 的下拉菜,可以在 时间 永久 种模式之
选择。要注意,如果您选择 Permanent ,在左上角会出一排附加的图标。因不能在行模式下改
一个服参数,所以图标仅在永久配置模式中出
firewalld 提供的是动态的防火,而非静的。因配置的改可以随随地立刻行,不再需要
保存或者些改行网络连接的意外中断不会生,正如防火的所有部分都不需要重新下
提供命令行客端,firewall-cmd,用于行永久性或非永久性时间的改,正如在 man firewall-
cmd(1)所解的一。永久性改需要按照 firewalld(1) 手册的解行。注意, firewall-cmd
命令可以由 root 户运行,也可以由管理——言之, wheel 群体的成员运行。在后一种情况里,
命令将通 polkit 程来授
firewalld 的配置存在 /usr/lib/firewalld/ /etc/firewalld/ 里的各种 XML 文件里,这样
持了些文件被编辑、写入、份的极大的灵活性,使之可作其他安装的份等等。
其他用程序可以使用 D-bus firewalld 通信。
4.5.3. system-config-firewall 以及 iptables firewalld
4 用工具和服用工具和服化您的系化您的系
49
firewalld iptables service 最本的不同是:
iptables service /etc/sysconfig/iptables 存配置,而 firewalld 将配置存在
/usr/lib/firewalld/ /etc/firewalld/ 中的各种 XML 文件里,。要注意,当 firewalld
Red Hat Enterprise Linux上安装失败时 /etc/sysconfig/iptables 文件就不存在。
使用 iptables service,每一个独更改意味着清除所有旧有的规则和从
/etc/sysconfig/iptables取所有新的规则,然而使用 firewalld 却不会再建任何新的规则
仅仅运规则中的不同之。因此,firewalld 可以在时间内,改变设置而不接。
使用 iptables tool 与内核包过滤对话也是如此。
4.1. 防火防火
4.5.4. 区的理解区的理解
基于用户对设备和交通所与的信任程度,防火可以用来将网分割成不同的区域。
NetworkManager 通知 firewalld 一个接口属某个区域。接口所分配的区域可以由 NetworkManager
,也可以通您打开相关 NetworkManager 窗口的 firewall-config 工具行。
安全性指南安全性指南
50
/etc/firewalld/的区域定是一系列可以被快速行到网接口的预设定。列表并明如下:
drop弃)弃)
任何接收的网数据包都被弃,没有任何回复。能有送出去的网络连接。
block(限制)(限制)
任何接收的网络连接都被 IPv4 icmp-host-prohibited 信息和 IPv6 icmp6-adm-prohibited 信息
所拒
public(公共)(公共)
在公共区域内使用,不能相信网内的其他算机不会您的算机造成危害,只能接收经过选
接。
external(外部)(外部)
路由器用了装功能的外部网。您不能信任来自网的其他算,不能相信它不会
您的算机造成危害,只能接收经过选择接。
dmz(非事区)事区)
用于您的非事区内的电脑,此区域内可公开访问,可以有限地入您的内部网仅仅接收经过
选择接。
work(工作)(工作)
用于工作区。您可以基本相信网内的其他电脑不会危害您的电脑仅仅接收经过选择接。
home(家庭)(家庭)
用于家庭网。您可以基本信任网内的其他算机不会危害您的算机。仅仅接收经过选择
接。
internal(内部)(内部)
用于内部网。您可以基本上信任网内的其他算机不会威您的算机。仅仅接受经过选择
接。
trusted(信任)(信任)
可接受所有的网络连接。
指定其中一个区域区域是可行的。当接口接加入了 NetworkManager,它就被分配区域。
安装firewalld 里的默区域被公共区域。
4.5.5. 选择选择一个网一个网区域
区域名已经选不加明,即可明了,并允快速地做出合理决定。但是,应对配置的
检查,而且根据您的需要和风险评估,不必要的服将不能使用。
4.5.6. 对预对预先定的服的理解的理解
可以是本地和目的地端口的列表,如果服被允,也可以是一系列自的防火墙辅助模
先定的服的使用,更容易被允或者被禁止入服。与开放端口或者域,或者端口截
然不同,使用先定,或者客限定服,或够让管理更容易。 firewalld.service(5) 中的
手册描述了服配置的选择和通用文件信息。服过单个的 XML 配置文件来指定,些配置文件
下格式命名:service-name.xml
4 用工具和服用工具和服化您的系化您的系
51
形化 firewall-config 工具看服列表,按下 Super 键进入开始菜 firewall 然后按下
Enterfirewall-config 工具就出了。您将被提示入管理在,在 Services 标签下,您可以
看服列表了。
要使用命令行列出默先定,以 root 身份行以下命令:
~]# ls /usr/lib/firewalld/services/
编辑/usr/lib/firewalld/services/ ,只有 /etc/firewalld/services/ 的文件可以被编辑
要列出系或者用户创建的系,以 root 身份行以下命令:
~]# ls /etc/firewalld/services/
使用形化 firewall-config 工具和通过编辑 /etc/firewalld/services/ 中的 XML 文件,服可以被增
加和除。如果服没有被用增加或者改,那么 /etc/firewalld/services/ 中不会发现 XML
文件。如果您希望增加或者改 /usr/lib/firewalld/services/ 文件可以作模板使用。以
root 身份行以下命令:
~]# cp /usr/lib/firewalld/services/[service].xml
/etc/firewalld/services/[service].xml
然后您可以编辑最近建的文件。firewalld 先使用 /etc/firewalld/services/ 里的文件,如果一
份文件被除且服被重新加后,会切 /usr/lib/firewalld/services/
4.5.7. 理解直接接口理解直接接口
firewalld 有一个被称direct interface”(直接接口),它可以直接通 iptablesip6tables ebtables
规则。它适用于用程序,而不是用。如果您不太熟悉 iptables,那么使用直接接口是很危的,因
可能无意中致防火被入侵。firewalld 保持所增加目的追踪,所以它质询 firewalld 发现
由使用直接端口模式的程序造成的更改。直接端口由增加 --direct 选项 firewall-cmd 命令来使用。
直接端口模式适用于服或者程序,以便在时间内增加特定的防火墙规则规则不是永久性的,它
需要在每次通 D-BU S firewalld 接到启动、重新启动和重新加信息后用。
4.5.8. 检查检查是否已安装防火是否已安装防火
Red Hat Enterprise Linux 7 中,默安装 firewalld 形化用接口配置工具 firewall-config。作
root 户运行下列命令可以检查
~]# yum install firewalld firewall-config
4.5.9. 禁用防火禁用防火
要禁用 firewalld root 户运行下列命令:
~]# systemctl disable firewalld
# systemctl stop firewalld
4.5.10. 使使用 iptables
安全性指南安全性指南
52
要用 iptables ip6tables 代替 firewalld root 身份行以下命令,先禁用
firewalld
~]# systemctl disable firewalld
# systemctl stop firewalld
然后安装 iptables-services 程序包,以 root 身份入以下命令:
~]# yum install iptables-services
iptables-services 程序包包含了 iptables ip6tables
然后,以 root 身份 iptables ip6tables 命令:
# systemctl start iptables
# systemctl start ip6tables
# systemctl enable iptables
# systemctl enable ip6tables
4.5.11. 启动防火
启动 firewalld root 身份入以下命令:
~]# systemctl start firewalld
4.5.12. 检查防火是否是否
如果 firewalld 行,入以下命令检查
~]$ systemctl status firewalld
firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled)
Active: active (running) since Sat 2013-04-06 22:56:59 CEST; 2 days ago
Main PID: 688 (firewalld)
CGroup: name=systemd:/system/firewalld.service
外,检查 firewall-cmd 是否可以通过输入以下命令来接后台程序:
~]$ firewall-cmd --state
running
4.5.13. 安装防火安装防火
要安装firewalld root 身份行以下命令:
~]# yum install firewalld
要安装形化用接口工具 firewall-config root 身份行下列命令:
~]# yum install firewall-config
4 用工具和服用工具和服化您的系化您的系
53
4.5.14. 配置防火配置防火
防火可以通使用形化用接口工具 firewall-config、命令行接口工具 firewall-cmd 编辑 XML 配置文
件来配置。下面会以此些方法:
4.5.14.1. 使用使用形化用形化用接口配置防火接口配置防火
4.5.14.1.1. 启动图启动图形化防火形化防火墙设墙设置工具置工具
启动图形化 firewall-config 工具,按下 Super 键进入开始菜,点 firewall,然后按 Enter
firewall-config 工具就出了。您会被提示入一个管理
要用命令行启动图形化防火配置工具, root 身份入以下命令:
~]# firewall-config
Firewall Configuration 窗口就打开了。注意,个命令可以由普通用户运行,但随后您会被反复提示
入管理
4.2. 防火防火配置工具配置工具
在左下方角落Connected” 字符,这标志着 firewall-config 工具已经连接到用区后台程序
firewalld。注意,ICMP TypesDirect Configuration Lockdown Whitlist 标签只在从 View
下拉菜选择之后才能看
4.5.14.1.2. 防火防火墙设
要立刻改变现在的防火墙设置,确定当前视图设定在 Runtime。或者,从下拉菜选择 Permanent
安全性指南安全性指南
54
下次启动或者防火重新加载时执行的定。
注意注意
Runtime 模式下更改防火,一旦您启动或者清除接服器的复框,选择立即生效。
当您在一个也许还被其他用使用的系上工作谨记这一点。
Permanent 模式下更改防火定,您的选择仅仅在您重新加防火或者系之后生
效。您可以使用 文件文件 下的重新加载图标,或者点 选项 选择 重新加重新加防火
您可以选择列里的分区。您将注意到些分区包含一些可用的服,您可能需要整或者滚动窗口才能看
整个列表。您可以通过选择和取消选择一个服来自定义设定。
4.5.14.1.3. 增加一个接口到分区增加一个接口到分区
要增加或者重新分配一个接到分区的接口,则启动 firewall-config,从菜单栏选择 Options,由下拉菜
选择 更改更改接的分区接的分区 Connections 列表就出了。选择被分配的接,出 Select Zone for
Connection 窗口。从下拉菜选择新的防火分区并点 OK
4.5.14.1.4. 置默置默分区
定一个将要被分配新接口的分区作认值则启动 firewall-config,从菜单栏选择Options,由下拉菜
选择 Change Default Zone,出Default Zone 窗口。从出的列表中选择您需要用的分区作
分区,点 OK
4.5.14.1.5. 配置服配置服
要使用或者禁用一个定或用则启动 firewall-config工具并选择将要配置服的网分区。
Services标签选择每个您需要信任的服务类型的复框。清除复限制服
编辑,开始 firewall-config 工具,然后从标记为 Configuration 的下拉选项单选择
Permanent 模式。其余的图标和菜案件会出 Services 窗口的底部。选择您想要配置的服
Ports and Protocols 标签可以为选择的服务执行增加、更改、移除端口和协议。模块标签用于配置
Netfilter 助模Destination使得受限的流量入一个特定的目的地址和互协议 (IPv4 or
IPv6)
4.5.14.1.6. 打开防火打开防火里的端口里的端口
要允流量通防火某个端口,则启动 firewall-config 选择您想更改定的网区域。选择 Ports
图标并点 Add Port and Protocol 就打开了。
入端口数量或者端口号范可。从下拉菜选择 tcp 或者 udp
4.5.14.1.7. 使用使用装的 IP 地址
要将 IPv4 地址转换为一个一的外部地址,则启动 firewall-config 工具并选择需要转换地址的网区域。
Masquerading 标签和复框以便把 IPv4 地址转换成一个一的地址。
4.5.14.1.8. 配置端口配置端口转发
一个特定端口转发入站网流量或packets” 到一个内部地址或者替代端口,首先激活IP地址,然后
Port Forwarding 标签
4 用工具和服用工具和服化您的系化您的系
55
在窗口靠上部分选择入站流量协议和端口或者端口范。靠下部分是用于置目的端口细节的。
转发流量到一个本地端口即同一系上的端口,需选择 Local forwarding 框,入要转发的流量的
本地端口或者端口
转发流量到其他的 IPv4 地址,则选择 Forward to another port 框,入目的地 IP 地址和端口
或者端口范。如果端口位置空缺认发送到同一个端口。点 OK 行更改。
4.5.14.1.9. 配置配置 ICMP 过滤
要使用或者禁用一个 ICMP 过滤则启动 firewall-config 工具并选择过滤其信息的网区域。选择 ICMP
Filter 图标选择每种您需要过滤 ICMP 信息型的复框。清除复框以禁用过滤定是
的,默全部。
编辑一个 ICMP 型,则启动 firewall-config然后从标签为 Configuration 的下拉菜选择
Permanent 模式。在 Services 窗口底部会出附加图标
4.5.14.2. 用命令行工具用命令行工具 firewall-cmd 配置防火配置防火
命令行工具 firewall-cmd 是默安装的用程序 firewalld 的一部分。您可以查证到它是为检查版本或者展
示帮助果而安装的。入如下命令来检查版本:
~]$ firewall-cmd --version
入如下命令来看帮助出:
~]$ firewall-cmd --help
在下面列出一些命令,完整列表请查看操作 man firewall-cmd(1)
注意注意
置一个永久或者可行命令,除了 --direct 命令(它上是暂时的)之外,要向所有命
令添加 --permanent 选择。注意,不只是意味着永久更改,而且更改将仅仅在防火重新加
器重或者系之后生效。用 firewall-cmd 置的缺少 --permanent 选项定能立即生
效,但是它仅仅在下次防火重新加、系统启动或者 firewalld 之前可用。防火不会在
断开重新加,而会提示您通重新加,放弃临时更改。
4.5.14.3. 用命令行接口(用命令行接口(CLI看防火看防火墙设
入以下命令,得到 firewalld 的状的文本示:
~]$ firewall-cmd --state
入以下命令,看活分区的列,并附一个目前分配的接口列表:
~]$ firewall-cmd --get-active-zones
public: em1 wlan0
入以下命令,找出当前分配了接口(例如 em1)的区域:
安全性指南安全性指南
56
~]$ firewall-cmd --get-zone-of-interface=em1
public
root 身份入以下命令,找出分配一个区域(例如公共区域)的所有接口:
~]# firewall-cmd --zone=public --list-interfaces
em1 wlan0
NetworkManager 可以得到个信息,并且仅显示接口而非
root 身份入以下命令,找出像公共区域这样的一个区域的所有
~]# firewall-cmd --zone=public --list-all
public
interfaces:
services: mdns dhcpv6-client ssh
ports:
forward-ports:
icmp-blocks: source-quench
root 身份入以下命令,看目前活的网区域:
~]# firewall-cmd --get-service
cluster-suite pop3s bacula-client smtp ipp radius bacula ftp mdns samba
dhcpv6-client dns openvpn imaps samba-client http https ntp vnc-server
telnet libvirt ssh ipsec ipp-client amanda-client tftp-client nfs tftp
libvirt-tls
这样将列出 /usr/lib/firewalld/services/ 中的服器名称。注意,配置文件是以服本身命名的
service-name.xml
root 身份入以下命令,看所有在防火下次加后将活的网区域:
~]# firewall-cmd --get-service --permanent
4.5.14.4. 用命令行接口(用命令行接口(CLI)更改防火)更改防火墙设墙设
4.5.14.4.1. 止所有数据包(止所有数据包(Panic模式)模式)
root 身份入以下命令,开始止所有入和出的数据包:
~]# firewall-cmd --panic-on
所有入和出的数据包都将被止。在一段休止状之后,活接将被止;花时间个会
时值决定。
root 身份入以下命令,开始再次传输输入和出的数据包:
~]# firewall-cmd --panic-off
禁用 panic 模式之后,如果 panic 模式被行一小段时间,建立的接可以再次工作。
入命令,确定 panic 模式被使用或者禁用:
4 用工具和服用工具和服化您的系化您的系
57
~]$ firewall-cmd --query-panic
如果在行模式,屏幕会 yes,退出状态为 0,如果被用,屏幕会 no,退出状态为 0
4.5.14.4.2. 用命令行接口(用命令行接口(CLI)重新加)重新加防火
root 身份入以下命令,重新加防火,并不中断用户连接,即不失状信息:
~]# firewall-cmd --reload
root 身份入以下信息,重新加防火并中断用户连接,即弃状信息:
~]# firewall-cmd --complete-reload
通常在防火现严问题时个命令才会被使用。比如,防火墙规则是正确的,但却出信息问题
无法建立接。
4.5.14.4.3. 用命令行接口(用命令行接口(CLI分区增加接口分区增加接口
一个分区增加接口,比如,把 em1 增加到公共分区, root 身份入以下命令:
~]# firewall-cmd --zone=public --add-interface=em1
增加 --permanent 选项并重新加防火,使之成永久性置。
4.5.14.4.4. 过编辑过编辑接口配置文件接口配置文件分区增加接口分区增加接口
要通过编辑 ifcfg-em1 配置文件来一个分区增加接口,比如,把 em1 增加到工作分区,需以 root 身份
用一个编辑器增加以下行到 ifcfg-em1
ZONE=work
注意,如果您 ZONE 选项,或者使用 use ZONE=ZONE='',那么默区将被使用。
NetworkManager 程序将自动连接,相地,分区将被定。
4.5.14.4.5. 过编辑过编辑防火配置文件来配置默配置文件来配置默分区
root 身份,打开 /etc/firewalld/firewalld.conf 并按如下方式编辑文件:
# default zone
# The default zone used if an empty zone string is used.
# Default: public
DefaultZone=home
root 身份入以下命令,以重新加防火
~]# firewall-cmd --reload
这样可以在不失状信息的同重新加防火TCP对话不会被中断)。
4.5.14.4.6. 使用命令行接口(使用命令行接口(CLI置默分区
安全性指南安全性指南
58
root 身份入以下命令来置默分区,比如公共区域:
~]# firewall-cmd --set-default-zone=public
个更改将立刻生效,而且在此情况下不需要重新加防火
4.5.14.4.7. 用命令行接口打开防火用命令行接口打开防火的端口的端口
root 身份入以下命令,列出一个区域,例如 dmz 的所有开放端口:
~]# firewall-cmd --zone=dmz --list-ports
要将一个端口加入一个分区,例如,允 TCP 的流量通端口 8080 dmz分区, root 身份
以下命令:
~]# firewall-cmd --zone=dmz --add-port=8080/tcp
增加 --permanent 选项并重新加防火,使之成永久性置。
要将一系列端口加入一个分区,比如允 5060 5061 的端口都接入公共分区, root 身份入以下
命令:
~]# firewall-cmd --zone=public --add-port=5060-5061/udp
增加 --permanent 选项并重新加防火,使之成永久性置。
4.5.14.4.8. 使用命令行接口(使用命令行接口(CLI)将一个服)将一个服加入到分区加入到分区
要把一个服加入到分区,例如允 SMTP 接入工作区, root 身份行以下命令:
~]# firewall-cmd --zone=work --add-service=smtp
增加 --permanent 选项并重新加防火,使之成永久性置。
4.5.14.4.9. 使用命令行接口(使用命令行接口(CLI)从一个分区移除服)从一个分区移除服
要从分区移除服,比如从工作区移除 SMTP root 身份入以下命令:
~]# firewall-cmd --zone=work --remove-service=smtp
增加 --permanent 可使个更改在系统启动后被允。如果用选项,并且希望立刻生更改,以 root
身份入以下命令,重新加防火
~]# firewall-cmd --reload
注意,并不会中断已建立的接。如果您打算中断,您可以使用 --complete-reload 选项,但
中断您已移除的服会中断所有已建立的接。
4.5.14.4.10. 过编辑过编辑 XML 文件文件一个分区增加服一个分区增加服
root 身份入以下命令,看默分区文件:
4 用工具和服用工具和服化您的系化您的系
59
~]# ls /usr/lib/firewalld/zones/
block.xml drop.xml home.xml public.xml work.xml
dmz.xml external.xml internal.xml trusted.xml
些文件不能编辑。如果 /etc/firewalld/zones/ 里没有等效文件存在,它被默认为可使用。
root 身份入以下命令,看从默区被更改的分区文件:
~]# ls /etc/firewalld/zones/
external.xml public.xml public.xml.old
在上述示例中,工作区域文件不存在。以 root 身份入以下命令,加入工作区文件:
~]# cp /usr/lib/firewalld/zones/work.xml /etc/firewalld/zones/
在您可以在 /etc/firewalld/zones/ 编辑该文件。如果您文件,firewalld 将切到使
/usr/lib/firewalld/zones/ 里的默文件。
要将一个服加入分区,比如允 SMTP 入工作区, root 编辑程序,编辑
/etc/firewalld/zones/work.xml 文件,使之包括如下行:
<service name="smtp"/>
4.5.14.4.11. 过编辑过编辑 XML 文件从一个分区中移除服文件从一个分区中移除服
编辑 XML 区域文件,必 root 编辑程序。以 root 身份入以下命令,去配置的分区的
文件:
~]# ls /etc/firewalld/zones/
external.xml public.xml work.xml
root 限来编辑程序,编辑 /etc/firewalld/zones/work.xml 文件来移除如下行:
<service name="smtp"/>
就能从一个分区移除服,比如从工作区移除 SMTP。如果 work.xml 文件没有行其他更改,它可以被移
除,并且 firewalld 会在下一次重新加或者系统启动之后使用默
/usr/lib/firewalld/zones/work.xml 配置。
4.5.14.4.12. 配置配置 IP 地址
如果 IP 不能一个外部区域用, root 身份入以下命令来检查
~]# firewall-cmd --zone=external --query-masquerade
如果可用,屏幕会 yes,退出状态为 0 ,屏幕 no,退出状态为 1。如果省略zone ,默
将被使用。
root 身份入以下命令,允许伪IP
~]# firewall-cmd --zone=external --add-masquerade
安全性指南安全性指南
60
增加 --permanent 选项并重新加防火,使之成永久性置。
root 身份入以下命令,禁用IP
~]# firewall-cmd --zone=external --remove-masquerade
增加 --permanent 选项并重新加防火,使之成永久性置。
4.5.14.4.13. 使用命令行接口(使用命令行接口(CLI)配置端口)配置端口转发
要将入网的程序包从一个端口转发到一个替代端口或者地址,首先需以 root 身份入以下命令来
区域(比如外部区域), IP 地址:
~]# firewall-cmd --zone=external --add-masquerade
root 身份入以下命令,把程序包转发到一个本地端口,即相同系上的一个端口:
~]# firewall-cmd --zone=external --add-forward-
port=port=22:proto=tcp:toport=3753
个例子里,本来要送到 22 端口的程序包在被转发 3753 端口。源目的端口用 port 选项指定。
可以是一个端口,或者一端口范并加上协议。如果指定协议协议 tcp udp
新的本地端口,即流量被转发过去的端口或者端口范,需用 toport 选项指定。增加 --permanent
并重新加防火,可以使置永久保存。
root 身份入以下命令,不改目的端口将程序包转发一个通常是内部地址的 IPv4 地址:
~]# firewall-cmd --zone=external --add-forward-
port=port=22:proto=tcp:toaddr=192.0.2.55
个示例中,原本22端口的程序包在被转发到相同的端口,地址 toaddr 提供。源目的地端口用
port 指定。选项可能是一个端口,或者一端口范并加上协议。如果被指定,协议 tcp udp
中的一个。个新端口,即流量被转发过去的端口或者端口范,用 toport 指定。增加 --permanent
并重新加防火,使定永久保存。
root 身份入以下命令,把程序包转发到通常是内部地址的一个 IPv4 地址:
~]# firewall-cmd --zone=external /
--add-forward-port=port=22:proto=tcp:toport=2055:toaddr=192.0.2.55
个示例中,原本 22 端口的程序包在被转发到和 toaddr 选项一起出地址的2055端口。源目的端
口用 port 选项指定。选项可以是一个端口,或者打包了协议的端口范。如果被指定,协议一定是
tcp udp 中的一个。个新的目的端口,即流量被转发过去的端口或者端口范,用 toport 指定。增加
--permanent 选项并重新加防火,使置永久保留。
4.5.14.5. XML 文件配置防火文件配置防火
firewalld 的配置定存/etc/firewalld/ 下的 XML 文件里。切勿编辑 /usr/lib/firewalld/
下的文件,因认设定准的。看和编辑这 XML 文件,您需要 root 的用户许可。三个
操作手册 XML 文件行了解
firewalld.icmptype(5) 操作手册 描述了 ICMP 过滤 XML 配置文件。
firewalld.service(5) 操作手册描述了 firewalld service XML 配置文件。
4 用工具和服用工具和服化您的系化您的系
61
firewalld.zone(5) 操作手册描述了配置 firewalld 区域的 XML 配置文件。
形化工具和命令行工具可以 XML 文件行直接建、编辑或者建。组织可以把它分配到 RPM
文件里,使管理和版本控制更容易。例如 Puppet 的工具可以分配种配置文件。
4.5.14.6. 使用直接接口使用直接接口
firewall-cmd 工具,可以使用 --direct 选项时间里增加或者移除提供一些例子,请查阅
firewall-cmd(1) 操作取更多信息。
如果不熟悉 iptables ,使用直接接口非常危,因您可能无意间导致防火被入侵。
直接端口模式适用于服或者程序,以便在时间内增加特定的防火墙规则规则不是永久性的,它
需要在每次通 D-BU S firewalld 接到启动、重新启动和重新加信息后用。
4.5.14.6.1. 使用直接接口增加一个自定使用直接接口增加一个自定义规则义规则
root 身份按照以下格式布一个命令,增加一个自定义规则IN_public_allow” 里:
~]# firewall-cmd --direct --add-rule ipv4 filter IN_public_allow \
0 -m tcp -p tcp --dport 666 -j ACCEPT
4.5.14.6.2. 用直接接口移除一个自定用直接接口移除一个自定义规则义规则
root 身份按照以下格式布一个命令,从IN_public_allow” 移除一个自定义规则
~]# firewall-cmd --direct --remove-rule ipv4 filter IN_public_allow \
0 -m tcp -p tcp --dport 666 -j ACCEPT
4.5.14.6.3. 用直接接口列出自定用直接接口列出自定义规则义规则
root 身份按照以下格式布一个命令,列出IN_public_allow” 中的规则
~]# firewall-cmd --direct --get-rules ipv4 filter IN_public_allow
4.5.15. 防火防火墙规则墙规则配置配置“Rich Language"
rich language 法,可以用比直接接口方式更易理解的方法建立复防火墙规则。此外,能永久保留
置。言使用关键词值,是 iptables 工具的抽象表示。言可以用来配置分区,也仍然支持
的配置方式。
4.5.15.1. 言命令的格式言命令的格式
个部分,所有命令都必 root 身份行。增加一项规则的命令格式如下:
firewall-cmd [--zone=zone] --add-rich-rule='rule' [--timeout 9=seconds]
这样 zone 分区增加一规则 rule 选项可以多次指定。如果分区被省略,将使用默分区。
如果出规则将在指定的秒数内被激活,并在之后被自移除。
移除一项规则
firewall-cmd [--zone=zone] --remove-rich-rule='rule'
安全性指南安全性指南
62
zone 分区移除一规则 rule 选项可以多次指定。如果分区被省略,将使用默
区。
检查项规则是否存在:
firewall-cmd [--zone=zone] --query-rich-rule='rule'
将复是否已经为区域(zone 增加一个多规则 rule 。如果可用,屏幕会 yes,退出状态为
0 ,屏幕 no,退出状态为 1。如果省略 zone,默区域将被使用。
使用在分区配置文件里的多言表述的相关信息,可查阅 firewalld.zone(5) 明。
4.5.15.2. 理解多理解多规则结构规则结构
规则命令的格式或结构如下所示:
rule [family="<rule family>"]
[ source address="<address>" [invert="True"] ]
[ destination address="<address>" [invert="True"] ]
[ <element> ]
[ log [prefix="<prefix text>"] [level="<log level>"] [limit
value="rate/duration"] ]
[ audit ]
[ accept|reject|drop ]
一个规则是关某个特定分区的,一个分区可以有几个规则。如果几个规则互相影或者冲突,则执行和数据
包相匹配的第一个规则。如果提供了规则系列,它可以是 ipv4 或者 ipv6 规则系列把规则限定在 IPv4
IPv6 。如果没有提供规则系列, IPv4 IPv6 增加规则。如果源地址或者目地址在一个规则中被使
用,那么必提供规则系列。端口转发也存在种情况。
4.5.15.3. 理解多理解多规则规则命令
source
制定源地址,一个尝试连接的源可以被限制在源地址中。一个源地址或者地址范是一个
IPv4 或者 IPv6 做掩 IP 地址或者一个网 IP 地址。网系列( IPv4 IPv6 )将被自
盖。针对 IPv4 装可以是一个网络伪装或者一个普通数字。针对 IPv4 装是一个简单
字。不支持使用主机名。可以通增加 invert="true" invert="yes" 倒源地址命令的意
思。所有提供的地址都匹配。
destination
制定目的地址,目可以被限制在目的地址中。目地址使用跟源地址相同的法。原地址和
地址的使用是有选择的,不可能目地址的所有要素都使用。取决于目地址的使用,例如
在服务项中,个要素只可以是以下要素型之一: service port protocol
masquerade icmp-block forward-port
service
名称是 firewalld 提供的其中一种服。要得被支持的服的列表,入以下命令:
firewall-cmd --get-services 。如果一个服提供了一个目地址,它将和规则中的目
址冲突,并且致一个错误。使用内部目的地址的服大多是使用了多路送的服。命令以下
形式:
service name=service_name
4 用工具和服用工具和服化您的系化您的系
63
port
端口既可以是一个独立端口数字,又或者端口范,例如,5060-5062协议可以指定 tcp
udp 。命令以下形式:
port port=number_or_range protocol=protocol
protocol
协议值可以是一个协议 ID 数字,或者一个协议名。知可用协议请查阅 /etc/protocols。命
以下形式:
protocol value=protocol_name_or_ID
icmp-block
个命令阻一个或多个 ICMP 型。 ICMP 型是 firewalld 支持的 ICMP 型之一。要得被
支持的 ICMP 型列表,入以下命令:
~]$ firewall-cmd --get-icmptypes
在此,指定一个作是不被允的。icmp-block 在内部使用 reject 作。命令以下形式:
icmp-block name=icmptype_name
masquerade
打开规则里的 IP 装。用源地址而不是目的地址来把装限制在个区域内。在此,指定一个
是不被允的。
forward-port
从一个有指定 tcp udp 协议的本地端口转发数据包到一个本地端口,或一台机器,或
一台机器上的一个端口。 port to-port 可以是一个独的端口数字,或一个端口范。而目
的地址是一个简单 IP 地址。在此,指定一个作是不被允的。 forward-port 命令使用内部
accept 个命令以下形式:
forward-port port=number_or_range protocol=protocol /
to-port=number_or_range to-addr=address
log
注册含有内核记录的新的求到规则中,比如系统记录。您可以定一个前文本——可以把
记录信息作加入。记录可以是 emerg alert crit error warning
notice info 或者 debug 中的一个。可以选择记录的用法,可以按以下方式限制注册:
log [prefix=prefix text] [level=log level] limit value=rate/duration
用正的自然数 [1, ..] ,持续时间 s m h d s 表示秒, m 表示分 h
表示小 d 表示天。最大限定 1/d ,意每天最多有一条日志入。
audit
安全性指南安全性指南
64
为发送到 auditd 记录来注册提供了一种方法。型可以是 ACCEPT
REJECT DROP 中的一种,但不能在 audit 命令后指定,因为审型将会从规则动作中自
集。核不包含自身参数,但可以选择性地增加限制。核的使用是可选择的。
accept|reject|drop
可以是 accept reject drop 中的一个行规则仅仅包含一个要素或者来源。如果规则
中包含一个要素,那么行可以理符合要素的新接。如果规则中包含一个来源,那么指定的行
可以理来自源地址的一切内容。
accept | reject [type=reject type] | drop
选择 accept 所有新的求都会被允选择 reject 接将被拒接来源将接到一个
信息。拒型可以被使用一种选择 drop 所有数据包会被弃,并且不会
向来源地送任何信息。
4.5.15.4. 使用多使用多规则规则命令命令
使用 Netfilter 可以完成登,也可以使用核目。用zone_log 格式命名的新可以加入到所有
分区,其中 zone 为该分区名。在 deny 之前该项处理,以便得适当的排序。根据规则的行,整个
规则或者部分规则会按照规则被分放置在独立中,如下所示:
zone_log
zone_deny
zone_allow
所有登录规则将放在zone_log 中,会最先被解析。所有 reject drop 规则都被放置在
zone_deny” ,在登录链之后被解析。所有 accept 规则被放在zone_allow” 里,它将在 deny 之后被
解析。如果规则中既包含了 log ,又有 deny 或者 allow ,各部分将被放在相中。
4.5.15.4.1. 规则规则命令使用示例命令使用示例 1
为认证报头协议 AH 使用新的IPv4 IPv6 接:
rule protocol value="ah" accept
4.5.15.4.2. 规则规则命令使用示例命令使用示例 2
同意新的 IPv4 IPv6 FTP,并使用核每分一次:
rule service name="ftp" log limit value="1/m" audit accept
4.5.15.4.3. 规则规则命令使用示例命令使用示例 3
TFTP 协议同意来自 192.168.0.0/24 地址的新的 IPv4 接,并且使用系日志每分一次:
rule family="ipv4" source address="192.168.0.0/24" service name="tftp" log
prefix="tftp" level="info" limit value="1/m" accept
4.5.15.4.4. 规则规则命令使用示例命令使用示例 4
RADIUS 协议所有来自 1:2:3:4:6:: 的新 IPv6 接,并每分级别3。接受来自其他来源的
新的 IPv6
4 用工具和服用工具和服化您的系化您的系
65
rule family="ipv6" source address="1:2:3:4:6::" service name="radius" log
prefix="dns" level="info" limit value="3/m" reject
rule family="ipv6" service name="radius" accept
4.5.15.4.5. 规则规则命令使用示例命令使用示例 5
转发带 TCP 协议的端口 4011 上的来自 1:2:3:4:6:: IPv6 包,到端口 4012 上的 1::2:3:4:7
rule family="ipv6" source address="1:2:3:4:6::" forward-port to-
addr="1::2:3:4:7" to-port="4012" protocol="tcp" port="4011"
4.5.15.4.6. 规则规则命令使用示例命令使用示例 6
把一个源地址加入白名,以便允来自个源地址的所有
rule family="ipv4" source address="192.168.2.2" accept
更多示例请查阅 firewalld.richlanguage(5)
4.5.16. 定防火定防火
如果以 root 身份行本地用或者服(比如 libvirt ),就能更改防火墙设置。因为这个功能,管理
定防火墙设置,这样是不向定的白名添加用,添加用,都可以要求防火更改。
置默启动,如果启动,用可以确保本地用或者服不需要防火做任何置更改。
4.5.16.1. 置防火置防火墙锁
root 身份行一个编辑器,把以下行增加到 /etc/firewalld/firewalld.conf 文件:
Lockdown=yes
root 身份使用以下命令重防火
~]# firewall-cmd --reload
欲在默区内使用 imaps 以管理员账户,也就是 wheel 中的用(通常是系的第一位用),
使用以下命令:
~]$ firewall-cmd --add-service=imaps
Error: ACCESS_DENIED: lockdown is enabled
欲使用 firewall-cmd ,以 root 身份入以下命令:
~]# firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python -Es
/usr/bin/firewall-cmd*'
如果需要重后会继续使用此定,增加 --permanent 选项
root 身份重防火
~]# firewall-cmd --reload
安全性指南安全性指南
66
以管理员账户输入以下命令,尝试在默区里再次启动 imaps 。您将被提示入用
~]$ firewall-cmd --add-service=imaps
这样,命令成功行。
4.5.16.2. 用命令行客用命令行客端配置端配置
查询锁定是否行,以 root 身份入以下命令:
~]# firewall-cmd --query-lockdown
如果是定状,打印退出状态为 0 yes。否,打印退出状态为 1 no
启动锁定,以 root 身份入以下命令:
~]# firewall-cmd --lockdown-on
闭锁定,以 root 身份入以下命令:
~]# firewall-cmd --lockdown-off
4.5.16.3. 用命令行配置用命令行配置定白名定白名单选项单选项
定白名可以包含命令,安全境,用和用ID。如果白名入的一个命令以一个星号*” 束,那
么所有以个命令开始的命令行都匹配。如果没有*” ,那么包括参数的绝对命令必匹配。
境,是指一个正在行的用或者服的安全 (SELinux) 境。用以下命令取一个正在行的用的
境:
~]$ ps -e --context
个命令检查所有行中的用。通 grep 工具将移,得到需要的用。比如:
~]$ ps -e --context | grep example_program
列出白名上的所有命令行,以 root 身份入以下命令:
~]# firewall-cmd --list-lockdown-whitelist-commands
增加一个command 命令到白名,以 root 身份入以下命令:
~]# firewall-cmd --add-lockdown-whitelist-command='/usr/bin/python -Es
/usr/bin/command'
从白名移除一个 command 命令,以 root 身份入以下命令:
~]# firewall-cmd --remove-lockdown-whitelist-command='/usr/bin/python -Es
/usr/bin/command'
查询 command 命令是否在白名上,以 root 身份入以下命令:
4 用工具和服用工具和服化您的系化您的系
67
~]# firewall-cmd --query-lockdown-whitelist-command='/usr/bin/python -Es
/usr/bin/command'
如果存在,示退出状态为 0 yes ,否示退出状态为 1 no
列出白名上的所有安全境,以 root 身份入以下命令:
~]# firewall-cmd --list-lockdown-whitelist-contexts
增加一个 context 到白名,以 root 身份入以下命令:
~]# firewall-cmd --add-lockdown-whitelist-context=context
要使个命令持,增加 --permanent 选项
从白名移除一个 context ,以 root 身份入以下命令:
~]# firewall-cmd --remove-lockdown-whitelist-context=context
要使个命令持,增加 --permanent 选项
查询白名上是否有 context ,以 root 身份入以下命令:
~]# firewall-cmd --query-lockdown-whitelist-context=context
如果存在,示退出状态为 0 yes ,否示退出状态为 1 no
列出白名上所有用 ID ,以 root 身份入以下命令:
~]# firewall-cmd --list-lockdown-whitelist-uids
增加一个用 ID uid 到白名,以 root 身份入以下命令:
~]# firewall-cmd --add-lockdown-whitelist-uid=uid
要使个命令持,增加 --permanent 选项
从白名上移除一个用 ID uid root 身份入以下命令:
~]# firewall-cmd --remove-lockdown-whitelist-uid=uid
要使个命令持,增加 --permanent 选项
查询 ID uid 是否在白名上,入以下命令:
~]$ firewall-cmd --query-lockdown-whitelist-uid=uid
如果存在,示退出状态为 0 yes ,否示退出状态为 1 no
列出白名上所有用名,以 root 身份入以下命令:
~]# firewall-cmd --list-lockdown-whitelist-users
安全性指南安全性指南
68
增加一个用 user 到白名,以 root 身份入以下命令:
~]# firewall-cmd --add-lockdown-whitelist-user=user
要使个命令持,增加 --permanent 选项
从白名移除一个用 user ,以 root 身份入以下命令:
~]# firewall-cmd --remove-lockdown-whitelist-user=user
要使个命令持,增加 --permanent 选项
查询 user 是否在白名上,入以下命令:
~]$ firewall-cmd --query-lockdown-whitelist-user=user
如果存在,示退出状态为 0 yes ,否示退出状态为 1 no
4.5.16.4. 用配置文件来配置用配置文件来配置定白名定白名单选项单选项
的白名配置文件包括 NetworkManager 境和 libvirt 的默认环境。列表里也有用 ID 0
<?xml version="1.0" encoding="utf-8"?>
<whitelist>
<selinux context="system_u:system_r:NetworkManager_t:s0"/>
<selinux context="system_u:system_r:virtd_t:s0-s0:c0.c1023"/>
<user id="0"/>
</whitelist>
里跟随了一个示例白名配置文件,它启动用于 firewall-cmd 功能的所有命令, user、用 ID
815 的用
<?xml version="1.0" encoding="utf-8"?>
<whitelist>
<command name="/usr/bin/python -Es /bin/firewall-cmd*"/>
<selinux context="system_u:system_r:NetworkManager_t:s0"/>
<user id="815"/>
<user name="user"/>
</whitelist>
个范例里,我出示了 user id user name 两样,但只需要一个即可。Python 是一个解器,所以
写在命令行的最前面。您也可以使用一个非常特的命令,比如:
/usr/bin/python /bin/firewall-cmd --lockdown-on
例子里,只有 --lockdown-on 命令会被允
4 用工具和服用工具和服化您的系化您的系
69
注意注意
Red Hat Enterprise Linux 7 中,所有功能在都放在 /usr/bin/ 中,而且 /bin/ 被系统链
/usr/bin/ 言之,尽管以 root 身份行的 firewall-cmd 路径可能解析到
/bin/firewall-cmd,但是在会使用 /usr/bin/firewall-cmd 。所有新的脚本可以使用新的
地址,但要意到,如果以 root 身份行的脚本被写入使用 /bin/firewall-cmd 路径,那么,命
令路径除了是传统用于非 root /usr/bin/firewall-cmd 路径以外,被加入
白名
在一个命令的名字属性尾的*” 意味着所有以此行开的命令都匹配。如果没有*” ,那么包括参数
绝对命令必匹配。
4.5.17. 附加
下列信息的来源提供了关于 firewalld 的附加源。
4.5.17.1. 已安装的文档已安装的文档
firewalld(1) ——描述 firewalld 的命令选项
firewalld.conf(5) ——包括配置 firewalld 的信息。
firewall-cmd(1) ——描述 firewalld 命令行客端的命令选项
firewalld.icmptype(5) 操作手册 描述了 ICMP 过滤 XML 配置文件。
firewalld.service(5) 操作手册描述了 firewalld service XML 配置文件。
firewalld.zone(5) 操作手册描述了配置 firewalld 区域的 XML 配置文件。
firewalld.direct(5) ——描述 firewalld 直接接口配置文件。
firewalld.lockdown-whitelist(5) ——描述 firewalld 白名单锁定配置文件。
firewall.richlanguage(5) ——描述 firewalld 规则语法。
firewalld.zones(5) ——概述分区情况以及如何配置它
4.6. DNSSEC DNS 流量流量
4.6.1. DNSSEC
DNSSEC是一套
域名系安全
”(DNSSECDomain Name System Security Extensions) ,能域名系域名系
DNSDomain Name System)客行身份验证以及检查来自 DNS 域名服响应的完整性,以此
定它的来源,并判断它是否在传输过程中被
4.6.2. 了解了解 DNSSEC
于通接,在有越来越多的网站使用 超文本超文本传输协议传输协议安全(安全(HTTPSHyper Test Transfer
Protocol Security 来提供安全的接。然而,除非您直接 IP 地址,在接到 HTTPS
之前,必须执 DNS 查询。由于缺少身份验证 DNS 查询是不安全的,且会遭到
MITM , man-in-the-middle attacks)。话说 DNS 端无法确信疑似来自特定的 DNS 域名服器的
安全性指南安全性指南
70
答是否可信,以及是否被。更重要的是,递归器无法确定从其他域名服取的记录是真的。
DNS 协议无法提供客端可确保不遭受中人攻的机制。 DNSSEC 的引入解决了在使用 DNS 解析域名
缺少身份验证和完整性检查问题。但它不能解决机密性的问题
DNSSEC 布的信息包括 DNS 记录的数字字和公用加密密的分配,以这样的方式 DNS 解析器建
立起多次的信息。因所有 DNS 记录而生成的数字名,添加到此 DNS 区域作为资记录签
RRSIG)。此区域所添加的公用加密密为资记录的域名系 DNSKEY )。要建立起多
信息则须 DNSKEY 的散列值发布到父区域作
代理
DSDelegation of Signing记录
验证不存在性,则须使用 NextSECure NSEC,下一代安全)和 NSEC3 NSEC的替用方案)
记录。在 DNSSEC 区域名中,每一个
记录
RRsetresource record set 都有其对应
RRSIG 记录注意, 用作子区域代理的记录(域名服器粘附记录NS and glue records)并没有
名;记录示在子区域,并在此区域名。
root 区域公用加密密钥进行配置的解析器会完成 DNSSEC 的信息。使用种密,解析器可以
用于 root 区域的名。例如, root 区域 .com DS 记录进名。 root 区域也 .com 域名服器提供
域名服器粘附记录。解析器会跟踪代理和查询使用代理域名服 .com DNSKEY 记录。所取的
DNSKEY 记录散列值应当与 root 区域的 DS 记录相匹配。如果匹配,解析器将会信任所取的 .com
DNSKEY 。在 .com 区域内, RRSIG 记录是由 .com DNSKEY 建。同地,在 .com 中的代理也是重复
此程序,例如 redhat.com。用种方法,尽管 DNS 验证解析器在其正常操作期收集了很多 DNSKEY ,但
只需用一个 root 钥对行配置。如果密码检查了,解析器将 SERVFAIL 会返回给应用程序。
DNSSEC 设计是根据以下种方式:于不支持 DNSSEC 用程序完全不可。如果非 DNSSEC
程序查询支持 DNSSEC的解析器 它所接收的答复没有任何新记录类型,如 RRSIG 。然而, 支持
DNSSEC 的解析器仍将行所有密码检查,若探 DNS 答复,它仍会将 SERVFAIL 错误返回给应用程
序。 DNSSEC 会保 DNS 器(威服器和递归器)数据的完整性,但却不为应用程序和解析器提
供的安全保。因此,予以一个从用程序到其解析器的安全传输方式十分重要。实现这一目的最容易的方法
就是 localhost (本地主机)上支持 DNSSEC 的解析器,使用 /etc/resolv.conf下的 127.0.0.1
。或者可以使用虚拟专用网 VPN Virtual Private Network接到 DNS
了解了解问题问题
使用无线络热点( Wi-Fi Hotspot Wireless Fidelity Hotspot)或 VPN ,就会依 “DNS DNS
lies)。所取的端口往往会 DNS 劫持,以便重定向用到需要身份验证(或支付)的 Wi-Fi
VPN 的用常常需使用 内部 DNS 器,以便定位那些在公司网外不存在的源。
理。例如, dnssec-trigger 可用于探一个无线热点( Hotspot )是否劫持 DNS 查询,或
unbound 是否充当代理域名服 DNSSEC 查询
选择选择支持支持 DNSSEC 递归递归解析器解析器
要部署支持 DNSSEC 递归解析器,可使用 BIND unbound 这两者在默情况下都使用 DNSSEC
并用 DNSSEC root 钥进行配置。在服器上使用 DNSSEC 者都可正常工作。然而, unbound 更常用
于移动设备,如笔记电脑。因它允本机用户对 DNSSEC 覆写动态重配置,无是使用 dnssec-trigger
线热点所需求的, 亦或是使用 Libreswan VPNs 所需求的。 unbound 护进一步支持列入
etc/unbound/*.d/ DNSSEC 异常状况行部署,这对器和移动设备都有用。
4.6.3. 了解了解 Dnssec-trigger
一旦 unbound 完成安装,并在 /etc/resolv.conf行配置,所有来自用程序的 DNS 查询都会通
unbound理。dnssec-trigger 只有在被触发时,才会 unbound 解析器行重配置。大多数用于
漫游的客机,如笔记电脑种可接到不同 Wi-Fi 的机器。其程如下:
动态动态主机配置主机配置协议DHCPDynamic host configuration protocol 取新的 DNS
NetworkManager会触 dnssec-trigger
随后,Dnssec-trigger 行一系列测试,判断其是否完全支持 DNSSEC
4 用工具和服用工具和服化您的系化您的系
71
如果支持,那么 dnssec-trigger 会重配置 unbound ,以用于作所有查询转发程序的 DNS
如果测试dnssec-trigger 将忽略新的 DNS 器,并尝试一些可行的退却方法。
如果它判定一个不受限制的 53 端口(用数据报协议报协议UDPUser Datagram Protocol 以及 传输传输
控制控制协议TCPTransmission Control Protocol)可以使用,它将告知 unbound 可成
递归 DNS 器,无需使用任何转发程序。
如果无法完成操作,如因 53 端口被防火,此防火会阻接网 DNS 器之外的所有程
序,它将会尝试使用 DNS 80 端口,亦或通使用 DNS 封装的 安全安全传输层协议传输层协议
TLSTransport Layer Protocol 443 端口。在 80 端口和 443 端口 DNS 的服器可在
/etc/dnssec-trigger/dnssec-trigger.conf行配置。注的范例可在默配置文件中找到。
如果些退却方法也失了, dnssec-trigger 将提供一种不安全的操作,将完全忽略 DNSSEC ;亦
或它将在 cache only)模式下行,此模式下它将不会尝试新的 DNS 查询,但将会答所有
已在存器中的数据。
线热点更是常常在授予访问络权限之前,重定向用到登录页面。在探上述列期,如果探到重定
向命令,会提示用,以询问是否通要求登取网络访问权限。dnssec-trigger 护进程将继续
DNSSEC 解析器每十秒行探。关于使用 dnssec-trigger 形化工具的更多信息, 4.6.8
使用 Dnssec-trigger”
4.6.4. 提供域和域名服提供域和域名服器的器的 VPN
VPN 一些型可传输域和一系列域名服器, 可用于作 VPN 隧道安装部分的域。在 帽企帽企
Linux 中,是由 NetworkManager 所支持的。就是 unbound dnssec-trigger
NetworkManager 物能完全支持 VPN 件所提供的域和域名服器。一旦 VPN 隧道完成,就可
以清除关于所有接收域名的登在本机的 unbound 存,从而通 VPN 取的内部域名服器中提取最新
域名名称的查询 VPN 隧道会再次清除 unbound 存,以确保任何域的查询会返回公用
IP 地址,而不会返回到原先取的 IP 地址。 4.6.11 对连接所提供的域 DNSSEC 验证
〉。
4.6.5. 的命名的命名
Red Hat ,静域名和动态域名都要与用于 DNS 机器的
完全合格域名
FQDNfully-qualified domain
name)相匹配,如 host.example.com
网名称与数字地址分配机ICANNThe Internet Corporation for Assigned Names and Numbers)有
会将原先未注册的顶级域名(TLD Top-Level Domain )(如 .yourcompany)添加到公共注册平台。因
此,Red Hat 烈建勿使用不代表自己的域名,即使在用网。因为这可能致同一域名根据网
行不同的解析。果,可能致无法使用网络资源。使用一个不代表自己的域名也使 DNSSEC 的部署和
持更加困,因域名冲突需要手配置才能 DNSSEC 验证。关于此问题的更多信息,
ICANN 域名冲突的常见问题ICANN FAQ on domain name collision 〉。
4.6.6. 了解信任了解信任Trust Anchor
信任 DNS 域名以及此域名相关的公用密(或公用密的散列成。其表述一个基本的 64 比特加
密密。其似于一种信息交方式的证书,含有公用密,可用于 DNS 记录进行核和身份验证。关于
信任更加完整的定 RFC 4033 〉。
4.6.7. 安装安装 DNSSEC
4.6.7.1. 安装安装 unbound
安全性指南安全性指南
72
要通在本机上使用 DNSSEC DNS 验证安装 DNS 解析器 unbound (或 bind )。移动设备
上只需安装 dnssec-trigger 于服器而言,安装unbound 当足了,尽管根据服器所在地(局域
网(LANlocal area network Internet),可能会要求本地域转发配置。 dnssec-trigger 当下只
在全球公共 DNS 区域提供帮助。NetworkManagerdhclient 以及 VPN 用程序通常可以自收集域列
表(和域名服器列表),但 dnssec-trigger unbound 却不行。
要安装 unbound 则须 root 以下命令:
~]# yum install unbound
4.6.7.2. 检查检查 unbound 是否在是否在
要判定 unbound 护进程是否在行,则须输入以下命令:
~]$ systemctl status unbound
unbound.service - Unbound recursive Domain Name Server
Loaded: loaded (/usr/lib/systemd/system/unbound.service; disabled)
Active: active (running) since Wed 2013-03-13 01:19:30 CET; 6h ago
systemctl status 命令将会 unbound Active: inactive (dead) ,若 unbound 未在行。
4.6.7.3. 启动启动 unbound
启动 unbound 护进程用于当前会则须 root 户运行以下命令:
~]# systemctl start unbound
systemctl enable 命令,以确保每次启动统时 unbound 开始行:
~]# systemctl enable unbound
unbound 护进程允使用以下目录对本地数据或覆写行配置:
/etc/unbound/conf.d 用于特定的域名添加配置。用于重定向域名查询到特定的 DNS 器。
通常用于只存在于企广域网(WANwide area network)的子域。
/etc/unbound/keys.d 用于特定的域名添加信任 DNSSEC 内部用域名
才需要,但并没有公用有的 DS 记录来建立信任途径。一种使用情况是,当内部域,使
用不同的 DNSKEY ,而不是使用企广域网之外可行的公用域名。
/etc/unbound/local.d 用于添加特定的 DNS 数据作本地覆写。者可用于建立黑名,或建手
覆写。个日期将会通 unbound 返回端,但是不会被标记为 DNSSEC 名。
NetworkManager 和一些 VPN 件可改变动态配置。些配置目含有注范例。更多信息
unbound.conf(5) 手册
4.6.7.4. 安装安装 Dnssec-trigger
dnssec-trigger 用程序作 dnssec-triggerd护进程来行。要安装 dnssec-trigger 则须
root 户运行以下命令:
~]# yum install dnssec-trigger
4 用工具和服用工具和服化您的系化您的系
73
4.6.7.5. 检查检查 Dnssec-trigger 护进护进程是否在程是否在
要判定 dnssec-triggerd 是否在行,则须输入以下命令:
~]$ systemctl status dnssec-triggerd
systemctl status dnssec-triggerd.service
dnssec-triggerd.service - Reconfigure local DNS(SEC) resolver on network
change
Loaded: loaded (/usr/lib/systemd/system/dnssec-triggerd.service; enabled)
Active: active (running) since Wed 2013-03-13 06:10:44 CET; 1h 41min ago
systemctl status 命令将会 dnssec-triggerd Active: inactive (dead) ,若 dnssec-
triggerd 护进程未在行。要在当前会用,则须 root 户运行以下命令:
~]# systemctl start dnssec-triggerd
systemctl enable 命令,以确保每次启动统时 unbound 开始行:
~]# systemctl enable dnssec-triggerd
4.6.8. 使用使用 Dnssec-trigger
dnssec-trigger 用程序有GNOME panel 的功能,用于 DNSSEC 测结果,以及用于 DNSSEC
命令求。要用此功能,则须 Super 键进用程序概览视图 Activities Overview),
DNSSEC ,然后再按 Enter 。一个形似船图标将会添加到屏幕底部的消息托。可通按屏幕底部右
形通知图标示。右击锚图标会出现弹出式菜
正常操作下, unbound 在本机可用作域名服器, resolv.conf 会指向 127.0.0.1。当您在 线热线热点登点登
Hotspot Sign-On 界面点 OK 就会改 DNS 器受到 NetworkManager 查询,并被
放入 resolv.conf。然后您就可以在无线热点登录页行身份验证图标示巨大的色感号以
作警示,提醒您 DNS 查询行并不安全。身份验证后, dnssec-trigger 可自动检测,并转换到安全模式。
尽管在某些情况下,它无法自动检测手工操作,选择 重新重新检测检测Reprobe
正常情况下,Dnssec-trigger 不需要用户进行交互操作。一旦 用,它会在后台工作。如果出现问题,它会
出消息框来通知用。它也会将 resolv.conf 文件的更通知 unbound
4.6.9. DNSSEC 使用使 dig 命令
DNSSEC 是否在工作,可用不同的命令行工具。最好的使用工具就是 bind-utils 工具包中的 dig
令。其他可用的工具分是, ldns 工具包中的 drill unbound 工具包中的 unbound-host 。旧版的 DNS
用程序 nslookup host 都已过时,不再使用。
要使用 dig DNSSEC 数据查询请求,则须添加 +dnssec 选项到命令中,例如:
~]$ dig +dnssec whitehouse.gov
; <<>> DiG 9.9.3-rl.13207.22-P2-RedHat-9.9.3-4.P2.el7 <<>> +dnssec
whitehouse.gov
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21388
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
安全性指南安全性指南
74
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;whitehouse.gov. IN A
;; ANSWER SECTION:
whitehouse.gov. 20 IN A 72.246.36.110
whitehouse.gov. 20 IN RRSIG A 7 2 20 20130825124016 20130822114016 8399
whitehouse.gov. BB8VHWEkIaKpaLprt3hq1GkjDROvkmjYTBxiGhuki/BJn3PoIGyrftxR
HH0377I0Lsybj/uZv5hL4UwWd/lw6Gn8GPikqhztAkgMxddMQ2IARP6p
wbMOKbSUuV6NGUT1WWwpbi+LelFMqQcAq3Se66iyH0Jem7HtgPEUE1Zc 3oI=
;; Query time: 227 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 22 22:01:52 EDT 2013
;; MSG SIZE rcvd: 233
A 记录之外,所返回的 RRSIG 记录含有 DNSSEC 名以及名的初始时间和截止时间。据 unbound
示,通返回的 flags: 区段下 ad 比特可知数据已经过 DNSSEC 身份验证
如果 DNSSEC 验证 dig 命令将会返回 SERVFAIL 错误
~]$ dig badsign-a.test.dnssec-tools.org
; <<>> DiG 9.9.3-rl.156.01-P1-RedHat-9.9.3-3.P1.el7 <<>> badsign-
a.test.dnssec-tools.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 1010
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;badsign-a.test.dnssec-tools.org. IN A
;; Query time: 1284 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 22 22:04:52 EDT 2013
;; MSG SIZE rcvd: 60]
看关于失的更多信息,则须指定 +cd 选项加入到 dig 命令中,以禁止 DNSSEC 检查
~]$ dig +cd +dnssec badsign-a.test.dnssec-tools.org
; <<>> DiG 9.9.3-rl.156.01-P1-RedHat-9.9.3-3.P1.el7 <<>> +cd +dnssec
badsign-a.test.dnssec-tools.org
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26065
;; flags: qr rd ra cd; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags: do; udp: 4096
;; QUESTION SECTION:
;badsign-a.test.dnssec-tools.org. IN A
;; ANSWER SECTION:
4 用工具和服用工具和服化您的系化您的系
75
badsign-a.test.dnssec-tools.org. 49 IN A 75.119.216.33
badsign-a.test.dnssec-tools.org. 49 IN RRSIG A 5 4 86400 20130919183720
20130820173720 19442 test.dnssec-tools.org.
E572dLKMvYB4cgTRyAHIKKEvdOP7tockQb7hXFNZKVbfXbZJOIDREJrr
zCgAfJ2hykfY0yJHAlnuQvM0s6xOnNBSvc2xLIybJdfTaN6kSR0YFdYZ
n2NpPctn2kUBn5UR1BJRin3Gqy20LZlZx2KD7cZBtieMsU/IunyhCSc0 kYw=
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Aug 22 22:06:31 EDT 2013
;; MSG SIZE rcvd: 257
通常, DNSSEC 错误会自己错误的初始时间或截止时间。尽管在本例中, www.dnssec-tools.org 访问
者蓄意 RRSIG 名,是我无法通动查看此出来行探错误将会示在 systemctl
status unbound 出中,且 unbound 护进程会将错误记录 syslog ,如下所示:
Aug 22 22:04:52 laptop unbound: [3065:0] info: validation failure badsign-
a.test.dnssec-tools.org. A IN
使用 unbound-host的示例:
~]$ unbound-host -C /etc/unbound/unbound.conf -v whitehouse.gov
whitehouse.gov has address 184.25.196.110 (secure)
whitehouse.gov has IPv6 address 2600:1417:11:2:8800::fc4 (secure)
whitehouse.gov has IPv6 address 2600:1417:11:2:8000::fc4 (secure)
whitehouse.gov mail is handled by 105 mail1.eop.gov. (secure)
whitehouse.gov mail is handled by 110 mail5.eop.gov. (secure)
whitehouse.gov mail is handled by 105 mail4.eop.gov. (secure)
whitehouse.gov mail is handled by 110 mail6.eop.gov. (secure)
whitehouse.gov mail is handled by 105 mail2.eop.gov. (secure)
whitehouse.gov mail is handled by 105 mail3.eop.gov. (secure)
4.6.10. 装配 Dnssec-trigger 线热线热点探测设备测设备
接网络时 dnssec-trigger 尝试线热点。无线热点通常是一种会在可使用网之前迫使用户进
交互的设备。通过尝试一已知内容的指定网,来完成探。如果存在无线热点,不会有如期所
料的接收内容。
置一已知的固定网,使其可通 dnssec-trigger 用于探线热点,则须如下行:
1. 某些在互网上可公开访问的机器,置其网器。关于网器的更多信息,
Red Hat Enterprise Linux 7 管理指南 》。
2. 一旦您器开始行,会将已知内容的静态页布到服器上。此面无需一定是有效的
HTML 面。例如,您可使用一个名 hotspot.txt只含有 OK 字符串的文本文件。假您的服
器位于 example.com ,您可将 hotspot.txt 文件布到网器的
document_root/static/ 子目,那么您静器的地址将是
example.com/static/hotspot.txt Red Hat Enterprise Linux 7 管理指南
下的 DocumentRoot 指令。
3. 将以下命令行添加到 /etc/dnssec-trigger/dnssec-trigger.conf 文件:
url: "http://example.com/static/hotspot.txt OK"
安全性指南安全性指南
76
此命令添加了一个可通 HTTP 80端口)探到的 URL 。第一部分就是可解析的 URL 以及可下
面。命令的第二部分是所下的网页预期含有的文本字符串。
关于配置取的更多信息,手册 dnssec-trigger.conf(8)
4.6.11. 对连接所提供的域接所提供的域 DNSSEC 验证验证配置
在默情况下,转发区及其固有的域名服器会通 dnssec-trigger 添加到 unbound ,以用于任何通
NetworkManager 接所提供的域,除了 Wi-Fi 接之外。默情况下,所有添加到 unbound 转发区都
DNSSEC 验证
用于验证转发区的默可被更改,从而所有的转发区在默情况下将 DNSSEC 验证。要做到
一点,则须更改 dnssec-trigger 配置文件 /etc/dnssec.conf 下的
validate_connection_provided_zones 量。作 root ,打开并编辑以下命令行:
validate_connection_provided_zones=no
无法更改任何有的转发区,只能更改未来的转发区。因此,如果您想禁止 DNSSEC 用于当前所提供的域,
那么您需要重新接。
4.6.11.1. Wi-Fi 所提供的域所提供的域 DNSSEC 验证验证配置配置
Wi-Fi 所提供的区域添加转发区即可用。要实现此功能,则须更改 dnssec-trigger 配置文件
/etc/dnssec.conf add_wifi_provided_zones 量。作 root ,打开并编辑以下命令行:
add_wifi_provided_zones=yes
任何已存在的转发区无法行更改,只能将要行的转发行更改。因此,如果您要禁止 DNSSEC
于当前 Wi-Fi 所提供的域,那么您需要重新接(重新开 Wi-Fi
警告警告
打开添加到 unbound 为转发区的 Wi-Fi 所提供的域,可能会出安全患,例如:
1. 一个 Wi-Fi 接入点可能有意通 DHCP Dynamic host configuration protocol
主机配置主机配置协议协议 您提供一个域,而它并无 DHCP 限,也无法将您所有的 DNS 查询发
送到其 DNS
2. 如果您转发 DNSSEC 验证,那么 Wi-Fi 所提供的 DNS 器可从所提供的
域中,造用于域名的 IP 地址,而您并不知情。
4.6.12. 附加
以下源将 DNSSEC 行更多的
4.6.12.1. 已安装的文档已安装的文档
dnssec-trigger(8) 手册 —— 描述用于 dnssec-triggerd, dnssec-trigger-control 以及
dnssec-trigger-panel 的命令选项
dnssec-trigger.conf(8) 手册 —— 描述用于 dnssec-triggerd 的配置选项
4 用工具和服用工具和服化您的系化您的系
77
unbound(8) 手册 —— 描述用于 unbound 以及 DNS 验证解析器的命令选项
unbound.conf(5) 手册 —— 含有配置 unbound 的信息。
resolv.conf(5) 手册 —— 含有解析器例程所取的信息。
4.6.12.2. 线线文档
http://tools.ietf.org/html/rfc4033
RFC 4033 DNS 安全介及其要求( DNS Security Introduction and Requirements)。
http://www.dnssec.net/
接到 DNSSEC 源的网站。
http://www.dnssec-deployment.org/
DNSSEC 部署划( DNSSEC Deployment Initiative)由国土安全部助( Department for
Homeland Security),含有大量 DNSSEC 信息,并通 件列表来讨论 DNSSEC 部署事
http://www.internetsociety.org/deploy360/dnssec/community/
网大会(Internet Society)的 “Deploy 360 划是了促协调 DNSSEC 部署,
在全球范发现团体和 DNSSEC 的良好源。
http://www.unbound.net/
此文档含有关于 unbound DNS 的基本信息。
http://www.nlnetlabs.nl/projects/dnssec-trigger/
此文档含有关于 dnssec-trigger 的基本信息。
4.7. 私用网私用网VPN
Red Hat Enterprise Linux 7 中,VPN可以用受到 Libreswan 用支持的 IPsec 加密通道协议行配置
Virtual Private Network(VPN) )。Libreswan Openswan 用的一个分支,是可交文档中的例
子。NetworkManager IPsec 插件称 NetworkManager-libreswanGNOME Shell 的用需要安装
NetworkManager-libreswan 附件的 NetworkManager-libreswan-gnome 数据包。
Red Hat Enterprise Linux 7中,Libreswan 是一个开放源,用 IPsec目可以从中 。它
使用 Internet key exchange (IKE) 协议 IKE 版本 1 和版本 2 被作户级别的后台程序来行。手
也可以通 ip xfrm 命令建立,但不推荐这样做。 Libreswan Linux 内核接, 用网络链接来移加密秘
。加密包和解密包在 Linux 内核中
Libreswan 使用 network security services (NSS) 加密 Federal Information Processing Standard
(FIPS) 安全合要求的。
4.7.1. 使用使用 Libreswan IPsec VPN
要安装 Libreswan,以 root 身份入以下命令:
~]# yum install libreswan
检查 Libreswan是否已安装,入以下命令:
安全性指南安全性指南
78
~]$ yum info libreswan
新安装 Libreswan 之后, NSS 数据将作安装程的一部分被初始化。但是,如果您要开始一个新的数据
,首先要按以下方式移除旧的数据
~]# rm /etc/ipsec.d/*db
然后,初始化一个新的 NSS 数据,以 root 身份入以下命令:
~]# ipsec initnss
Enter a password which will be used to encrypt your keys.
The password should be at least 8 characters long,
and should contain at least one non-alphabetic character.
Enter new password:
Re-enter password:
如果您不想使用 NSS ,那么在被提示入密候,直接按 Enter。如果您入了密,那么每
Libreswan 启动时 您需要再次入密,就像每次系统启动时
检查 Libreswan 提供的 ipsec 后台程序是否行,入以下命令:
~]$ systemctl status ipsec
ipsec.service - Internet Key Exchange (IKE) Protocol Daemon for IPsec
Loaded: loaded (/usr/lib/systemd/system/ipsec.service; disabled)
Active: inactive (dead)
启动 Libreswan 提供的 ipsec 后台程序,以 root 身份入以下命令:
~]# systemctl start ipsec
确定后台程序正在行:
~]$ systemctl status ipsec
ipsec.service - Internet Key Exchange (IKE) Protocol Daemon for IPsec
Loaded: loaded (/usr/lib/systemd/system/ipsec.service; disabled)
Active: active (running) since Wed 2013-08-21 12:14:12 CEST; 18s ago
确定启动式,Libreswan 也会启动,以 root 身份入以下命令:
~]# systemctl enable ipsec
配置媒介以及基于主机的防火来允 ipsec 查阅 4.5 使用防火 >得到防火和允指定
程序通的有关信息。Libreswan 要求防火以下数据包通
针对 Internet Key Exchange (IKE) 协议 UDP 端口 500
针对 IKE NAT-Traversal UDP 端口 4500
针对 Encapsulated Security Payload (ESP) IPsec 数据包的端口 50
针对 Authenticated Header (AH) IPsec 数据包(非常)的端口 51
4 用工具和服用工具和服化您的系化您的系
79
提供了三个例子,用 Libreswan 建立一个 IPsec VPN。第一个例子是将个主机接在一起,使之可以
安全通。第二个例子是将个站点接起来成一个网。第三个例子是支持漫游用,在此境里被称
road warriors
4.7.2. 使用使用 Libreswan VPN 配置配置
Libreswan 不使用术语 source”(来源) destination”(目的)。相反,它用术语 “left(左
right”(右 来代指端(主机)。然大多数管理left 表示本地主机,right” 表示程主机,但是
这样可以再大多数情况下在端上使用相同的配置。
有三种常用的方法为终端提供认证
Pre-Shared Keys PSK 是最简单明方法。PSK 由随机字符成,度至少 20 个字符。考
非随机和和短的 PSK 的危,当系 FIPS 模式下个方法不能使用。
Raw RSA 常用于静的主机主机,或者子网子网的 IPsec 配置。些主机用彼此的公共 RSA
配置。当多或者更多主机都需要彼此建立 IPsec 通道个方法不能很好地展。
X.509 认证常用于有多主机需要接到一个常用的 IPsec 通道的大模配置。一个中央认证
certificate authority CA))被用于主机或者用注册 RSA 认证个中央 CA 负责转播信任关系,
包括取消每个主机和用
4.7.3. 使用使用 Libreswan 的主机的主机主机 VPN
要配置 Libreswan 建一个主机主机 IPsec VPN,在个被指定 left “right 的主机之,以 root
身份在指定left 的主机上入以下命令,建一个新的 RSA 钥组
~]# ipsec newhostkey --configdir /etc/ipsec.d \
--output /etc/ipsec.d/www.example.com.secrets
Generated RSA key pair using the NSS database
这样产生一个用于主机的 RSA 钥组 RSA 程要花上好几分,尤其是在的虚机上。
看公共秘,以 root 身份在指定left 的主机上入以下命令:
~]# ipsec showhostkey --left
# rsakey AQOrlo+hO
leftrsasigkey=0sAQOrlo+hOafUZDlCQmXFrje/oZm [...] W2n417C/4urYHQkCvuIQ==
您需要个秘来增加配置文件,如下文所示:
root 身份在指定right 的主机上入以下命令:
~]# ipsec newhostkey --configdir /etc/ipsec.d \
--output /etc/ipsec.d/www.example.com.secrets
Generated RSA key pair using the NSS database
看公共秘,以 root 身份在指定right 的主机上入以下命令:
~]# ipsec showhostkey --right
# rsakey AQO3fwC6n
rightrsasigkey=0sAQO3fwC6nSSGgt64DWiYZzuHbc4 [...] D/v8t5YTQ==
您将需要把个秘增加到配置文件。
安全性指南安全性指南
80
秘密的部分被存 /etc/ipsec.d/*.db 文件里,也称 “NSS 数据
为这种主机主机的通道建立配置文件,要把上面的行 leftrsasigkey= rightrsasigkey= 增加到
一个位于 /etc/ipsec.d/ 中的自定配置里。要 Libreswan 出用配置文件, root 身份使
编辑器来编辑主配置文件 /etc/ipsec.conf ,并通移除 # 符来使用以下行,一行看起来是
include /etc/ipsec.d/*.conf
root 身份使用编辑器,用如下格式建一个有合适名称的文件:
/etc/ipsec.d/my_host-to-host.conf
按照如下方式编辑文件:
conn mytunnel
leftid=@west.example.com
left=192.1.2.23
leftrsasigkey=0sAQOrlo+hOafUZDlCQmXFrje/oZm [...] W2n417C/4urYHQkCvuIQ==
rightid=@east.example.com
right=192.1.2.45
rightrsasigkey=0sAQO3fwC6nSSGgt64DWiYZzuHbc4 [...] D/v8t5YTQ==
authby=rsasig
# load and initiate automatically
auto=start
您可以在左右主机上使用完全相同的配置文件。系会自动侦测left right”。如果其中一个主机是移
机,致使 IP 地址无法提前取,那么就在移主机上把 %defaultroute 用作它的 IP 地址。它能自动获
动态 IP 地址。在接受了来自接入手机的接的静主机上,用 %any 指定移主机的 IP 地址。
确保 leftrsasigkey left 主机上取,确定 rightrsasigkey right 主机上
ipsec 来确保它取新的配置:
~]# systemctl restart ipsec
root 入以下命令来加 IPsec 通道:
~]# ipsec auto --add mytunnel
要建立通道,在 left 或者 right,以 root 录输入以下命令:
~]# ipsec auto --up mytunnel
4.7.3.1. 查证查证使用使用 Libreswan 的主机的主机主机主机 VPN
IKE 协议产生于 UDP 端口 500 IPsec 数据包展示 Encapsulated Security Payload ESP)数据
包。当 VPN 接需要通一个 NAT 路由器ESP 数据包在端口 4500 上被打包在 UDP 数据包里。
要核数据包正在通 VPN 通道被送,以 root 身份按照以下格式入一条命令:
~]# tcpdump -n -i interface esp and udp port 500 and udp port 4500
00:32:32.632165 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1a),
4 用工具和服用工具和服化您的系化您的系
81
length 132
00:32:32.632592 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1a),
length 132
00:32:32.632592 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq
7, length 64
00:32:33.632221 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1b),
length 132
00:32:33.632731 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1b),
length 132
00:32:33.632731 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq
8, length 64
00:32:34.632183 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1c),
length 132
00:32:34.632607 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1c),
length 132
00:32:34.632607 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq
9, length 64
00:32:35.632233 IP 192.1.2.45 > 192.1.2.23: ESP(spi=0x63ad7e17,seq=0x1d),
length 132
00:32:35.632685 IP 192.1.2.23 > 192.1.2.45: ESP(spi=0x4841b647,seq=0x1d),
length 132
00:32:35.632685 IP 192.0.2.254 > 192.0.1.254: ICMP echo reply, id 2489, seq
10, length 64
其中 interface 就是用来荷通信的接口。要停止使用 tcpdump 的数据包,按下 Ctrl+C
注意注意
tcpdump 命令完全无法和 IPsec 。它仅仅识别向外的加密程序包,而不是向外的文档文件程序
包。它可以识别进入的加密程序包和入的解程序包。如果可以,在个机器之的路由器而非其中
一个端上 tcpdump
4.7.4. 使用使用 Libreswan 的点 VPN
Libreswan 建一个点 IPsec VPN,并个网,要在个主机之间创建一个 IPsec 通道,
配置端允一个或者更多子网通。所以,它可以被看作是通向网络远程部分的门户。点 VPN
置和主机主机 VPN 有的不同在于,必在配置文件中指定一个或者更多的网或子网。
要配置 Libreswan 建一个点 IPsec VPN,首先按照 4.7.3 使用 Libreswan 的主机主机
VPN” 所述,配置一个主机主机 IPsec VPN,然后拷或者移文件到一个有适当名称的文件里,例如
/etc/ipsec.d/my_site-to-site.conf。以 root 身份使用编辑编辑编辑自定配置文件
/etc/ipsec.d/my_site-to-site.conf 如下:
conn mysubnet
also=mytunnel
leftsubnet=192.0.1.0/24
rightsubnet=192.0.2.0/24
conn mysubnet6
also=mytunnel
connaddrfamily=ipv6
leftsubnet=2001:db8:0:1::/64
rightsubnet=2001:db8:0:2::/64
安全性指南安全性指南
82
conn mytunnel
auto=start
leftid=@west.example.com
left=192.1.2.23
leftrsasigkey=0sAQOrlo+hOafUZDlCQmXFrje/oZm [...] W2n417C/4urYHQkCvuIQ==
rightid=@east.example.com
right=192.1.2.45
rightrsasigkey=0sAQO3fwC6nSSGgt64DWiYZzuHbc4 [...] D/v8t5YTQ==
authby=rsasig
要建立通道,需重 Libreswan 或者手,并初始化所有接,以 root 身份使用以下命令:
~]# ipsec auto --add mysubnet
~]# ipsec auto --add mysubnet6
~]# ipsec auto --add mytunnel
~]# ipsec auto --up mysubnet
104 "mysubnet" #1: STATE_MAIN_I1: initiate
003 "mysubnet" #1: received Vendor ID payload [Dead Peer Detection]
003 "mytunnel" #1: received Vendor ID payload [FRAGMENTATION]
106 "mysubnet" #1: STATE_MAIN_I2: sent MI2, expecting MR2
108 "mysubnet" #1: STATE_MAIN_I3: sent MI3, expecting MR3
003 "mysubnet" #1: received Vendor ID payload [CAN-IKEv2]
004 "mysubnet" #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_RSA_SIG
cipher=aes_128 prf=oakley_sha group=modp2048}
117 "mysubnet" #2: STATE_QUICK_I1: initiate
004 "mysubnet" #2: STATE_QUICK_I2: sent QI2, IPsec SA established tunnel
mode {ESP=>0x9414a615 <0x1a8eb4ef xfrm=AES_128-HMAC_SHA1 NATOA=none NATD=none
DPD=none}
~]# ipsec auto --up mysubnet6
003 "mytunnel" #1: received Vendor ID payload [FRAGMENTATION]
117 "mysubnet" #2: STATE_QUICK_I1: initiate
004 "mysubnet" #2: STATE_QUICK_I2: sent QI2, IPsec SA established tunnel
mode {ESP=>0x06fe2099 <0x75eaa862 xfrm=AES_128-HMAC_SHA1 NATOA=none NATD=none
DPD=none}
~]# ipsec auto --up mytunnel
104 "mytunnel" #1: STATE_MAIN_I1: initiate
003 "mytunnel" #1: received Vendor ID payload [Dead Peer Detection]
003 "mytunnel" #1: received Vendor ID payload [FRAGMENTATION]
106 "mytunnel" #1: STATE_MAIN_I2: sent MI2, expecting MR2
108 "mytunnel" #1: STATE_MAIN_I3: sent MI3, expecting MR3
003 "mytunnel" #1: received Vendor ID payload [CAN-IKEv2]
004 "mytunnel" #1: STATE_MAIN_I4: ISAKMP SA established {auth=OAKLEY_RSA_SIG
cipher=aes_128 prf=oakley_sha group=modp2048}
117 "mytunnel" #2: STATE_QUICK_I1: initiate
004 "mytunnel" #2: STATE_QUICK_I2: sent QI2, IPsec SA established tunnel
mode {ESP=>0x9414a615 >0x1a8eb4ef xfrm=AES_128-HMAC_SHA1 NATOA=none NATD=none
DPD=none}
4 用工具和服用工具和服化您的系化您的系
83
4.7.4.1. 实带实带 Libreswan 的点的点VPN
数据包正在通 VPN 通道被送,是和 4.7.3.1 查证使用 Libreswan 的主机主机 VPN >中所
的完全一程。
4.7.5. 使用使用 Libreswan 的点一隧道一隧道 VPN
通常,当点点的通道建完成,网关需要使用它内在的 IP 地址,而不是它公共的 IP 地址来互相
系。使用一隧道可以实现。如果名 west left 的主机,有内在的 IP 地址 192.0.1.254,如果名
east right 的主机有内在的 IP 地址 192.0.2.254,可以使用一隧道的配置可以被使用:
conn mysubnet
leftid=@west.example.com
leftrsasigkey=0sAQOrlo+hOafUZDlCQmXFrje/oZm [...] W2n417C/4urYHQkCvuIQ==
left=192.1.2.23
leftsourceip=192.0.1.254
leftsubnet=192.0.1.0/24
rightid=@east.example.com
rightrsasigkey=0sAQO3fwC6nSSGgt64DWiYZzuHbc4 [...] D/v8t5YTQ==
right=192.1.2.45
rightsourceip=192.0.2.254
rightsubnet=192.0.2.0/24
auto=start
authby=rsasig
4.7.6. 子网延伸使用子网延伸使用 Libreswan
常, IPsec 被部署在集散体系结构。每个叶点都有 IP ,它是更大范的一部分。叶通线器相互
系。被称
子网延伸
。在下列例子中,我使用 10.0.0.0/8 配置部及使用更小 /24 子网的分
支。
部:
conn branch1
left=1.2.3.4
leftid=@headoffice
leftsubnet=0.0.0.0/0
leftrsasigkey=0sA[...]
#
right=5.6.7.8
rightid=@branch1
righsubnet=10.0.1.0/24
rightrsasigkey=0sAXXXX[...]
#
auto=start
authby=rsasigkey
conn branch2
left=1.2.3.4
leftid=@headoffice
leftsubnet=0.0.0.0/0
leftrsasigkey=0sA[...]
#
安全性指南安全性指南
84
right=10.11.12.13
rightid=@branch2
righsubnet=10.0.2.0/24
rightrsasigkey=0sAYYYY[...]
#
auto=start
authby=rsasigkey
branch1公室,我使用相同的接。外我使用传递链接来排除我从隧道被送的本地 LAN
量:
conn branch1
left=1.2.3.4
leftid=@headoffice
leftsubnet=0.0.0.0/0
leftrsasigkey=0sA[...]
#
right=10.11.12.13
rightid=@branch2
righsubnet=10.0.1.0/24
rightrsasigkey=0sAYYYY[...]
#
auto=start
authby=rsasigkey
conn passthrough
left=1.2.3.4
right=0.0.0.0
leftsubnet=10.0.1.0/24
rightsubnet=10.0.1.0/24
authby=never
type=passthrough
auto=route
4.7.7. 使用使用 Libreswan Road Warrior
Road Warrior 是具有动态分配 IP 地址的流端的旅行用,比如说笔记电脑些通过证书进行身份
验证
在服器上:
conn roadwarriors
left=1.2.3.4
# if access to the LAN is given, enable this
#leftsubnet=10.10.0.0/16
leftcert=gw.example.com
leftid=%fromcert
right=%any
# trust our own Certificate Agency
rightca=%same
# allow clients to be behind a NAT router
rightsubnet=vhost:%priv,%no
authby=rsasigkey
# load connection, don't initiate
auto=add
4 用工具和服用工具和服化您的系化您的系
85
# kill vanished roadwarriors
dpddelay=30
dpdtimeout=120
dpdaction=%clear
在流端上,也就是 Road Warrior 设备上,我需要稍微修改以上配置:
conn roadwarriors
# pick up our dynamic IP
left=%defaultroute
leftcert=myname.example.com
leftid=%fromcert
# right can also be a DNS hostname
right=1.2.3.4
# if access to the remote LAN is required, enable this
#rightsubnet=10.10.0.0/16
# trust our own Certificate Agency
rightca=%same
authby=rsasigkey
# Initiate connection
auto=start
4.7.8. Road Warrior 用使用了用使用了 Libreswan X.509 XAUTH
当使用 XAUTH IPsec 展名来建立Libreswan 本身提供了分配 IP 地址的方法以及 DNS 信息去漫
VPN端。也可使用 PSK X.509 证书来部署 XAUTH,使用 X.509 部署更安全。客证书可以被
列表或
线证书态协议
(OCSP 。使用 X.509 证书,个体客端不能模器。使用
PSK,也被称为组,在理上是可行的。
此外,XAUTH 要求 VPN 端使用用名和密识别自身。用一次性密OTPOne time Passwords),
比如谷歌验证器或 RSA 安全 ID 标记,一次性标记可被附加到用之后。
XAUTH有三种可能的后端:
xauthby=pam
它使用在 /etc/pam.d/pluto 的配置来验证 它自身可以使用多种后端来配置 Pam。它可
以使用系统账户方案在、LDAP RADIUS 器或自定码验证
xauthby=file
它使用配置文件 /etc/ipsec.d/passwd(不要与 /etc/ipsec.d/nsspassword 混淆)。
文件的格式与 Apache htpasswd 文档似和 Apache htpasswd 命令可以被用来建此文件
里的条目。但是,在用名和密之后,要求第三列使用 IPsec 接名的接,比如当使用
程用提供VPN除用,密文件的条目应该看起来如下:
user1:$apr1$MIwQ3DHb$1I69LzTnZhnCT2DPQmAOK.:remoteusers
NOTE:当使用 htpasswd 命令,接名被手添加在
之后:每一行
user:password 之后。
xauthby=alwaysok
是会假定 XAUTH 和密合是正确的。尽管服器忽略了些,客端也需要指
定用名和密些只有当用 X.509 证书识别之后才能被使用,或者在不需要 XAUTH
时检测 VPN
使用 X.509 证书的配置示例
安全性指南安全性指南
86
conn xauth-rsa
auto=add
authby=rsasig
pfs=no
rekey=no
left=ServerIP
leftcert=vpn.example.com
#leftid=%fromcert
leftid=vpn.example.com
leftsendcert=always
leftsubnet=0.0.0.0/0
rightaddresspool=10.234.123.2-10.234.123.254
right=%any
rightrsasigkey=%cert
modecfgdns1=1.2.3.4
modecfgdns2=8.8.8.8
modecfgdomain=example.com
modecfgbanner="Authorized Access is allowed"
leftxauthserver=yes
rightxauthclient=yes
leftmodecfgserver=yes
rightmodecfgclient=yes
modecfgpull=yes
xauthby=pam
dpddelay=30
dpdtimeout=120
dpdaction=clear
ike_frag=yes
# for walled-garden on xauth failure
# xauthfail=soft
#leftupdown=/custom/_updown
xauthfail “soft",而不是 "hard"验证便被忽略,VPN 验证是成功的一
。从上至下的自定脚本可以被用来检查环 XAUTH_FAILED些用可以被重新定向,比如使用
iptables DNAT 重新定向至 内的花 ,在那里他可以系管理,或者更新这项的付费订阅
VPN 端使用 modecfgdomain DNS 条目去重新定向指定的域查询指定的名称服器。使得漫
游用可以使用内部 DNS 名称,来访问仅供内部使用的
如果 leftsubnet 不是 0.0.0.0/0,拆分隧道配置求会被自送到客端。比如,当使用
leftsubnet=10.0.0.0/8VPN 端只会通 VPN 把流量送到 10.0.0.0/8
4.7.9. 附加附加
接下来的信息源会提供关于 LibreSwan 以及 ipsec 后台程序的
4.7.9.1. 已安装的文档已安装的文档
ipsec(8) 手册—— ipsec 描述命令选项
ipsec.conf(5) 手册-包含配置 ipsec 的信息。
ipsec.secrets(5) 手册包含配置ipsec 的信息。
4 用工具和服用工具和服化您的系化您的系
87
ipsec_auto(8) man page —描述 auto的命令行客端的命令选项,以操作自动键入的 LibreSwan
IPsec 接。
ipsec_rsasigkey(8) 手册-描述生成 RSA 名秘的工具。
/usr/share/doc/libreswan-version/README.nss——描述用于原始 RSA 的命令及使用
Libreswan pluto 程序的加密证书
4.7.9.2. 线线文档文档
https://libreswan.org
上游目的网站。
http://www.mozilla.org/projects/security/pki/nss/
安全服Network Security Services
4.8. 加密加密
4.8.1. 使用使用 LUKS 加密
格式的 Linux 一密钥设置(或称 LUKS)可您加密 Linux 算机中的分区。这对可移动计算机以及
可移重要。LUKS 可允使用多个用解密用于分区批加密的主密
LUKS 概要
LUKS 能做什么能做什么
LUKS 全区设备加密,因此,非常适用于保动设备的内容,如可移存媒体或
电脑盘驱动器。
加密区设备的基本内容可任意内容。这对于加密 swap 设备十分有用。这对用于特定的格式化
设备数据存的某些数据也是很有用的。
LUKS 使用设备映射器的内核子系
LUKS ,可提供防止字典攻
LUKS 设备含有多个密槽,允添加用密或密
LUKS “
不能不能
做的是:做的是:
LUKS 不适用于需要很多(超 8 个)用户对同一设备有不同访问的程序。
LUKS 不适用于需要文件级别加密的程序。
4.8.1.1. 帽企帽企 Linux 中的中的 LUKS
帽企 Linux 6 采用 LUKS 行文件系加密。默情况下不会在安装程中选择加密文件系选项
如果您选择该选项加密您的硬每次您引导计算机都会提示您入密个密您用于
分区解密的批加密密。如果您选择要修改默分区表,您可以选择您要加密的分区。是在分区表
值设定的。
安全性指南安全性指南
88
用于 LUKS cryptsetup --help)的默 aes-cbc-essiv:sha256 ESSIV - Encrypted
Salt-Sector Initialization Vector,加密密 hash,是 Linux dm-crpt 使用的 IV )。注意,默
情况下,在 XTS 模式(aes-xts-plain64)下使用此安装程序 Anaconda LUKS 的默钥长 256
位。 LUKS Anaconda XTS 模式) 的默钥长 512 位。 可用的密码为
AES - 加密 - FIPS PUB 197
Twofish128
Serpent
cast5 - RFC 2144
cast6 - RFC 2612
4.8.1.2. 加密目加密目
警告警告
按照个步骤执行将除您要加密的分区中的所有数据。您将会失所有信息!在开始个步
前,确保您在外部信源中份了数据。
1. root ,用 shell 提示符入以下命令,行等 1
telinit 1
2. 有的 /home:
umount /home
3. 如果上一步的命令失,那么使用 fuser 找占用 /home 的程序并将其止:
fuser -mvk /home
4. 检验是否有装 /home
grep home /proc/mounts
5. 将随机数据填入您的分区:
shred -v --iterations=1 /dev/VG00/LV_home
此命令会以您设备序写入速度行,可能要花些时间才能完成。它是确保未加密的数据不会保
留在使用设备上,并混淆部分含有加密数据却又不是随机数据的设备
6. 初始化您的分区:
cryptsetup --verbose --verify-passphrase luksFormat /dev/VG00/LV_home
7. 打开新加密的设备
cryptsetup luksOpen /dev/VG00/LV_home home
4 用工具和服用工具和服化您的系化您的系
89
8. 确保设备存在:
ls -l /dev/mapper | grep home
9. 建文件系
mkfs.ext3 /dev/mapper/home
10. 文件系
mount /dev/mapper/home /home
11. 确保文件系
df -h | grep home
12. 添加以下命令到 /etc/crypttab 文件:
home /dev/VG00/LV_home none
13. 编辑 /etc/fstab 文件,移除 /home 旧的入口,并添加以下命令行:
/dev/mapper/home /home ext3 defaults 1 2
14. 恢复默 SELinux 安全境:
/sbin/restorecon -v -R /home
15. 机器:
shutdown -r now
16. /etc/crypttab 条目在启动时,您的电脑询问您的 luks
17. root ,并恢复您的份。
在您就有一个加密的分区,即便电脑处于关机的状,可安全地放置您所有的数据。
4.8.1.3. 为现为现设备设备添加新密添加新密
使用以下命令,添加新的密有的设备
cryptsetup luksAddKey <device>
提示您有密语进验证后,将提示您入新密
4.8.1.4. 有的有的设备中移除密中移除密
使用以下命令,从设备中移除密
cryptsetup luksRemoveKey <device>
安全性指南安全性指南
90
将提示您要除的密,然后是剩下用来验证的任意密
4.8.1.5. Anaconda 建加密建加密块设备块设备
您可以在系安装程中建加密块设备可允松使用加密分区配置系
对块设备加密,则须选择分区时检查 加密系加密系 Encrypt System)复框,或在建独立分区、
RAID Redundant Arrays of independent Disks,磁盘阵列)列或逻辑,勾 加密(加密(Encrypt
框。在您完成分区之后,系会提示您入加密的密。要求此密访问加密设备。如果您有
先存在的 LUKS 设备,并有其在早期安装程中所提供的密,那么入密语对话框中将也会含有
框。检查此复框表明,您将新的密添加到先存在的加密块设备中每个可用的槽。
注意注意
分区 屏幕上检查Automatic Partitioning 加密系加密系 Encrypt System)复框,然后选择
建自定建自定分区分区Create custom layout),这样就不会引起任何块设备进行自加密。
注意注意
您可使用 kickstart 每个新加密的块设备设独的密
4.8.1.6. 附加附加
关于 LUKS 或是在 Red Hat Enterprise Linux 7 下加密硬的其他信息,请访问以下
LUKS home page
LUKS/cryptsetup FAQ
LUKS - Linux Unified Key Setup Wikipedia article
HOWTO: Creating an encrypted Physical Volume (PV) using a second hard drive and pvmove
4.8.2. GPG
GPG GNU Privacy GuardGNU 士)用于识别您的身份,并您的通信行身份验证,包括那些您
认识的人。 GPG 任何通过读 GPG 件来验证其身份的人使用。话说 于某些十分确定
您所名的通信实际上就是来源于您, GPG 那些人使用。 GPG 有用是因它能防止第三方更改编码
中途对话,更改信息。
4.8.2.1. GNOME GPG
要在 GNOME GPG 则须遵循些步
1. 安装 Seahorse 用程序,更易于 GPG 的管理:
~]# yum install seahorse
2. 建密则须 用程序(用程序(Applications助程序(助程序(Accessories 选择 和加
密密密密Passwords and Encryption Keys, 启动 Seahorse 用程序。
4 用工具和服用工具和服化您的系化您的系
91
3. 文件(文件(File 选择 新文件(新文件(New ,再 PGP PGP KeyPretty Good
Privacy,加密,加密体) 。然后点 继续继续Continue.
4. 入您的全名、箱以及可用于描述您的选择性注(例如:· C ·史密斯( John C.
Smith), jsmith@example.com 件工程Software Engineer))。点 建(Create
然后会出现对话框,要求入密的密选择一个大又容易的密。点 OK ,密
建好了。
警告警告
如果您忘了您的密,那么您将无法解数据。
找您的 GPG ID则须在新建密旁的 IDKey ID 找。在大多数情况下,如果要
求您入密 ID ,那么在密 ID 之前加入 0x ,如 0x6789ABCD 。您份您的私,并保存在安全的
地方。
4.8.2.2. KDE GPG
要在 KDE(桌面境)中 GPG 则须遵循些步
1. 从主菜选择 用程序(用程序(Applications用程序(用程序(Utilities加密工具(加密工具(Encryption
Tool 启动 KGpg 程序。如果您从未使用 KGpg 程序,那么此程序会指您完成 GPG
程。
2. 会出现对话框,提示您建新的密钥对入您的姓名、箱以及选择是否添加注。您也可
您的密钥选择有效期,以及密度(位数)和算法。
3. 在下一个对话入您的密。此,您的密会出 KGpg 的主窗口。
警告警告
如果您忘了您的密,那么您将无法解数据。
找您的 GPG ID则须在新建密旁的 IDKey ID 找。在大多数情况下,如果要
求您入密 ID ,那么在密 ID 之前加入 0x ,如 0x6789ABCD 。您份您的私,并保存在安全的
地方。
4.8.2.3. 使用命令行使用命令行 GPG
1. 使用以下 shell 命令:
~]$ gpg2 --gen-key
个命令生成由公和私钥组成的密钥对。其它人可使用您的公钥认证和(或者)解密您的会。尽
量广泛布您的公,特那些您知道要从您里接收认证的人,比如件列表。
2. 一系列的提示会指您完成此程。若需要,按下 Enter予默认值。第一个提示会
您要选择的密
Please select what kind of key you want:
(1) RSA and RSA (default)
安全性指南安全性指南
92
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
Your selection?
在几乎所有情况下,默认值都是正确的选择RSA / RSA 通信名,您加密
文件。
3. 选择钥长度:
RSA keys may be between 1024 and 4096 bits long.
What keysize do you want? (2048)
认值 2048 位,于几乎所有的用,都是足的,而且有着极的安全级别
4. 选择的有效期。选择有效期,而不是使用 none 的默认值是很好的想法。例如,如果密
箱无效了,那么有效期将提醒其他人停止使用此公
Please specify how long the key should be valid.
0 = key does not expire
d = key expires in n days
w = key expires in n weeks
m = key expires in n months
y = key expires in n years
key is valid for? (0)
例如,入一个 1y ,会使密的有效期一年。(如果您改主意的,您可以在密生成之后更
改其有效期。)
5. gpg2 用程序询问签名信息之前,会出以下提示:
Is this correct (y/N)?
y 完成此程序。
6. 您的 GPG 钥输入您的姓名和箱。住此程序是要验证您的个人真身份。因此,包括您
的真姓名。如果您选择假的箱,那么其他人要找到您的公就更困了。会使您的通信身
验证难进行。例如,如果您在件列表中将此 GPG 用于您的个人介,那么在此列表中
入您使用的箱。
使用注字段添加名或者其它信息。(有些人不同目的使用不同的密,并使用注互相识别
比如“Office”或者“Open Source Projects”。)
7. 在确的提示信息中,如果所有入都是正确的,请输 O 字母;或者使用其他选择来解决任何
。最后,您的安全密钥输入密 gpg2 程序会要求您次密,以确保您没有
错误
8. 最后, gpg2 生随机数据,以尽可能地确保您的密是独一无二的。移您的鼠入随机密
,或在系统运行此步间执行其他任来加速此程。一旦完成此步,您的密就生成完
可以使用:
pub 1024D/1B2AFA1C 2005-03-31 John Q. Doe <jqdoe@example.com>
Key fingerprint = 117C FE83 22EA B843 3E86 6486 4320 545E 1B2A FA1C
sub 1024g/CEA4B22E 2005-03-31 [expires: 2006-03-31]
9. 是您密。它允您确其他人是否接收您的真,有没有改。
4 用工具和服用工具和服化您的系化您的系
93
您不需要写下此指。在任何时间示此指则须使用此命令,替您的箱:
~]$ gpg2 --fingerprint jqdoe@example.com
您的 “GPG key ID” 8 个十六制数字成,用于识别。在上述示例中, GPG ID
1B2AFA1C 。在大多数情况下,如果要求您入密 ID ,那么在密 ID 之前加入 0x ,如
0x6789ABCD
警告警告
如果您忘了您的密则该就无法使用,且使用加密的数据将会失。
4.8.2.4. 有关公有关公加密加密
1. Wikipedia - Public Key Cryptography
2. HowStuffWorks - Encryption
4.8.3. 在公在公学中使用学中使用 openCryptoki
openCryptoki 是一个 Linux 下的 PKCS#11 开源实现,是一种
加密
PKCSPublic-Key
Cryptography Standard),定了通常称令牌的加密设备用程序接口(API)。令牌可在硬件或件中
行。此特点概述了 openCryptoki 是如何安装、配置,以及如何在 Red Hat Enterprise Linux 7 中使
用。
4.8.3.1. 安装安装 openCryptoki 启动启动
要在您的系中安装 openCryptoki 基本工具包,包括用于检测的令牌的实现则须 root 户运
以下命令:
~]# yum install opencryptoki
根据您打算使用的硬件令牌的型,您可能需要安装其他工具包以支持具体使用情况。例如,要
可信
算平台模
TPMTrusted Platform Module设备的支持,您需要安装 opencryptoki-tpmtok 工具包。
关于如何使用 Yum 工具包管理器安装工具包的基本信息, Red Hat Enterprise Linux 7 管理
》。
openCryptoki ,您需要 pkcsslotd 护进程。作 root 户执行以下命令,就可启动
前会的守护进程:
~]# systemctl start pkcsslotd
要确保在启动时可自动启用服则须运行以下命令:
~]# systemctl enable pkcsslotd
关于如何使用 systemd 来管理服的更多信息, Red Hat Enterprise Linux 7 管理指南 》。
4.8.3.2. 配置并使用配置并使用 openCryptoki
启动时 pkcsslotd 护进程会/etc/opencryptoki/opencryptoki.conf 配置文件,它可用于收
安全性指南安全性指南
94
集关于在系工作所配置的令牌以及其槽的信息。
此文件定了使用键值对的独立槽。每个槽的定可含有描述、可使用的令牌,以及槽制造者
ID 外,可槽的硬件和固件的版本行定。关于文件格式的描述以及独立和可分配给这
详细描述, opencryptoki.conf(5) 手册
要在修改 pkcsslotd 护进程的行则须使用 pkcsconf 用程序。此工具允示和配置守
程的状,以及列出并修改当前所配置的槽和令牌。例如,要示关于令牌的信息,则须发出以下命令(
注意, 所有需用 pkcsslotd 护进行通信的非 root pkcs11 统组的成
~]$ pkcsconf -t
关于可用于 pkcsconf 工具的参数列表, pkcsconf(1) 手册
警告警告
,只有完全可信的用户应可成 pkcs11 的成,因的所有成限阻止其他
openCryptoki 的用户访问所配置的 PKCS#11 令牌。
4 用工具和服用工具和服化您的系化您的系
95
5 统审统审
Linux 核系统为追踪系中与安全相关的信息提供了途径。基于配置原核将生成日志从而记录
可能多的在系生的事件。一信息对执行关境尤其重要,它可以确定那些反安全策略的人
以及他的行核不会提供外的安全保;相反,它能用来发现反安全策略的行。通
过额外的措施例如 SELinux 可以一步地防止反行
下面的列表总结了一些信息有关核能够记录的日志文件:
日期和时间型,以及事件果。
象的敏感性标签
事件关与触事件的用身份。
所有对审核配置的修改以及尝试访问审核日志文件。
所有认证机制的使用,例如 SSHKerberos、以及其他。
于任何信任数据的改,例如 /etc/passwd.
尝试把信息入系,或者从系出信息
包含或者排除以用身份,主标签以及其他属性的事件
使用核系也要求与安全有关的认证设计审核是了能足甚至超以下认证或者服从指南的要求:
受控制访问文件(CAPP
式安全保护设定文件(LSPP
基于规则集的访问控制(RSBAC
国家工安全划操作手册(NISPOM
邦信息安全管理法案(FISMA
支付卡行数据安全 (PCI-DSS)
安全技术实施指南 (STIG)
核也可以是:
由国家信息安全保障盟(NIAP)以及最佳安全行BSI
帽企 Linux 5 LSPP/CAPP/RSBAC/EAL4+ 认证
帽企 Linux 6 操作系文件/估保障等4+ (OSPP/EAL4+) 认证
用例用例
访问监测访问监测文件
核能追踪是否有人访问、修改或者行某个文件或者目,或者是否更改了文件属性。是很
有用的,例如检测访问重要文件以及审计记录以防其中的某个文件被破坏。
监测监测
每次使用特定的系统调,配置核来生成日志。例如,可以通过监测来追踪系中的
settimeofdayclock_adjtime 和其他与时间相关的系统调用。
安全性指南安全性指南
96
户记录户记录指令
为审核可以追踪文件是否被行,因此规则记录每一个的特定指令。例如,
每一个可行的 /bin录设规则。通的身份可以搜生的日志从而生成每一位用
行指令的审计记录
记录记录安全事件安全事件
pam_faillock 认证够记录的登录尝试,也可以通建立核来记录的登录尝试
并提供有关尝试外信息。
找事件找事件
核提供 ausearch 用程序,被用来筛选日志,并且提供基于多情况的审计记录
总结报总结报
aureport 用程序此外可以被用来生成所记录的事件的日常告。系管理分析告并且
一步调查可疑活
监测监测络访问络访问
iptables 以及 ebtables 用程序可以被配置用来触发审核事件,允管理员监测络访问
注意注意
核所收集的信息量可能影性能。
5.1. 核系
核系包含个主要部分:用用程序、用程序,以及 kernel-side 统调理。Kernel
件从用用程序接受系统调用,并且通三个过滤器中的一个过滤器来筛选 usertask 或者
exit。一旦系统调用通其中的一个过滤器,就将通 exclude 过滤送,是基于规则的配置,
并把它给审核的守程序做一步的理。 5.1 “核系 程。
5 统审统审
97
5.1. 核系核系
核守护进程收集来自于 Kernel 的信息,并在日志文件中造日志文件。其他核用
用程序与核守护进行信息交互,Kernel 件,或者核日志文件:
audisp度守护进程与核守护进行交互,把事件其他用程序做一步理。守护进
程的目的是了提供插入机制,这样话实时分析程序就能与核事件行交互。
auditctl 核控制用程序与 Kernel 行交互来控制生成事件程的定和参数。
剩余的用程序把核日志文件内容作为输入信息,并基于用要求生成出信息。例如,aureport
用程序生成所有记录事件的道。
5.2. 安装安装 audit 件包
了使用核系,您必在系中安装 audit 件包。audit packagesaudit audit-libs)是默安装在
帽企 Linux 6 中。如果您不想要安装件包,作 root 户执行以下命令来安装。
~]# yum install audit
5.3. 配置配置 audit
核守程序可以在 /etc/audit/auditd.conf 配置文件中行配置。个文件包括修改核守护进程特
性的配置参数。 # 字符(#)的任何空行或者文本都被忽略。所有配置参数的列表以及它的解都可以
audit.conf(5) 手册中找到。
5.3.1. CAPP 境配置境配置 auditd
auditd 配置应该对大多数境都适合。但是如果您的境符合由
可控制存取保档案
CAPP)所建立
准,将是公共认证的一部分,核守程序必用以下定配置:
安全性指南安全性指南
98
保存核日志文件的目/var/log/audit/应该一个分区。将防止其他程耗此目
中的空,并且剩余的核守程序提供准确的检测
max_log_file 参数详细说明了每个核日志文件最少的占用空,参数必须设充分利用保存核日
志文件分区所在的可用空
max_log_file_action 参数决定采取何种行,一旦到 max_log_file中所定的极限,则应该
keep_logs 防止核日志文件被重写。
space_left 参数明确明磁中可用空的数量,这样space_left_action 参数中所定的行
会被触。此参数必一个数字它会予管理者足时间来回和刷新磁
space_left 取决于核日志文件生成的速度。
推荐您采用合适的通知方法把 space_left_action 参数email 或者 exec
admin_space_left 参数明确明自由空绝对最小数量,了在 admin_space_left_action
数中所定的行会被触,必须设定一个会予管理者的日志行动总够
admin_space_left_action 参数必须设 single 使系属于一用模式,并且允管理者开放一
些磁
disk_full_action 参数明确明当保存核日志文件的分区没有可用空间时应该,并且必
须设 halt 或者 single保障了当核不再记录事件,系也能在一用模式下关或者
行。
disk_error_action,明确明如果保存在核日志文件的分区检测错误时应该采取行,必须设
syslogsingle 或者 halt取决于当地的安全政策有关硬件故障的理。
flush 配置参数必须设 sync 或者 data些参数保所有的核事件数据能与磁中的日志文件
同步。
剩余的配置选择应该根据当地安全政策建立。
5.4. 开始开始 audit
一旦 auditd 行适当配置,就可以开始服来收集核信息,并在日志文件中存。作 root 来开始
行以下指令 auditd
~]# service auditd start
您可以可选择性地配置 auditd,作 root 启动事件开始使用以下指令:
~]# chkconfig auditd on
auditd上可以行一些其他的行 使用 service auditd action 命令,action 可能是以下其中之
一:
stop停止 auditd
restartauditd
reload 或者 force-reload重新加 auditd /etc/audit/auditd.conf 文件中的配置。
rotate /var/log/audit/ 中旋日志文件。
5 统审统审
99
resume在推迟审核事件日志之后重新开始,例如存在没有足的磁分区空来保存核日志文件情
况。
condrestart 或者 try-restart只有当它已,重 auditd
status行状 auditd
5.5. 义审规则规则
核系根据一组规则运行,这组规则了日志文件中所取的内容。有三种型的规则可以详细说
明:
控制规则许审核系的行和它的一些被修改的配置。
文件系统规则也被称文件监视,允许审入特定文件或者目
统调规则许记录任何指定程序所做的系统调用。
规则可以在命令行上使用 auditctl 用程序详细说明(注意规则并不是在重新启动时一直有
效),或者写在 /etc/audit/audit.rules 文件中。以下个部分总结了定义审规则个方法。
5.5.1. 使用使用 auditctl 用程序来定用程序来定义审规则规则
注意注意
所有与核服交互的命令以及核日志文件都需要 root 。作 root 确保您些命令。
auditctl 命令允您控制核系的基本功能并且限定规则来决定目要记录
控制规则
以下是一些控制规则您修改核系的行
-b
Kernel 定最大数量的已存在的冲区,例如:
~]# auditctl -b 8192
-f
当追踪重要错误时设定所要完成的行,例如:
~]# auditctl -f 2
以上配置触 kernel 恐慌以防重要错误
-e
启动或者禁用核系或者定它的配置,例如:
~]# auditctl -e 2
安全性指南安全性指南
100
以上命令核配置。
-r
定每秒生成信息的速率,例如:
~]# auditctl -r 0
以上配置在生成信息方面不定限制速率。
-s
核系,例如:
~]# auditctl -s
AUDIT_STATUS: enabled=1 flag=2 pid=0 rate_limit=0 backlog_limit=8192
lost=259 backlog=0
-l
列出所有当前装规则,例如:
~]# auditctl -l
LIST_RULES: exit,always watch=/etc/localtime perm=wa key=time-change
LIST_RULES: exit,always watch=/etc/group perm=wa key=identity
LIST_RULES: exit,always watch=/etc/passwd perm=wa key=identity
LIST_RULES: exit,always watch=/etc/gshadow perm=wa key=identity
-D
除所有当前装规则,例如:
~]# auditctl -D
No rules
文件系文件系统规则统规则
文件系统规则,使用以下法:
auditctl -w path_to_file -p permissions -k key_name
其中:
path_to_file 的文件或者目
permissions 是被记录
r取文件或者目
w写入文件或者目
x行文件或者目
a在文件或者目中的属性。
5 统审统审
101
key_name 是可字符串,可帮助您判定规则或者哪组规则生成特定的日志
5.1. 文件系文件系统规则统规则
了定所有的访问权限以及在 /etc/passwd 文件中每个属性更改的规则行以下命令:
~]# auditctl -w /etc/passwd -p wa -k passwd_changes
注意以下字符串 -k 选项是任意的。
了定义记录所有访问权限,以及在 /etc/selinux/ 中所有文件属性更改的规则行以下命
令:
~]# auditctl -w /etc/selinux/ -p wa -k selinux_changes
了定可以记录执 /sbin/insmod 命令的规则,在 Linux Kernel 中插入模行以下命令:
~]# auditctl -w /sbin/insmod -p x -k module_insertion
统调规则规则
了定统调规则,使用以下法:
auditctl -a action,filter -S system_call -F
=value -k key_name
其中:
action 以及 filter 详细说明某个事件何记录 action 可能是 always常是)或者never(从不是)
其中之一。 filter 详细说 Kernel 规则匹配过滤用在事件中。以下是其中之一的与规则匹配的
器: taskexituser 以及 exclude。如果想要更多有关过滤器的信息,参考〈 5.1
核系〉的开始部分。
system_call 它的名字详细说明系统调用。所有的系统调用都可以
/usr/include/asm/unistd_64.h 文件中找到。多系统调用都能形成一个规则,每个都在 -S
之后详细说明。
field=value 详细说明其他选项一步修改规则来与以特定架 ID ID和其他内容的事件
相匹配。了列出完整可用的栏类型和它的数参考 auditctl(8) 手册
key_name 是可字符串,可帮助您判定规则或者哪组规则生成特定的日志
5.2. 统调统调规则
了定义创造日志 规则,每次通程序使用系统调 adjtimex 或者 settimeofday。当系使用
64 位架请执行以下命令:
~]# auditctl -a always,exit -F arch=b64 -S adjtimex -S settimeofday -k
time_change
了定义创造日志规则,每次由 ID 500 或更大的系户删除或者重命名文件,使用(-F
auid!=4294967295 选项排除没有定登 UID的用),行以下命令:
安全性指南安全性指南
102
~]# auditctl -a always,exit -S unlink -S unlinkat -S rename -S renameat -F
auid>=500 -F auid!=4294967295 -k delete
使用系统调法来定文件系也是有可能的。 -w /etc/shadow -p wa 文件系统规则,以
下命令的系统调造了规则
~]# auditctl -a always,exit -F path=/etc/shadow -F perm=wa
5.5.2. /etc/audit/audit.rules 文件中定文件中定持久的持久的规则规则和控制和控制
了定在重新启动时可以一直有效的规则,您必把它包含在 /etc/audit/audit.rules 文件
中。个文件使用相同的 auditctl 命令行法来详细说规则。任何在 # 之后的空行或者文本(#)可以忽
略。
auditctl 指令可以被用来取来自指定文件的规则,使用 -R 选项,例如:
~]# auditctl -R /usr/share/doc/audit-version/stig.rules
控制规则
文件可以只包括以下的控制规则,修改核系的行 -b-D-e-f、或者 -r。如果想取更多信
息,参考 控制规则
5.3. audit.rules中控制中控制规则规则
# Delete all previous rules
-D
# Set buffer size
-b 8192
# Make the configuration immutable -- reboot is required to change audit
rules
-e 2
# Panic when a failure occurs
-f 2
# Generate at most 100 audit messages per second
-r 100
文件系文件系和系统调规则规则
使用 auditctl 法定文件系和系统调用原。在〈 5.5.1 使用 auditctl 用程序来定义审
〉中的例子可以用以下规则文件来表示:
5.4. audit.rules 中的文件系中的文件系和系统调统调规则
5 统审统审
103
-w /etc/passwd -p wa -k passwd_changes
-w /etc/selinux/ -p wa -k selinux_changes
-w /sbin/insmod -p x -k module_insertion
-a always,exit -F arch=b64 -S adjtimex -S settimeofday -k time_change
-a always,exit -S unlink -S unlinkat -S rename -S renameat -F auid>=500 -F
auid!=4294967295 -k delete
配置配置规则文件文件
/usr/share/doc/audit-version/ , 根据不同的认证标 audit 件包提供一组预配置规则
件:
nispom.rules规则配置符合《国家行安全程序操作行指南》的第八章中详细说明的要求。
capp.rules规则配置足由 CAPP 定的要求,是公共定的一部分。
lspp.rules规则配置足由 LSPP 定的要求是公共定的一部分。
stig.rules规则配置足由 STIG 定的要求。
了使用些配置文件,需要造您原始文件的 /etc/audit/audit.rules 并且复制您所选择的有关
/etc/audit/audit.rules 文件的配置文件:
~]# cp /etc/audit/audit.rules /etc/audit/audit.rules_backup
~]# cp /usr/share/doc/audit-version/stig.rules /etc/audit/audit.rules
5.6. 理解理解核日志文件核日志文件
情况下,在 /var/log/audit/audit.log 文件中的核系统储存日志;如果用日志旋,就可以
转储存在同一目中的 audit.log 文件。
以下的规则记录了每次取或者修改 /etc/ssh/sshd_config 文件的尝试
-w /etc/ssh/sshd_config -p warx -k sshd_config
如果 auditd 程序在行,就需在核日志文件中行以下命令造新事件:
~]# cat /etc/ssh/sshd_config
audit.log 文件中的事件如下所示:
type=SYSCALL msg=audit(1364481363.243:24287): arch=c000003e syscall=2
success=no exit=-13 a0=7fffd19c5592 a1=0 a2=7fffd19c4b50 a3=a items=1
ppid=2686 pid=3538 auid=500 uid=500 gid=500 euid=500 suid=500 fsuid=500
egid=500 sgid=500 fsgid=500 tty=pts0 ses=1 comm="cat" exe="/bin/cat"
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 key="sshd_config"
type=CWD msg=audit(1364481363.243:24287): cwd="/home/shadowman"
type=PATH msg=audit(1364481363.243:24287): item=0
name="/etc/ssh/sshd_config" inode=409248 dev=fd:00 mode=0100600 ouid=0
ogid=0 rdev=00:00 obj=system_u:object_r:etc_t:s0
安全性指南安全性指南
104
以上事件由三个记录组成(每个以 type= 开始),共享相同的时间戳和号。每个记录包含好几
name=value ,由空格或者逗号分开。以下是关于以上事件的详细分析:
第一个第一个记录记录
type=SYSCALL
type 包含这类记录。在个例子中, SYSCALL 值详细说接到 Kernel 的系统调用触
记录
了列出所有可能的和它的解参考〈 B.2 记录类〉。
msg=audit(1364481363.243:24287):
msg 栏记录
audit(time_stamp:ID) 表格中记录时间戳和特殊 ID。如果多种记录生成相同核事件
的一部分,那么它可以共享相同的时间戳和 ID
Kernel 或者用间应用提供不同的事件特定 name=value
arch=c000003e
arch 包括关于系CPU的信息。 c000003e 是使用 16 制表示法编码。当使用
ausearch 命令搜寻审记录时, 使用 -i 或者 --interpret 选项动转 16 可供人
取的 c000003e 被解释为 x86_64
syscall=2
syscall 栏记录传输给 Kernel 栏类型。 2 可以与在
/usr/include/asm/unistd_64.h 文件中可供人取的相匹配。 种情况下,2
open 统调用。 注意 ausyscall 用程序允您把系统调用数字转换成可供人取的
使用 ausyscall --dump 命令来展示所有的系统调用和它的号。如想要取更多信息,
ausyscall(8) 手册
success=no
success 栏记录了系统调用是否被成功地记录在特定事件中。在种情况下,用不会成功。
exit=-13
exit 包含详细说明由系统调用所返回的退出代。在不同的系统调用中,各不相同。
您可以用以下命令把释为可供人取的ausearch --interpret --exit -13
您的核日志中包含的事件没有退出代 -13
a0=7fffd19c5592, a1=0, a2=7fffd19c5592, a3=a
a0 a3 栏记录了前四个参数,在个事件中使用 16 编码统调用。些参数取决于使
用的系统调用;它可以通 ausearch 用程序来解
items=1
items 包含事件中路径记录的数量。
ppid=2686
items 栏记录了父 IDPPID)。在个情况下,2686 bash 程的 PPID
5 统审统审
105
pid=3538
pid 栏记录 IDPID)。在个情况下,3538 cat 程的 PID
auid=500
auid 栏记录核用 ID个是 loginuidID是用在登录时使用的并且即使当用
份改变时,也可以通每个ID。(例如,通户账户,使用 su - john命令)。
uid=500
uid 栏记录了开始分析程的用 ID。使用以下指令:ausearch -i --uid UID,用 ID
就可以被解释为名字。在个情况下, 500 shadowman 的用 ID
gid=500
gid 栏记录了开始分析程用 ID
euid=500
euid 栏记录了开始分析程用的有效用 ID
suid=500
suid 栏记录了开始分析程的用置用 ID
fsuid=500
fsuid 栏记录了开始分析程用的文件系 ID
egid=500
egid 栏记录了开始分析程用的有效群 ID
sgid=500
sgid 栏记录了开始分析程用置群 ID
fsgid=500
fsgid 栏记录了开始分析程的用的文件系 ID
tty=pts0
tty 栏记录用分析程的
ses=1
ses 栏记录用分析程会的会 ID
comm="cat"
comm 栏记录了命令行的名字,它被用于用分析程。在种情况下 cat 命令被用来触发审
核事件。
exe="/bin/cat"
exe 栏记录了被用来用分析程的可行的路径。
subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
安全性指南安全性指南
106
subj 栏记录 SELinux 境,用此境可以在时间注分析程。
key="sshd_config"
key 栏记录了所有管理者定的字符串,它与在核日志中生成事件的规则有关。
第二第二记录
type=CWD
在第二记录中,type CWD当前工作目型用于记录在被行的第一
详细说明的触统调用的程。
记录的目的是记录当前程的位置以防在相关的 PATH 记录中捕捉到相路径。
方法可以重塑绝对路径。
msg=audit(1364481363.243:24287)
msg 持有与第一记录中的数相同的时间戳和 ID
cwd="/home/shadowman"
cwd 含有入目的路径,在目中触统调
第三第三记录
type=PATH
在第三记录中, type 栏值 PATH。每个核事件包含一个 PATH 于每条路径种记录
一个参数,传输给统调用。在核事件中,只有一条路径(/etc/ssh/sshd_config)被用
来作参数。
msg=audit(1364481363.243:24287):
msg 持有与第一和第二记录中的相同的时间戳和 ID
item=0
item 表明在所有目中,目在 SYSCALL 记录中,参考了当前记录个是数字
是以零基准; 0 意味着它是第一
name="/etc/ssh/sshd_config"
name 栏记录了文件或者目的所有路径,作参数被传输给统调用。在种情况下,它是
/etc/ssh/sshd_config 文件。
inode=409248
inode 包含索引点数字,与记录在事件中的文件和目有关。以下命令体了与 409248
索引点数字相关的文件和目
~]# find / -inum 409248 -print
/etc/ssh/sshd_config
dev=fd:00
5 统审统审
107
dev 明确明了设备的次要和主要 ID,它包含记录在事件中的文件和目。在种情况下,
代表 /dev/fd/0 设备
mode=0100600
mode 栏记录了文件和目录权限,用 16 制表示法编码。在种情况下,0100600 可以被解
-rw-------,意味着 /etc/ssh/sshd_config 文件,只有 root 户拥取并且
限。
ouid=0
ouid 栏记录象所有者的用 ID
ogid=0
ogid 栏记录对有者的群 ID
rdev=00:00
rdev 包含记录设备识别器只用于特殊文件。在种情况下,正常文件是不用来作为记录
件的。
obj=system_u:object_r:etc_t:s0
obj 栏记录 SELinux 境,用此境可以在时间注分析
以上分析核事件是事件所包含的所有可能位置的一小部分。了列出所有事件的位置及解
考〈 B.1 核事件字段〉。了列出所有事件型以及解参考〈 B.2 记录类
5.5. 其他的其他的 audit.log 事件。事件。
以下核事件记录了成功启动 auditd 程序。 ver 位置栏显示了已开始的核守程序的版本。
type=DAEMON_START msg=audit(1363713609.192:5426): auditd start, ver=2.2
format=raw kernel=2.6.32-358.2.1.el6.x86_64 auid=500 pid=4979
subj=unconfined_u:system_r:auditd_t:s0 res=success
以下核事件记录了作 root 使用 UID 500
type=USER_AUTH msg=audit(1364475353.159:24270): user pid=3280 uid=500
auid=500 ses=1 subj=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
msg='op=PAM:authentication acct="root" exe="/bin/su" hostname=? addr=?
terminal=pts/0 res=failed'
5.7. 搜索搜索核日志文件核日志文件
ausearch 用程序允特定事件搜索核日志文件。默情况下,ausearch
/var/log/audit/audit.log 文件。您可以使用 ausearch options -if file_name命令来详细说
不同的文件。在一个 ausearch 命令中提供多种选择等同于使用 AND 算符。
5.6. 使用使用 ausearch 搜索核日志文件核日志文件
因登而搜索 /var/log/audit/audit.log 文件,使用以下命令。
安全性指南安全性指南
108
~]# ausearch --message USER_LOGIN --success no --interpret
搜索所有的账户,群,角色更,使用以下命令:
~]# ausearch -m ADD_USER -m DEL_USER -m ADD_GROUP -m USER_CHAUTHTOK -m
DEL_GROUP -m CHGRP_ID -m ROLE_ASSIGN -m ROLE_REMOVE -i
搜索所有的由特定用行的记录操作,使用用的登 IDauid),使用以下命令:
~]# ausearch -au 500 -i
从昨天至今所有的失的系统调用,使用以下命令:
~]# ausearch --start yesterday --end now -m SYSCALL -sv no -i
列出所有 ausearch 选项参考 ausearch(8) 手册
5.8.
aureport 用程序允您生成有关记录核日志文件中事件的总结和分告。默情况下,查询
/var/log/audit/ 中的所有 audit.log 文件来告。您可以指定不同的文件来告而不使用
aureport options -if file_name 命令。
5.7. 使用使用 aureport 来生成来生成告。
生成有关去三天内不包括示例日在内的记录的事件,使用以下命令:
~]# aureport --start 04/08/2013 00:00:00 --end 04/11/2013 00:00:00
生成所有可行文件事件的一份告,使用以下命令:
~]# aureport -x
生成以上可行文件事件的总结使用以下命令:
~]# aureport -x --summary
生成所有用事件的总结报告,使用以下命令:
~]# aureport -u --failed --summary -i
生成每个系总结报告,使用以下命令:
~]# aureport --login --summary -i
ausearch 查询搜索 500 所有的文件访问事件生成一份告,使用以下命令:
~]# ausearch --start today --loginuid 500 --raw | aureport -f --summary
5 统审统审
109
生成一份告有关所有被查询核文件以及所包含事件的事件范,使用以下命令:
~]# aureport -t
列出所有的 aureport 选项参考 aureport(8) 手册
5.9. 其他其他
如需取更多有关核系的信息,参考以下料来源:
网上来源网上来源
Linux 核系统项 http://people.redhat.com/sgrubb/audit/
Hack in the Box 志的文章〈
调查
Linux
核系
Kernel
返回代
〉:http://magazine.hackinthebox.org/issues/HITB-Ezine-Issue-005.pdf
安装的文档安装的文档
文档由 audit 件包提供,可以在 /usr/share/doc/audit-version/ 中找到。
手册手册
audispd.conf(5)
auditd.conf(5)
ausearch-expression(5)
audit.rules(7)
audispd(8)
auditctl(8)
auditd(8)
aulast(8)
aulastlog(8)
aureport(8)
ausearch(8)
ausyscall(8)
autrace(8)
auvirt(8)
安全性指南安全性指南
110
6 性与漏洞性与漏洞
6.1. 帽企 Linux 的安全合的安全合
"
规审计
" 是用来解决象是否遵循合性策略中写明的所有定的一个程。"
策略
" 负责指定所
期望置的安全家定常以清的形式,使用在境中。
策略在不同的组织有着很大的差,甚至在同一组织的不同系下也是如此。策略之的差异基于
些系的用途以及它们对组织的重要程度而定。定制件的置以及部署的特性也自定策略清
出了需求。
帽企 Linux 提供了支持完全自化合规审计的工具。些工具基于安全内容自协议SCAP
准,专门为策略自设计
支持支持帽企 Linux 7 安全合安全合性工具性工具
SCAP Workbenchscap-workbench 形化工具被设计为一的本地或者程系行配置和漏
描。此外工具也可以被用来生成基于描与估的安全告。
OpenSCAP oscap 命令行用工具被设计为在本地系行配置和漏洞描,验证安全合性内
容,以及生成基于描与估的告和指南。
如果您需要程在多个系行自化合规审核,您可以利用 OpenSCAP 星解决方案。欲了解更多
信息, 6.5 Satellite 上使用 OpenSCAP” 6.7 附加
注意注意
需要注意的是帽公司不随帽企 Linux 7 提供任何默的合策略。原因在〈 6.2
型的合策略〉中有解
6.2. 典型的合典型的合策略策略
安全策略或者合策略很少从开始写。ISO 27000系列准,衍生品,以及其他来源提供的安全策略模
板和践建议应该对启动编写有所帮助。然而,各机构组织在建立自己的安全程序,需要策略模板做修
改,以便与他自己的需求相匹配。策略模板选择的依据应该是挑那些与企业环境相关的模板,然后必
针对该模板整,因为该模板要么包含了一些不能被用于组织中的内置假定,要么明确的要求必做出
某些决定。
帽企 Linux 核功能是基于 SCAP (安全内容自协议准的。SCAP 是一种合的可互操作的
范,格式与术语进行了准化,通过这准化的范向人和机器传达软件缺陷以及安全配置
信息。SCAP 是一种多用途的框架范,它支持自化配置、漏洞和检查、技控制达标以及安全性
度量。
话说SCAP 是一个独立于供商外用于表安全策略的方式,因此它被广泛的用于代企中。
SCAP 格打造了一个生,其中安全性内容的格式著名且准,同时扫描或者策略编辑行也不是
制性的。种状使得企或者机一旦建立起他自己的安全策略(SCAP内容),就无需在意他究竟
了多少安全提供商。
SCAP 的最新版本包含了几个基本准。件根据他自身的功能在 SCAP 内部被整理成,如下所述:
SCAP
这组 SCAP 成,策略定准的词汇定。
6 性与漏洞性与漏洞
111
拓展配置清描述格式
(XCCDF)一种组织和管理安全指言。
开放脆弱性和
OVAL
一种被开出来经过扫描的系统执逻辑声明的言。
开放清动语
OCIL
一种被设计用来为查询提供准方法,解户对问题的反
言。
资产识别
AI
一种被开用于提供数据模型、研究方法以及引导鉴别安全资产言。
资产报告格式
ARF
一种经过设计言,主要用来表信息的传输格式,而些信息包含了
收集好的安全源,以及源和安全告之的关系。
包含 SCAP 准定的命名格式,以及从某些与安全相关域利益相关而生的目的官方
或者字典。
普通参数列
CCE
一种为应用程序和操作系的安全相关的配置元素所列出的枚
普通平台列
(CPE)一种结构化的命名方案,通常用来识别信息技IT)系、平台以及
包。
普通漏洞与危
(CVE)一种可用于参考公开的件漏洞与风险集的方法。
度量
这组由一系列框架成,用于识别估安全风险
普通参数划分系
(CCSS)一种用于估与安全相关的配置元素的度量系,同它也可以以打分的
方式帮助用户优先考适当的应对措施。
普通漏洞划分系
(CVSS)一种用于件安全患的度量系,同它也可以以打分的方式帮助
户优应对安全风险
完整性
一种维护 SCAP 内容与果完整性的 SCAP
信任模型的安全自化数据
(TMSAD) 些推荐解范的使用方法,在安全自
域里的 XML 文件上下文境中,用来代表名、哈希、关信息以及身份信息。
每个 SCAP 件都有自己的基于 XML 的文档格式及 XML 名称空。一个 SCAP 中所表的合策略既可以
采用 OVAL XML 文件、数据流文件和 zip 档案的方式,又可以采用一各自包含表示策略清
XCCDF 文件的 XML 文件集这样的方式。
6.2.1. XCCDF 文件格式文件格式
XCCDF 言被设计为支持信息交、文档生成、组织化和情境化整、自一致性测试以及符合性分。
言主要是描述性的,并不包含任何用来行安全描的命令。然而,XCCDF 文档可以作其他 SCAP
件的参考,而且就其本身而言,它也可以被用于制作合策略,移植到除相关的估文档(OVAL OCIL)以
外的所有目平台。
通常,可以用一 XML 文件中包含一个 XCCDF 的方法来表示合策略。 XCCDF 文件通常指向了
源、多重 OVALOCIL 以及脚本检查引擎(SCE)文件。此外,文件集可以包含有 CPE 字典文件和
此字典定象的 OVAL 文件。
一种基于 XML 言,XCCDF 并使用了大量可供选择 XML 元素以及特性。下表要介了主要
XCCDF 元素;有关 XCCDF 更多的细节请查阅 NIST跨机构报7275 4.
XCCDF 文档中的主要文档中的主要 XML 元素元素
<xccdf:Benchmark>是一个涵盖整个 XCCDF 文档的根元素。它也可以包含清的元数据,例如
、描述、作者列表、最近修改日期以及清单验收状
安全性指南安全性指南
112
<xccdf:Rule>是一个关元素,个元素代表了清的需求,同保留了它的描述。它可以包含子
元素,些子元素定了使用定的规则验证或者行合性的作,或者干脆修改规则自身。
<xccdf:Value>元素被用于表其他 XCCDF 元素于基准范内的属性。
<xccdf:Group>元素被用于整理成一个XCCDF 文档,在相同境下或者需求域内,通收集
<xccdf:Rule><xccdf:Value> <xccdf:Group> 元素的方式,元素将整理生成的 XCCDF 文档
合成架
<xccdf:Profile>元素 XCCDF 基准的一个指定的整服。它允基准保留数个不同的
整。<xccdf:Profile> 利用多个选择器元素,例如 <xccdf:select> 或者 <xccdf:refine-
rule>,去判断即将修改和些正于生效状的元素。
<xccdf:Tailoring>元素允从基准外部定基准档案,在某些候是很理想的合策略手工
整。
<xccdf:TestResult>元素用于记录定基准的果。每一个
<xccdf:TestResult> 应该参考特定的料,料被用来定义为特定的描而制定的合策略,
而且它也包括与描密切相关的目的重要信息。
<xccdf:rule-result> <xccdf:TestResult> 的一个子元素,用于保存从基准到目统应
用特定规则果。
<xccdf:fix> <xccdf:Rule> 的一个子元素,用于修复那些不符合规则的目。它可
以包含一个行在目中的命令或者脚本,个命令或脚本了使系符合规则设计
<xccdf:check> <xccdf:Rule> 的一个子元素,是一个外部来源,个外部来源定了如何
定的规则
<xccdf:select>是一个选择器元素,用于包括或者排除定的规则或者策略中的规则组
<xccdf:set-value>是一个选择器元素,用于重写指定<xccdf:Value> 元素的当前,而并不
修改元素的其他属性。
<xccdf:refine-value>是一个选择器元素,用于在策略程中具体明特定
<xccdf:Value> 元素的束。
<xccdf:refine-rule>选择器元素允重写规则的属性。
6.1. XCCDF 文件示例文件示例
<?xml version="1.0" encoding="UTF-8"?>
<Benchmark xmlns="http://checklists.nist.gov/xccdf/1.2"
id="xccdf_com.example.www_benchmark_test">
<status>incomplete</status>
<version>0.1</version>
<Profile id="xccdf_com.example.www_profile_1">
<title>Profile title is compulsory</title>
<select idref="xccdf_com.example.www_group_1"
selected="true"/>
<select idref="xccdf_com.example.www_rule_1"
selected="true"/>
<refine-value idref="xccdf_com.example.www_value_1"
selector="telnet service"/>
</Profile>
6 性与漏洞性与漏洞
113
<Group id="xccdf_com.example.www_group_1">
<Value id="xccdf_com.example.www_value_1">
<value selector="telnet_service">telnet-server</value>
<value selector="dhcp_servide">dhcpd</value>
<value selector="ftp_service">tftpd</value>
</Value>
<Rule id="xccdf_com.example.www_rule_1">
<title>The telnet-server Package Shall Not Be Installed </title>
<rationale>
Removing the telnet-server package decreases the risk
of the telnet service’s accidental (or intentional) activation
</rationale>
<fix platform="cpe:/o:redhat:enterprise_linux:6"
reboot="false"
disruption="low"
system="urn:xccdf:fix:script:sh">
yum -y remove
<sub idref="xccdf_com.example.www_value_1"/>
</fix>
<check system="http://oval.mitre.org/XMLSchema/oval-definitions-5">
<check-export value-id="xccdf_com.example.www_value_1"
export-name="oval:com.example.www:var:1"/>
<check-content-ref href="examplary.oval.xml"
name="oval:com.example.www:def:1"/>
</check>
<check system="http://open-scap.org/page/SCE">
<check-import import-name="stdout"/>
<check-content-ref href="telnet_server.sh"/>
</check>
</Rule>
</Group>
</Benchmark>
6.2.2. OVAL 文件格式文件格式
OVAL(开放式漏洞言)是 SCAP 中必不可少的和最初始的成部分。OVAL 准的主要目是开
品之的互通互用能力。由下面三个域的准化实现
1. 配置的表
2. 特定机器状的存在而所做的分析。
3. 告指定机器状和受观测机器状的比较结果。
于其他工具或者自定脚本,OVAL 言以声明的形式描述了源的理想状OVAL 言代不能被直
行,而是依靠一个叫做
OVAL 工具去行。OVAL 所具的声明性了受估系
的状不会被意外地改一点是非常重要的,因安全描工具通常行在可能取的最高限上。
OVAL 献、各 MITRE 合作的 IT 公司,以及由邦政府助的非组织开放。
OVAL 范一直在持化中,不同版本版本号行区分。当前版本5.10.1布于20121月。
似所有其他的 SCAP 件,OVAL 基于 XML OVAL 准定了几种文档格式。它各自包含了不同种
的信息,服于不同的目的。
OVAL 文档格式文档格式
安全性指南安全性指南
114
OVAL Definitions 格式是最常 OVAL 文件格式,直接用于系统扫描。OVAL文档描述了目
理想状
OVAL Variables 格式定了一些量用于修改 OVAL 文档。OVAL 量文档通常与 OVAL 文件一
起使用,以整目的安全内容。
OVAL System Characteristics 格式保存有关估系的信息。OVAL 特性文档通常用于实际
OVAL 文档中所定期状态进行比
OVAL Results 是用来告系统评果的最全面的 OVAL 格式。OVAL 果文档通常包括受 OVAL
的副本、受束的 OVAL 量、OVAL 特性以及经过计算的基于系特性和定测试结果。
OVAL Directives 格式通包括或者排除某些细节的方式 OVAL 果文档中的冗余部分加以
OVAL Common Model 格式包含了用于其他几种 OVAL 方案中的造和枚的定。它被用来再次利用
OVAL 这样就可以避免在多个文档中生重复的
OVAL文档由一配置需求所成,每需求在以下五个基本面做了定
测试
声明
部分内的元素描述了测试应该实现以便定的定测试元素将象与状态联系在
了一起。在系统评程中,当一个受估系源可以用象元素符合定状元素来表示,那么
测试就会被认为是通的。 量部分定了外部量,些外部量可能被用于整来自状部分的元素。
除了些部分以外, OVAL 文档通常也包括
生器
部分。
生器
部分保存有关文档来源的信息
以及各种与自身内容相关的外信息。
每一种 OVAL 文档基部分中的元素都可以明确地通下表中的标识识别
oval:namespace:type:ID
namespace 是一个由命名空标识 type 要么是定元素 def ,要么是测试元素的 tst ,要么是
元素 obj ,要么是状元素 ste ,要么是量元素 var ,而且ID 标识符的一个整数
6.2. OVAL 文档示例文档示例
<?xml version="1.0" encoding="utf-8"?>
<oval_definitions
xmlns:lin-def="http://oval.mitre.org/XMLSchema/oval-definitions-
5#linux"
xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5"
xmlns="http://oval.mitre.org/XMLSchema/oval-definitions-5"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<generator>
<oval:product_name>vim</oval:product_name>
<oval:schema_version>5.10.1</oval:schema_version>
<oval:timestamp>2012-11-22T15:00:00+01:00</oval:timestamp>
</generator>
<definitions>
<definition class="inventory"
id="oval:org.open-scap.cpe.rhel:def:7"
version="1">
<metadata>
<title>Red Hat Enterprise Linux 7</title>
<affected family="unix">
<platform>Red Hat Enterprise Linux 7</platform>
</affected>
<reference ref_id="cpe:/o:redhat:enterprise_linux:7"
6 性与漏洞性与漏洞
115
source="CPE"/>
<description>
The operating system installed on the system is Red Hat
Enterprise Linux 7
</description>
</metadata>
<criteria>
<criterion comment="Red Hat Enterprise Linux 7 is installed"
test_ref="oval:org.open-scap.cpe.rhel:tst:7"/>
</criteria>
</definition>
</definitions>
<tests>
<lin-def:rpminfo_test check_existence="at_least_one_exists"
id="oval:org.open-scap.cpe.rhel:tst:7"
version="1"
check="at least one"
comment="redhat-release is version 7">
<lin-def:object object_ref="oval:org.open-scap.cpe.redhat-
release:obj:1"/>
<lin-def:state state_ref="oval:org.open-scap.cpe.rhel:ste:7"/>
</lin-def:rpminfo_test>
</tests>
<objects>
<lin-def:rpmverifyfile_object id="oval:org.open-scap.cpe.redhat-
release:obj:1"
version="1">
<!-- This object represents rpm package which owns /etc/redhat-
release file -->
<lin-def:behaviors nolinkto='true'
nomd5='true'
nosize='true'
nouser='true'
nogroup='true'
nomtime='true'
nomode='true'
nordev='true'
noconfigfiles='true'
noghostfiles='true' />
<lin-def:name operation="pattern match"/>
<lin-def:epoch operation="pattern match"/>
<lin-def:version operation="pattern match"/>
<lin-def:release operation="pattern match"/>
<lin-def:arch operation="pattern match"/>
<lin-def:filepath>/etc/redhat-release</lin-def:filepath>
</lin-def:rpmverifyfile_object>
</objects>
<states>
<lin-def:rpminfo_state id="oval:org.open-scap.cpe.rhel:ste:7"
version="1">
<lin-def:name operation="pattern match">^redhat-release</lin-
def:name>
<lin-def:version operation="pattern match">^7[^\d]</lin-def:version>
安全性指南安全性指南
116
</lin-def:rpminfo_state>
</states>
</oval_definitions>
6.2.3. 数据流格式数据流格式
SCAP 数据流是一种文件格式,自 SCAP 1.2 版本起开始使用,它代表了 XCCDFOVAL 有其他件文件
成的包,可以被用来定一个由 XCCDF 所表的合策略。它包含一个索引和目,允按照
SCAP 件把已知数据流分解成文件。
数据流使用 XML 格式,包含了一个由一整个表的内容所成的数据以及一系列 <ds:component> 元素。
每一个元素均包含一个 SCAP 件,例如 XCCDFOVALCPE 以及其他。数据流文件可以包含相同型的
多个件,并且因此可以覆盖到所有您您的企所需要的安全策略。
6.3. 一个数据流一个数据流示例示例
<ds:data-stream-collection
xmlns:ds="http://scap.nist.gov/schema/scap/source/1.2"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:cat="urn:oasis:names:tc:entity:xmlns:xml:catalog"
id="scap_org.open-scap_collection_from_xccdf_ssg-rhel7-xccdf-1.2.xml"
schematron-version="1.0">
<ds:data-stream id="scap_org.open-scap_datastream_from_xccdf_ssg-rhel7-
xccdf-1.2.xml"
scap-version="1.2" use-case="OTHER">
<ds:dictionaries>
<ds:component-ref id="scap_org.open-scap_cref_output--ssg-rhel7-cpe-
dictionary.xml"
xlink:href="#scap_org.open-scap_comp_output--ssg-rhel7-cpe-
dictionary.xml">
<cat:catalog>
<cat:uri name="ssg-rhel7-cpe-oval.xml"
uri="#scap_org.open-scap_cref_output--ssg-rhel7-cpe-
oval.xml"/>
</cat:catalog>
</ds:component-ref>
</ds:dictionaries>
<ds:checklists>
<ds:component-ref id="scap_org.open-scap_cref_ssg-rhel7-xccdf-1.2.xml"
xlink:href="#scap_org.open-scap_comp_ssg-rhel7-xccdf-1.2.xml">
<cat:catalog>
<cat:uri name="ssg-rhel7-oval.xml"
uri="#scap_org.open-scap_cref_ssg-rhel7-oval.xml"/>
</cat:catalog>
</ds:component-ref>
</ds:checklists>
<ds:checks>
<ds:component-ref id="scap_org.open-scap_cref_ssg-rhel7-oval.xml"
xlink:href="#scap_org.open-scap_comp_ssg-rhel7-oval.xml"/>
<ds:component-ref id="scap_org.open-scap_cref_output--ssg-rhel7-cpe-
oval.xml"
xlink:href="#scap_org.open-scap_comp_output--ssg-rhel7-cpe-
6 性与漏洞性与漏洞
117
oval.xml"/>
<ds:component-ref id="scap_org.open-scap_cref_output--ssg-rhel7-
oval.xml"
xlink:href="#scap_org.open-scap_comp_output--ssg-rhel7-oval.xml"/>
</ds:checks>
</ds:data-stream>
<ds:component id="scap_org.open-scap_comp_ssg-rhel7-oval.xml"
timestamp="2014-03-14T16:21:59">
<oval_definitions xmlns="http://oval.mitre.org/XMLSchema/oval-
definitions-5"
xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5"
xmlns:ind="http://oval.mitre.org/XMLSchema/oval-definitions-
5#independent"
xmlns:unix="http://oval.mitre.org/XMLSchema/oval-definitions-5#unix"
xmlns:linux="http://oval.mitre.org/XMLSchema/oval-definitions-
5#linux"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://oval.mitre.org/XMLSchema/oval-common-5
oval-common-schema.xsd
http://oval.mitre.org/XMLSchema/oval-definitions-5
oval-definitions-schema.xsd
http://oval.mitre.org/XMLSchema/oval-definitions-5#independent
independent-definitions-schema.xsd
http://oval.mitre.org/XMLSchema/oval-definitions-5#unix
unix-definitions-schema.xsd
http://oval.mitre.org/XMLSchema/oval-definitions-5#linux
linux-definitions-schema.xsd">
6.3. 使用使用 SCAP 工作台工作台
SCAP Workbench (scap-workbench) 是一个形化的工具,它允在本地或程系行配置和漏洞
描,实现的修复,以及生成基于估的告。需要注意的是,与 oscap 命令行用工具比起
来,SCAP 工作台只具有限的功能。SCAP 工作台也可以理只以 XCCDF 文件和数据流文件形式存在的安
全内容。
以下各节说明如何安装,启动和使用 SCAP 工作台,以便行系统扫描、修复和自定义扫描,并示与
相关的例子。
6.3.1. 安装安装 SCAP 工作台工作台
若要在系中安装 SCAP 控制台, root 身份行以下命令:
~]# yum install scap-workbench
命令安装所有保 SCAP 工作台能正常工作的件包,包括 scap-workbench 件包提供的工具本身。需
要注意的是,所需的依赖项,例如 qt openssh 件包,如果已安装在您的系中的,将会被自
到可用的最新版本。
在您可以开始有效率地使用 SCAP 工作台之前,您需要安装或者入一些安全内容到您的系中。您可以从
的网站下 SCAP 内容,或者,如果指定 RPM 文件或者安装包的,您可以使用 Yum 件包管理器从
指定的位置或者库进行安装。
安全性指南安全性指南
118
例如,您可以安装《SCAP 安全指南》(SSG)包, scap-security-guide, 包含目前 Linux 最先
的安全策略置。 SSG ,了解怎在系中部署该软件包的具体步
当您在系中安装完 scap-security-guide 以后,除非有指明,否 SSG 安全内容可以在
/usr/share/xml/scap/ssg/rhel7/ 下找到,而且您可以继续进行其他安全合操作。
了找到其他可能符合您需求的 SCAP 内容来源, 6.7 附加〉。
6.3.2. SCAP 工作台工作台
在成功安装 SCAP 工作台工具和 SCAP 内容以后,您就可以在您的系中开始使用 SCAP 工作台了。了从
GNOME 传统桌面境中使用 SCAP 工作台,按下 Super 键进入活 scap-workbench,然
后按下 EnterSuper 以各种形式出,取决于键盘和其他硬件,但往往不是“Windows”
“Command”,而且通常出 Spacebar 的左
一旦您启动该实用程序, SCAP Workbench 窗口就会出SCAP 工作台窗口包含多交互式件,您应该
在开始描您的系之前先熟悉件:
入文件入文件
字段包含了所安全策略的完整路径。您可以通 Browse 搜索您系中适用于 SCAP
的内容。
下拉列表框示的是将被用于所安全策略中的清的名称。如果存在不止一个清,您可以
此下拉列表框来选择一个特定的清
下拉列表框会通知您定安全策略的定制情况。您可以通击该下拉列表框来选择自定义规
规则将会被用在系统评估中。默认值 (no tailoring)意味着所使用的安全策略将不
会有任何改。如果您的安全配置文件做了任何改,可以通 Save Tailoring
XML 文档的方式保存些改内容。
配置文件配置文件
下拉列表框包含所安全策略配置文件的名称。通击该下拉列表框,您可以从定的 XCCDF
或者数据流文件中筛选出安全配置文件。若要建一个承了所安全策略配置文件属性的新配置
文件, Customize
这两单选选择估系是本地算机算机。
中的中的规则
字段示的是一系列受安全策略影的安全规则。将鼠标悬停在某个特定的安全规则上以
信息。
保存内容保存内容
您将由 Input file 以及 Tailoring 字段中出的 SCAP 文件保存到定的目或者以
RPM 包的形式保存下来。
态栏态栏
是一种形化的工具条,指示着正在行的操作状
线线修复修复
6 性与漏洞性与漏洞
119
框允在系统评估中开修复功能。如果您框,SCAP 工作台将尝试校正那些无
法匹配策略定的系统设置。
启动对指定系估。
6.1. SCAP 工作台窗口工作台窗口
6.3.3. 描系描系
SACP 工作台的主要功能是依照定的 XCCDF 或者数据流文件,在被中的系行安全描。若要
您的系有没有反所的安全策略,遵循下列步
1. Browse 钮还找相 XCCDF 或者数据流文件来选择安全策略。
警告警告
选择安全策略会致先前没有保存的任何失。若要重新失的置,您
须选择可用的配置文件并且重新整内容。需要注意的是,您去的自定内容未必适用于
新的安全策略。
2. 如果被中的 SCAP 文件是一个数据流文件,提供了不止一个清,您可以通 Checklist
列表框来选择特定的清
安全性指南安全性指南
120
警告警告
更改清可能会致不同配置文件的选择和任何先前的自定义设置并不适用于新的清
3. 如果您已经预先安排了一个针对您的使用案例的自定安全内容文件,可以通 Tailoring 下拉
列表框来加此文件。您也可以通过变有安全配置文件的方式去建一个自定义调整文件。欲了
解更多信息, 6.3.4 定制安全配置文件〉。
a. 如果您不希望使用任何当前系统评估的自定义设置,请选 (no tailoring) 选项。如果之
前没有任何自定义设置被该项目即认选项
b. (open tailoring file...) 选项来搜索特定的整文件,些文件被用于当前的系
统评估。
c. 如果您曾使用某个整文件,SCAP 工作台会个文件并把它添加到列表中。这简
了同一描中重复的用程序。
4. Profile 下拉列表框来选择一个合适的安全配置文件。
a. 若需一步修改所的配置文件, Customize 。有关配置文件自定详细
息, 6.3.4 定制安全配置文件〉。
5. Target 单选中一个来描本地或者算机。
a. 如果您选择程系,通过输入用名、主机名以及端口信息的方式来指定它,如下例所
示:
6.2. 指定一个指定一个程系
6. 您可以通过选 Online remediation 框来允统设置自校正。 该选项时,如果在系
统扫描中相关的检查SCAP工作台将会按照策略中所用的安全规则尝试去改
置。
警告警告
如果使用不慎,在修复选项启用的情况下行系统评估可能会致系统丧失功能。
7. Scan 启动统扫描。
6.3.4. 定制安全配置文件定制安全配置文件
选择好适合您的安全策略的安全配置文件以后,您可以通 Customize 一步整。将打开一
个新的整窗口,窗口允您修改当前中的 XCCDF 配置文件,而实际上并不用改各自的 XCCDF
件。
6 性与漏洞性与漏洞
121
6.3. 定制所定制所的安全配置文件的安全配置文件
Tailoring 窗口包含了一整套与中的安全配置文件相关的 XCCDF 元素,些安全配置文件包含了每个元
素及其功能的详细信息。您可以通窗口的主要选择或者反向选择的复框来打开或者关闭这
元素。该调整窗口支持 undo redo 功能;您可以通窗口左上角各自的箭头图标来撤或者重做您
选择
当您完成您的配置文件定制后,通 Finish Tailoring 来确认这更。您所做的更被保存在
内存中,如果 SCAP 工作台被关或者生了某些化,比如选择了一个新的 SCAP 内容或者一个
,您所做的更将不复存在。如果您希望更被存下来, SCAP Workbench 窗口中的Save
Tailoring 操作允您以一个 XCCDF 整文件的方式在中的目下保存您安全配置文件所做
更。需要注意的是该调整文件以后也可以与其他配置文件一起选择
6.3.5. 保存保存 SCAP 内容
SCAP 工作台也可以允您保存被用于您的系统评估中的 SCAP 内容。您既可以分开保存整文件 (
6.3.4 定制安全配置文件) ,也可以通 Save content 下拉列表框,选择 Save into a
directory 或者 Save as RPM 选项来一次性保存所有的安全内容。
过选 Save into a directory 选项SCAP 工作台将 XCCDF 或数据流文件和整文件者都保存到
指定的位置。可以作一个有效的份方案。
过选 Save as RPM 选项,您可以令 SCAP 工作台建一个包含 XCCDF 或数据流文件和整文件的
RPM 包。这对于分期望的安全内容到那些无法被描的系,或者仅仅实现今后内容的
理,是非常有用的。
安全性指南安全性指南
122
6.4. RPM 包的形式保存当前的包的形式保存当前的 SCAP 内容
6.3.6. 果并生成果并生成
当系统扫束以后,个新的按 Clear Report,会出并取代 Scan
警告警告
Clear 会永久移除果。
您可以通 Report 来展示和一步果,操作会打开 Evaluation Report 窗口。此
窗口包含 Save 下拉列表框,个按 Open in Browser,和 Close
您可以通 Save 下拉列表框来以 XCCDFARF 或者 HTML 文件的形式来保存果。 HTML
Report 选项来生成可告。XCCDF ARF(数据流)格式适合一步地自理。您可以反复
选择这三个选项
如果您喜便能立即看而不保存告,您可以点 Open in Browser 将以一个临时
HTML 文件默的网络浏览器中打开
6.4. 使用使用 oscap
6 性与漏洞性与漏洞
123
oscap 命令行工具允户扫描本地系 验证安全合内容,生成基于些系统扫描与估的告和指
南。工具作一个 OpenSCAP 的前端,基于它理的一种型的 SCAP 内容,将其功能分化(子
命令)。
以下各了如何安装 oscap行最常的操作,并且示与些工作相关的例子。要了解更多与特定的
子命令有关的内容,使用 --help 选项加上oscap 命令:
oscap [options] module module_operation
[module_operation_options_and_arguments] --help
module 代表一种正在被理的 SCAP 内容型, module_operation 是一种 SCAP 内容行特定操作的子
命令。
6.4. 取有关具体取有关具体 oscap 操作的帮助操作的帮助
~]$ oscap ds sds-split --help
oscap -> ds -> sds-split
Split given SourceDataStream into separate files
Usage: oscap [options] ds sds-split [options] SDS TARGET_DIRECTORY
SDS - Source data stream that will be split into multiple files.
TARGET_DIRECTORY - Directory of the resulting files.
Options:
--datastream-id <id> - ID of the datastream in the collection
to use.
--xccdf-id <id> - ID of XCCDF in the datastream that
should be evaluated.
要了解所有 oscap 特性及其置的完整列表, oscap(8) 手册
6.4.1. 安装安装 oscap
了安装 oscap 到您的系中,需要以 root 身份行以下命令:
~]# yum install openscap-utils
此命令允您安装保 oscap 正常行所需的所有安装包,包括提供用工具自身的 openscap 件包。如
果您想写您自己的安全内容,您也应该安装 openscap-engine-sce 包,个安装包提供了脚本检查引擎
SCE)。SCE SCAP 的一个协议,允内容作者使用脚本言去写自己的安全内容,例如 Bash
言,Python 言或者 Ruby 言。安装包可以以和 openscap-utils 件包同的方式行安装。
根据需要,在安装完 oscap 后,您可以检查您所安装 oscap 版本的功能,比如它支持什么格,某个
oscap 文件存在什么位置,能使用什么 SCAP 象,以及其他有用的信息。要示此信息,请输
下命令:
~]$ oscap -V
OpenSCAP command line tool (oscap) 1.0.4
Copyright 2009--2014 Red Hat Inc., Durham, North Carolina.
==== Supported specifications ====
安全性指南安全性指南
124
XCCDF Version: 1.2
OVAL Version: 5.10.1
CPE Version: 2.3
CVSS Version: 2.0
CVE Version: 2.0
Asset Identification Version: 1.1
Asset Reporting Format Version: 1.1
==== Capabilities added by auto-loaded plugins ====
SCE Version: 1.0 (from libopenscap_sce.so.8)
==== Paths ====
Schema files: /usr/share/openscap/schemas
Schematron files: /usr/share/openscap/xsl
Default CPE files: /usr/share/openscap/cpe
Probes: /usr/libexec/openscap
==== Inbuilt CPE names ====
Red Hat Enterprise Linux - cpe:/o:redhat:enterprise_linux
Red Hat Enterprise Linux 5 - cpe:/o:redhat:enterprise_linux:5
Red Hat Enterprise Linux 6 - cpe:/o:redhat:enterprise_linux:6
Red Hat Enterprise Linux 7 - cpe:/o:redhat:enterprise_linux:7
Fedora 16 - cpe:/o:fedoraproject:fedora:16
Fedora 17 - cpe:/o:fedoraproject:fedora:17
Fedora 18 - cpe:/o:fedoraproject:fedora:18
Fedora 19 - cpe:/o:fedoraproject:fedora:19
Fedora 20 - cpe:/o:fedoraproject:fedora:20
Fedora 21 - cpe:/o:fedoraproject:fedora:21
Red Hat Enterprise Linux Optional Productivity Applications -
cpe:/a:redhat:rhel_productivity
Red Hat Enterprise Linux Optional Productivity Applications 5 -
cpe:/a:redhat:rhel_productivity:5
==== Supported OVAL objects and associated OpenSCAP probes ====
system_info probe_system_info
family probe_family
filehash probe_filehash
environmentvariable probe_environmentvariable
textfilecontent54 probe_textfilecontent54
textfilecontent probe_textfilecontent
variable probe_variable
xmlfilecontent probe_xmlfilecontent
environmentvariable58 probe_environmentvariable58
filehash58 probe_filehash58
inetlisteningservers probe_inetlisteningservers
rpminfo probe_rpminfo
partition probe_partition
iflisteners probe_iflisteners
rpmverify probe_rpmverify
rpmverifyfile probe_rpmverifyfile
rpmverifypackage probe_rpmverifypackage
selinuxboolean probe_selinuxboolean
selinuxsecuritycontext probe_selinuxsecuritycontext
file probe_file
interface probe_interface
password probe_password
6 性与漏洞性与漏洞
125
process probe_process
runlevel probe_runlevel
shadow probe_shadow
uname probe_uname
xinetd probe_xinetd
sysctl probe_sysctl
process58 probe_process58
fileextendedattribute probe_fileextendedattribute
routingtable probe_routingtable
在可以开始有效率地使用 oscap 用工具之前,您安装或者入一些安全内容到您的系中。您可以
从相的网站中下 SCAP 内容,或者,如果指定 RPM 文件或者件包,您可以使用 Yum 安装包管理器
从指定位置或者库进行安装。
例如,您可以安装《 SCAP 安全指南》 SSG 件包, scap-security-guide该软件包包含了 Linux
最新的一套安全策略。 SSG project ,了解在您的系中部署该软件包的具体步
当您在系中安装完 scap-security-guide 以后,除非有指明,否 SSG 安全内容可以在
/usr/share/xml/scap/ssg/rhel7/ 下找到,而且您可以继续进行其他安全合操作。
了找到其他可能符合您需求的 SCAP 内容来源, 6.7 附加〉。
在您的系中安装好 SCAP 内容以后, oscap 可以通指定文件路径到内容的方式些内容。 oscap
具支持 SCAP 1.2 版本,同它向下兼容 SCAP 1.11.0版本,这样它就可以直接 SCAP 内容的早期版本
而无需任何特殊的需求。
6.4.2. SCAP 内容
SCAP 准定多文件格式。 oscap 工具可以理或者建符合多格式的文件。一步
SCAP 内容相关的定文件,您需要了解如何根据定的文件型来 oscap 。如果不确定如何使用一个
特定的文件,您既可以打开个文件,也可以个文件,或者您也可以使用 oscap info ,解析文
件,并以可的格式提取相关信息。
行下列命令来检查 SCAP 文档的内部结构,并示有用的信息,例如文档型、范版本、文档的状
档的布日期,以及文档被复制到系中的日期:
oscap info file
其中 file 是正在被检查的安全内容的完整路径。下面的示例更能 oscap info 命令的用法:
6.5. SCAP 内容信息内容信息
~]$ oscap info /usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xmal
Document type: Source Data Stream
Imported: 2014-03-14T12:22:01
Stream: scap_org.open-scap_datastream_from_xccdf_ssg-rhel7-xccdf-1.2.xml
Generated: (null)
Version: 1.2
Checklists:
Ref-Id: scap_org.open-scap_cref_ssg-rhel7-xccdf-1.2.xml
Profiles:
xccdf_org.ssgproject.content_profile_test
xccdf_org.ssgproject.content_profile_rht-ccp
xccdf_org.ssgproject.content_profile_common
安全性指南安全性指南
126
xccdf_org.ssgproject.content_profile_stig-rhel7-
server-upstream
Referenced check files:
ssg-rhel7-oval.xml
system:
http://oval.mitre.org/XMLSchema/oval-definitions-5
Checks:
Ref-Id: scap_org.open-scap_cref_ssg-rhel7-oval.xml
Ref-Id: scap_org.open-scap_cref_output--ssg-rhel7-cpe-oval.xml
Ref-Id: scap_org.open-scap_cref_output--ssg-rhel7-oval.xml
Dictionaries:
Ref-Id: scap_org.open-scap_cref_output--ssg-rhel7-cpe-
dictionary.xml
6.4.3. 描系描系
oscap 最重要的功能是在本地系行配置与漏洞描。以下是各个命令的一般法:
oscap [options] module eval [module_operation_options_and_arguments]
oscap 工具可以针对方代表的 SCAP 内容描系这两方包括XCCDF (可展的配置检查描述格
式)基准和 OVAL (开放弱点言)定。安全策略可以以独的OVAL文件或者XCCDF文件的形式存
在,也可以以多个独的 XML 文件的形式存在 里每个 XML 文件代表了不同的件(XCCDF, OVAL,
CPE, CVE, 有其他)。果可以打印为两种,出和 XML 文件。果文件可以 oscap
一步理以便生成可告。下面的例子明了命令最常的用法。
6.6. 使用使用SSG OVAL 义扫描系描系
针对 SSG OVAL 文件描您的系,同时评估所有的定请运行以下命令:
~]$ oscap oval eval --results scan-oval-results.xml
/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
果将会以 scan-oval-results.xml 文件的方式保存在当前目中。
6.7. 使用使用SSG OVAL 义扫描系描系
估来自由 SSG 数据流文件代表的安全策略中的特 OVAL 请运行以下命令:
~]$ oscap oval eval --id oval:ssg:def:100 --results scan-oval-results.xml
/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
果将会以 scan-oval-results.xml 文件的方式保存在当前目中。
6.8. 使用使用 SSG XCCDF 基准基准描系
要在系 xccdf_org.ssgproject.content_profile_rht-ccp 配置文件 SSG XCCDF
测试请运行以下命令:
6 性与漏洞性与漏洞
127
~]$ oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_rht-
ccp --results scan-xccdf-results.xml scan-xccdf-results.xml
/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
果将会以 scan-xccdf-results.xml 文件的方式保存在当前目中。
注意注意
--profile 命令行参数从定的 XCCDF 或者数据流文件中选择安全配置文件。可用的配置文件列
表可以通过运 oscap info 命令来取。如果 --profile 命令行参数被省略了,默
XCCDF 配置文件将根据 SCAP 准的要求被使用。需要注意的是默 XCCDF 配置文件可能
是,也可能不是一个合适的安全策略。
6.4.4. 生成生成告和指南告和指南
oscap 一个有用的功能是能生成可 SCAP 内容。oscap 用工具允您将一个XML文件转换
HTML 或者文本格式。功能被用于生成安全指南或者清些指南或清可以作信息的来源,同
可以用于指安全系配置。系统扫果也可以被转换成高可性的告。一般的命令法如下:
oscap module generate sub-module [specific_module/sub-
module_options_and_arguments] file
module xccdf oval 者之一, sub-module 是一种生成的文档,并且 file 代表一个 XCCDF 或者
OVAL 文件。
下面展示的是命令在使用程中最常的例子:
6.9. 生成一份包含清生成一份包含清的指南的指南
xccdf_org.ssgproject.content_profile_rht-ccp 配置文件生成一份包含清的指南,请运
行以下命令:
~]$ oscap xccdf generate guide --profile
xccdf_org.ssgproject.content_profile_rht-ccp
/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml > ssg-guide-checklist.html
份指南将会以 ssg-guide-checklist.html 文件的方式存在当前目下。
6.10. SSG OVAL 转换为报转换为报
要将一份SSG OVAL 转换为 HTML 文件,请运行以下命令:
~]$ oscap oval generate report scan-oval-results.xml > ssg-scan-oval-
report.html
告将会以 ssg-scan-oval-report.html 文件的方式存在当前目下。此示例假定您从与
scan-oval-results.xml 文件存放的相同位置命令。否,您需要指定文件及包含其
的完整路径。
安全性指南安全性指南
128
6.11. SSG XCCDF 转换为报转换为报
要将一份 SSG XCCDF 转换为 HTML 文件,请运行以下命令:
~]$ oscap xccdf generate report scan-xccdf-results.xml > scan-xccdf-
report.html
告将会以 ssg-scan-xccdf-report.html 文件存在当前目下。 或者,您可以使用
--report 命令行参数在程中生成此
~]$ oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_rht-
ccp --resultsscan-xccdf-results.xml --report scan-xccdf-
report.html/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
6.4.5. 验证验证 SCAP 内容
在系中使用安全策略之前,您应该首先验证所使用的策略,以避免策略可能包含的任何法或者意上的
错误 oscap 用工具可被用于验证针对标 SCAP XML 的安全内容。验证结果会被打印到错误
(stderr) 中。该验证命令的一般法如下:
oscap module validate [module_options_and_arguments] file
file 验证文件的完整路径。唯一例外的是数据流模 (ds)里使用的是 ds-validate 操作来代
validate。需要注意的是,所有定数据流中的 SCAP 件都会被自动验证,而且没有任何件会被
独指定,点从下面的例子中就可以看出:
~]$ oscap ds sds-validate /usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
于某些 SCAP 内容,比如 OVAL 范,您也可以 Schematron 验证 Schematron 验证验证慢,
但是提供了更深入的分析,并因此能够检测出更多的错误。下面的 SSG 示例示了命令的典型用法:
~]$ oscap oval validate --schematron /usr/share/xml/scap/ssg/rhel7/ssg-
rhel7-ds.xml
6.5. Satellite 上使用上使用 OpenSCAP
行多个帽企Linux 统时,保持所有的系均符合您的安全策略,且从一个位置行安全
估是非常重要的。些可以通安装在您的 Satellite 端(需 Satellite 5.5 以上的版本)上的
spacewalk-oscap 件包来实现该软件包可以从 Red Hat Network Tools 道找到。
解决方案支持种方式行合规扫描、一步果。您可以使用 OpenSCAP Satellite
Web Interface 或者通 Satellite API 行命令和脚本。有关此解决方案的安全合性,及其需求和
能力的详细信息, 5.6 指南》。
6.6.
一部分展示了为红品提供的某个安全内容的实际使用情况。
6.6.1. 品的审计安全漏洞安全漏洞
6 性与漏洞性与漏洞
129
帽会品提供持不断的 OVAL 些定在已安装的件中开漏洞完全自审计。要了
目的更多信息,请查阅 http://www.redhat.com/security/data/metrics/。要下载这些定请运行以下命
令:
~]$ wget http://www.redhat.com/security/data/oval/com.redhat.rhsa-all.xml
Satellite 5的用可能会发现补丁定中有帮助的 XCCDF 部分。要下载这些定请运行以下命令:
~]$ wget http://www.redhat.com/security/data/metrics/com.redhat.rhsa-
all.xccdf.xml
核系中已安装件的安全漏洞,请运行以下命令:
~]$ oscap oval eval --results rhsa-results-oval.xml --report oval-
report.html com.redhat.rhsa-all.xml
oscap 工具将Red Hat Security Advisories 映射到了 CVE 标识符中,标识符与国家漏洞数据,且
些安全公告没有被用到系中。
注意注意
需要注意的是, OVAL 设计为仅用于涉及帽所布的件和更新之中。您需要提供
的定以便能及时检测第三方件的丁状
6.6.2. 使用使用 SCAP 安全指南安全指南核系核系统设
SCAP 安全策略 SSG 件包, scap-security-guide,包含了 Linux 最新的安全策略置。
SSG project 面了解如何在您的系中部署该软件包。部分 scap-security-guide 也可以为红帽企
Linux 7置提供指。要检查 scap-security-guide 中存在的安全内容,使用 oscap info
~]$ oscap info /usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
个命令出的是 SSG 文档的一个概述,它包含了可用的配置文件。要您的系统设核,请选择
个合适的配置文件,并行恰当的估命令。例如,针对的配置文件,下面的命令为经过认证帽云供
对给定的系统进估:
~]$ oscap xccdf eval --profile xccdf_org.ssgproject.content_profile_rht-ccp
--results ssg-rhel7-xccdf-result.xml --report ssg-rhel7-report.html
/usr/share/xml/scap/ssg/rhel7/ssg-rhel7-ds.xml
6.7. 附加附加
有关各安全合规领域内的更多感趣的信息,如下源:
安装的文档安装的文档
oscap(8) — oscap 命令行工具手册提供了可用选项的完整列表及其用法的使用明。
scap-workbench(8) — SCAP Workbench 用程序手册提供了用程序的基本信息,以及一些潜在的
SCAP 内容源接。
安全性指南安全性指南
130
帽企 Linux 7的安全置指南 一份HTML文档,位于 /usr/share/doc/scap-security-
guide-0.1.5/ 下,以 XCCDF 的形式您的系提供详细的安全指南。
线线文档
The OpenSCAP project page — OpenSCAP目的主提供了 oscap 用工具以及其他 SCAP 相关
目的详细信息。
The SCAP Workbench project page — SCAP工作台目的主提供了 scap-workbench 用程序的详细
信息。
The SCAP Security Guide (SSG) project page — SSG 目的主提供了有关帽企 Linux 的最新安
全内容。
National Institute of Standards and Technology (NIST) SCAP page代表了 SCAP 相关材料的一个
大集合,包括 SCAP 出版物、技参数以及 SCAP 验证程序。
National Vulnerability Database (NVD)代表了最大模的 SCAP 内容,以及最大模的其
他基于漏洞管理数据的 SCAP
Red Hat OVAL content repository是一个包含了帽企Linux OVAL
MITRE CVE是一个由 MITRE 公司提供的公开的安全漏洞数据
MITRE OVAL该页代表了一个由 MITRE 公司提供的 OVAL 相关目。除去其他 OVAL 相关信息,
面包含了 OVAL 言的最新版本以及一个巨大的 OVAL 内容总计22,000 OVAL
5.6 指南该书话题中,描述了如何在多系上使用 OpenSCAP 维护安全。
6 性与漏洞性与漏洞
131
7 准和法准和法
要保安全等,可能需要您的机在符合邦和行安全格、准和规则方面有所努力。本章述了
准和规则的一部分。
7.1. 邦信息邦信息准(FIPS
FIPS (美国邦信息准)出版物 140-2,是一个算机的安全准,有美国政府和界工作验证
量。FIPS 出版物(包括140-2)可以在以下网址中找
到:http://csrc.nist.gov/publications/PubsFIPS.html。注意在写的候,出版物 140-3 于草稿段,并不
能代表完成的准。 FIPS 准提供了四安全
来确保可以足涵盖不同的行、加密模行和组织
大小和要求。次描述如下:
1 — 安全等 1 提供了最低等的安全性。基本的安全要求于加密模详细规定(比如,至少需
要使用一个 Approved 算法或者 Approved 安全性能)。没有具体的物理安全机制在安全等 1 的加密模
中必级组成的基本要求。一个安全等级为1的加密模的例子就是 PC(个人电脑)加密板。
2 — 安全等2增加了据的要求,以加安全等1加密模的物理安全机制,包括了使
改争取的涂膜和封章,或模中可移覆盖或的防盗据的涂膜和印章被置于加密模
因此涂膜或封印必被破解以物理入模中的文本加密秘 CSP (重要安全参数)。据印章
或防盗都被置于封面或者上以防止未授的物理访问
3— 除了安全等2所要求的据安全机制外,安全等3尝试阻止入侵者入加密模
CSP 限。安全等3所要求的物理安全机制目的是得到尝试物理访问和反的高可能性,使用或
者修改加密模。当加密模中可移的封面/被打开,物理安全机制也包括使用大的附件和
检测/响应电路中将所有的文本 CSP
4—安全等4 提供了准中最高的安全等。在一安全等上,物理安全机制提供了在加密模
的完整保套,目的是监测所有不授的物理访问尝试作出回。加密模从任何方向渗透有
非常高的几率会被探出,致了所有文本 CSP 的即刻零。安全等4的加密模块对于物理不受保
境中的作十分有用。
更多关于些等 FIPS 准的其他明,http://csrc.nist.gov/publications/fips/fips140-2/fips1402.pdf
FIPS 140-2准。
7.1.1. 启动启动 FIPS 模式
让红 Linux 符合 FIPS 邦信息准)的 140-2 出版物,您需要作出一些修改以确保得到
可的加密模得到使用。将您的系(内核或者用)切 FIPS 模式,遵守以下步
1. 了适当核操作插入式模完整性,预链接不得不止。可以通过设
/etc/sysconfig/prelink 配置文件中的PRELINKING=no 来完成。如有任何既存的预链接,
使用 prelink -u -a要求,在所有系文件中解除。
2. 接下来,安装 dracut-fips包:
~]# yum install dracut-fips
3. 重命名initramfs文档:
~]# dracut -f
安全性指南安全性指南
132
警告警告
个操作会改写既存的initramfs文档。
4. 修改在 /boot/grub/grub.conf 文档中当前内核的内核命令行,添加以下选项
fips=1
注意注意
如果 /boot 或者 /boot/efi 位于独的分区,内核参数boot=<partition of /boot
or /boot/efi> 被添加到内核命令行。你可以分过运 df /boot 或者 df
/boot/efi这两个指令。
~]$ df /boot
Filesystem 1K-blocks Used Available Use% Mounted
on
/dev/sda1 495844 53780 416464 12% /boot
即使是在启动时设备名称改,通过运行以下要求来辨 UUID (通用唯一准)以确保 the
boot= 参数选择仍然作。
~]$ blkid /dev/sda1
/dev/sda1: UUID="05c000f1-f899-467b-a4d9-d5ca4424c797"
TYPE="ext4"
根据上述例子,以下字符串需要被附到内核命令行上;
boot=UUID=05c000f1-f899-467b-a4d9-d5ca4424c797
5.
应该需要格的 FIPS fips=1 内核选项需要在系安装被添加到内核命令行,因此密的生成
是通过计算法以及作中持控而完成的。用户应该以确保系在安装程中有足
的信息,或如果没有鼠,也要确保可以多次按下按于敲击键盘的次数应该多于 256 次。少于 256
次的键盘次数会生非唯一的匙。
7.2. 国家工国家工安全安全划操作手册划操作手册
NISPOM(也称DoD 5220.22-M),作 NISP (国家行安全目)的成部分,所有的政府承包者关于
信息而建立了一系列的程序和要求。当前的 NISPOM 2006228日更新,主要化从2013328
更改。 NISPOM 文档可以从以下接中下http://www.nispom.org/NISPOM-download.html
7.3. 支付卡行支付卡行数据安全数据安全
https://www.pcisecuritystandards.org/about/index.shtmlPCI
安全准委会是一个开放的全球论坛,成立于
2006
年,它负责
PCI
安全准的开、管理、培以及普及,其中包括数据安全准(
DSS
)。
7 准和法准和法
133
您可以在 https://www.pcisecuritystandards.org/security_standards/pci_dss.shtml PCI DSS
7.4. 安全技安全技术实施指南施指南
《安全技术实施指南》(或称 STIGSecurity Technical Implementation Guide)是算机件和硬件准化
安全安装的方法。
更多关于 STIG 的信息看以下http://iase.disa.mil/stigs/index.html
安全性指南安全性指南
134
A. 加密加密
A.1. 同步加密同步加密
A.1.1. 加密加密 — AES
在加密中, AES (高加密准)是被美国政府所采用的加密准。准包括三大AES-128,
AES-192 AES-256, 一个更大的合集并最初 Rijindael。每个 AES 都有128个比特位大小,
位大小分128192256比特。AES 被广泛分析,目前被全球使用,正如其前一代 DES (数据
加密准)一
A.1.1.1. AES
AES 是由 NIST (美国国家准技研究所)在经过5准化程,于20011126日在第197份出版物中
布的。在 Rijindael 设计选择之前,15设计会被展示和评选出最适合的一个。在2002526日被
一个准而有效使用。设计在很多不同的加密包中被使用。 AES 是第一个被 NSA (美国国家安全
局)通的作为顶级机密公开使用的密。(详见下方 AES 安全体系)
Rijindael 位比利时编码 Joan Daemen ·)和 Vincent Rijmen (文森特·瑞捷)共同开
,并由他们递交到 AES 筛选过程。 Rijindael 个开者姓名的混合。
A.1.2. 数据加密数据加密 — DES
数据加密准(DES)是由国家准局美国在 1976 选择为联邦官方信息准(FIPS)的
(共享秘密加密的形式),随后在国上广为应用。它的依据是使用 56 位密称密算法。算法最初
与分类别设计元素不符,密钥长短,并被怀疑是国家安全局的(NSA)的后DES 大量的学
研究,些研究引对块加密以及加密分析的代化理解。
A.1.2.1. DES
DES 目前于很多程序来都不安全。主要是因56比特秘钥长度太短。在19991月,distributed.net网站
子前沿基金会合在215内公开破解了一个 DES 。尽管它实际操作中不易被装,也有
一些同的分析证实了密的理性弱点。尽管有很多理,但以三位DES 编码算被认为实际
上很安全。在近些年,密 AES(高加密准)取代。
在一些文档中,在作为标准的 DES 和被称 DEA (数据加密算法)的算法是有区的。
A.2. 加密
加密是一种由很多加密算法和加密系采用的加密方法,其与不同之在于使用不称密算法,而不
是使用,或者外使用称密算法。使用公-经让很多之前未知的保或者验证信息
的方法变为现实。它不要求使用称密算法需要的一个或者多个保密密的安全初始交。它可用于
建数字名。
加密法是世界广泛使用的基,是传输层安全性(TLSSSL 的后)、PGP GPG 等互
准基的加密方法。
在公加密法中使用的特是不称密算法,个算法中用来加密信息的密与解密信息的密不是同
一个。每个用都有一加密密一个公和一个私。私是秘密保存,而公钥则会广泛播。信息是
使由接收方到公加密,且信息只能使用对应的私解密。个密钥间是数学算关系,但很在例如具体
情况或者践中使用公演算出私个算法的发现对从二十世七十年代开始使用的加密法践有革
[3]
[4]
[5]
[6]
[7]
[8]
[9]
[10]
A. 加密加密
135
命性影
相比而言,称密算法及其体已使用了几千年,方法由送者和接受者共享一个保密密钥还
保密,因此要考常用术语带来的争),此保密秘用于加密和解密。要使用称加密方案,
送者和接受者必事先安全地共享保密密
为对称密算法所需算量最小,通常可使用密算法互,并使用那个密称密算法
数据。例如: PGP SSL/ TLS 线这样做,果是可生成混合的密
A.2.1. Diffie-Hellman
Diffie-Hellman D-H)是可事先彼此不了解的双方通定的通讯频合建立共享保密密
的加密协议。可使用个密加密以后使用称密的通
A.2.1.1. Diffie-Hellman
方案是由 Whit Diffie Martin Hellman 1976 年首次布,然它晚于 GCHQ (英国信号情
)的 Malcolm J. Williamson 明,但英国一直将该发明列机密。2002 年,Hellman 算法改名
Diffie–Hellman–Merkle Ralph Merkle's 对发明公加密法的献(Hellman 2002
Diffie–Hellman 钥协议本身是匿名(非认证)密约协议,但它各种认证协议提供了基,并用来
传输层安全性的短期模式中提供最佳转发保密(根据密码组件可以 EDH 或者 DHE)。
在已经过期的美国 4,200,770 述了个算法,并予作为发明者的 HellmanDiffie Merkle 很高
价。
A.2.2. RSA
在密学中,RSA(代表着首次公开描述它的 Rivest 李威斯特、Shamir 沙米 Adleman 阿德曼)是一
于公加密的算法个法是第一个被作适合和加密一适合认证算法,并且是在公
学中第一个最大的步之一。RSA 子商务协议中被广泛使用,并且因够长匙以及及的安装
启动而被认为很安全。
A.2.3. DSA
DSA (数字名算法)是数字名的准,即美国邦政府用于数字名的准。DSA 只可用于名,且不
是加密算法。
A.2.4. SSL/TLS
传输层安全性(TLS)及其之前的品安全套接字SSL)都是可(比如互网)行的通
供安全性的加密法协议TLS SSL 传输层端到端加密网络链接片段。
很多版本的协议用程序广泛使用,如,网页浏览件、互真、即短信以及 VoIP IP
呼叫)。
A.2.5. Cramer-Shoup 加密系加密系
Cramer–Shoup 是一个非称秘加密算法,而且被证实是第一个针对选择米文攻所采用的
加密猜想所用的安全有效的目。其安全性是基于决定性Diffie–Hellman猜想的解性(广泛接受,但未
证实)的解性的。由 Ronald Cramer 罗纳·克莱默)和 Victor Shoup 克多·伯)于1998
,是 ElGamal 加密系的延伸。与 ElGamal 相反,它具有很的延展性,Cramer–Shoup 添加了外的
成分来确保甚至是遭受广泛的攻击时其非延展性。一非延展性是通使用抗撞哈希函数和外的
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18]
[19]
安全性指南安全性指南
136
而取得的,致了密文是 ElGamal 倍大。
A.2.6. EIGamal 加密加密
在密学中,ElGamal加密体系基于Diffie-Hellman加密协议的公加密的非称秘加密算法。有Tahel
ElGamal1985年描述。ElGamal 加密被用于免GNU私保护软件、PGP 近期的版本和其他密
中。
[20]
[21]
[3] "加密准。"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
[4] "加密准。"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
[5] "加密准。"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Advanced_Encryption_Standard
[6] 数据加密准。
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Data_Encryption_Standard
[7] "数据加密准。"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Data_Encryption_Standard
[8] "数据加密准。"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Data_Encryption_Standard
[9] "加密"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Public-key_cryptography
[10] "加密"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Public-key_cryptography
[11] "加密"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Public-key_cryptography
[12] "加密"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Public-key_cryptography
[13] "加密"
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Public-key_cryptography
[14] "Diffie-Hellman."
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Diffie-Hellman
[15] "Diffie-Hellman."
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Diffie-Hellman
[16] "Diffie-Hellman."
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Diffie-Hellman
[17] "Diffie-Hellman."
基百科。
2009 11 14 http://en.wikipedia.org/wiki/Diffie-Hellman
[18] "DSA."
基百科。
2010 2 24 http://en.wikipedia.org/wiki/Digital_Signature_Algorithm
[19] "TLS/SSL"
基百科。
2010 2 24 http://en.wikipedia.org/wiki/Transport_Layer_Security
[20] "Cramer-Shoup cryptosystem"
基百科。
2010 2 24 http://en.wikipedia.org/wiki/Cramer–
Shoup_cryptosystem
[21] "ElGamal encryption"
基百科。
2010 2 24 http://en.wikipedia.org/wiki/ElGamal_encryption
A. 加密加密
137
B. 核系引用引用
B.1. 核事件字段核事件字段
B.1 “事件字段 了目前所有得支持的核事件字段。一个事件字段是在审计日志文档中等号前的
B.1. 事件字段事件字段
事件字段事件字段 解
a0, a1, a2, a3 记录统调用前四个参数,标为十六制。
acct 记录户账号名。
addr 记录 IPv4 或者 IPv6 地址,一字段通常随一个 hostname 字段并包含
主机名解地址。
arch 记录关于中央理器结构的系信息,以十六编码
auid 记录审核用身份。当用身份改候,身份在登录时被指定给另一个
并在每次操作时继承(例如,用 su - john 名)。
capability 下二制位的数字,用来 Linux 功能。 更多关于 Linux 功能的信息,
capabilities(7)
cap_fi 记录的数据与文件系功能置。
cap_fp 记录置一个与可文件系功能相关的数据。
cap_pe 下与置有效理功能相关的数据。
cap_pi 下与理功能相关的数据。
cap_pp 下与理功能相关的数据。
cap_pp cgroup 的路径,其中包含审计时间理。
cap_pp 下整条行的命令行。 shell 程序在 exe record
录时有用,例如,/bin/bash shell 程序和 cmd 其余行的命令行
字段记录,例如, helloworld.sh --help.
comm 记录行的要求。 exe 的字段记录 shell 程序中很有用,例
/bin/bash 套解程序以及 comm 字段记录的脚本被行,或者在
helloworld.sh 很有用。
cwd 记录统调用目路径。
data TTY记录相关数据。
dev 记录设备中的次要和主要ID,包含事件记录的文件或目
devmajor 记录主要设备ID
devminor 记录次要设备ID
egid 记录开始分析程用的有效ID
euid 记录开始分析程用的有效用ID
exe 记录用分析程的可行路径。
exit 记录由系统调用返回的退出代。此随系统调动变化。可以将此释给
它的人可以对应值,根据以下命令:ausearch --interpret
--exit exit_code
family 记录使用的地址协议类型,IPv4 IPv6
filetype 记录文件型。
flags 记录文件系志。
fsgid 记录开始分析程的用文件系统组ID
fsuid 记录开始分析程的用文件系 ID
gid 记录组 ID
hostname 记录主机名称。
安全性指南安全性指南
138
icmptype 记录接收到的 ICMP (因特网信息控制协议)包型。核包含一字段的
信息,通常由iptables 生成。
id 记录变动账户的用 ID
inode 记录,关文件或目 inode 数字。
inode_gid 记录 inode 所有者的 ID
inode_uid 记录 inode 所有者的用 ID
items 记录路径数目,该记录会被附加。
key 记录与在核日志中能生一个特定事件条例相关的用字符串。
list 记录审查规则列表 ID。以下是列表已知的 ID 是:
0 — user
1 — task
4 — exit
5 — exclude
mode 记录文件目录权限,以数表示法编码
msg 记录时间戳和记录中的唯一 ID ,或者不同的事件特定 <name>=<value>
匹配,由内核或用间应用提供。
msgtype 记录基于用 AVC 返回的信息 。信息型由 D-Bus 决定。
name 记录以自量形式到系统调用的全部文件或目路径。
new-disk 记录分配机的新磁盘资源名字。
new-mem 记录分配机的新记忆资源数量。
new-vcpu 记录分配机的新虚 CPU 源的数量。
new-net 记录分配机的新网界面源的 MAC 地址。
new_gid 记录指定 ID
oauid 记录录进入系的用 ID期相的是,例如,使用su)并开始
标进程。一字段用于记录类OBJ_PID
ocomm 记录用来启动标进程的命令。一字段用于记录类 OBJ_PID
opid 记录标进程的 ID一字段用于记录类 OBJ_PID
oses 记录标进程的会 ID一字段属于记录类 OBJ_PID
ouid 记录标进程中的真 ID
obj 记录 SELinux 为对象的内容,该对象可以是文档、目、承接,或任何一
个被接受的物体。
obj_gid 记录对象的 ID
obj_lev_high 记录对象的高 SELinux 级别
obj_lev_low 记录对象的低 SELinux 级别
obj_role 记录对象的 SELinux 角色。
obj_uid 记录对象的 UID
obj_user 记录对象的关
ogid 记录对象所有者的群 ID
old-disk 当一个新的磁盘资源被分配一个虚时记录旧磁盘资源的名字。
old-mem 当新内存被指定记录旧的内存总额
old-vcpu 当新虚 CPU 被指定机,记录旧虚 CPU 源。
old-net 当新的网界面被指定记录 MAC 地址的旧网界面
old_prom 记录杂标志的上一个
ouid 记录开始目标进程的真 ID
事件字段事件字段 解
B. 核系核系引用引用
139
path 记录以自量形式到系统调用的全部文件或目路径。
perm 记录用分析程的可行路径。(即,、写、操作或者更属性)
pid pid语义场取决于该领域起源的价
由用控件衍生出来的域,该领有一个操作 ID
在由内核衍生的域,该领有一个线程号。线程号等同于单线进程中的
标识。注明该线程号的 pthread_t 在用间账号所用是不一
的。更多信息,参考 gettid(2) 操作明。
ppid 记录标识Parent PID)。
prom 记录络简短社交活动标志。
proto 记录曾用的网络协议域是专门针对 iptables 衍生的核事件
的。
res 记录发审核事件操作的果。
result 记录发审核事件操作的果。
saddr 记录套接地址。
sauid 记录发送者的审计户账号。号由作内核的 D-Bus 提供,并
不能看到个用户发送了最初的auid
ses 记录 ID,在中分析程被用。
sgid 记录开始分析程用的群 ID
sig 记录导目异常止的信号代。通常,是一个系被入侵的迹象。
subj 记录 SELinnux 为对象的内容,象可以是一个程、一个用、或
者是任何起作用的事物。
subj_clr 记录 SELinux 象的清除可。
subj_role 记录对象的 SELinux 的角色。
subj_sen 记录对 SELinux 的敏感度。
subj_user 记录和主相关的用
success 记录统调用是成功是失
suid 记录分析程用置用 ID
syscall 记录发送到内核的系统调型。
terminal 记录终端名称(不包括/dev/)。
tty 记录控制端的名称。如果程没有控制端, (none)
uid 记录启动分析程的用的真 ID
vm 记录产核事件的虚机名称。
事件字段事件字段 解
B.2. 记录类记录类
B.2 “记录类 了所有支持当前记录型。事件型在每个记录type= 的字段中被
指定。
B.2. 记录类记录类
事件事件型 解
ADD_GROUP 当添加用间组时被触
ADD_USER 当添加用的用户账被触
ANOM_ABEND 当一个程非正常止(如果被用,一个信号会致核心转储被触
[a]
安全性指南安全性指南
140
ANOM_ACCESS_FS[a] 当文档或目录访问非正常被触
ANOM_ADD_ACCT[a] 当用间账号添加非正常被触
ANOM_AMTU_FAIL[a] AMTUAMTU 抽象机器测试工具)的失检测被触
ANOM_CRYPTO_FAIL[a] 当加密系的失检测被触
ANOM_DEL_ACCT[a] 当用间账除非正常被触
ANOM_EXEC[a] 当文档的行非正常被触
ANOM_LOGIN_ACCT[a] 尝试录账号非正常被触
ANOM_LOGIN_FAILURES[a] 当已到失的限制被触
ANOM_LOGIN_LOCATION[a] 当登录尝试发生在禁区被触
ANOM_LOGIN_SESSIONS[a] 当登录尝试达到最大并被触
ANOM_LOGIN_TIME[a] 当登录尝试在某被例如 pam_time 阻止被触
ANOM_MAX_DAC[a] DAC 自定义访问控制)失的最大值时被触
ANOM_MAX_MAC[a] 当已 MAC 访问控制)的最大量被触
ANOM_MK_EXEC[a] 当文档可被触
ANOM_MOD_ACCT[a] 当用间账号的修改非正常被触
ANOM_PROMISCUOUS[a] 用或停用混模式被触
ANOM_RBAC_FAIL[a] 检测 RBAC(基于角色访问控制)自败时被触
ANOM_RBAC_INTEGRITY_F
AIL[a]
检测 RBAC 基于角色访问控制)文档完整性测试败时被触
ANOM_ROOT_TRANS[a] 当用户变成根用户时被触
AVC 被触后以记录 SELinux 检查
AVC_PATH SELinux 检查时被触记录 dentry vfsmount
BPRM_FCAPS 当用以文档系可范行一个被触
CAPSET 被触记录为基于程而置的能力,例如,作根用户运抵御的能
力。
CHGRP_ID 当用 ID 被改变时被触
CHUSER_ID 当用 ID 被改变时被触
CONFIG_CHANGE 核系配置被修改被触
CRED_ACQ 当用需要用证时被触
CRED_DISP 当用户释放用凭据被触
CRED_REFR 当用刷新其用凭据被触
CRYPTO_FAILURE_USER 当解密、加密或随机加密操作失败时被触
CRYPTO_KEY_USER 被触记录用于加密目的的密钥标示符。
CRYPTO_LOGIN 当加密管理录尝试被触
CRYPTO_LOGOUT 当加密管理销尝试被触
CRYPTO_PARAM_CHANGE_U
SER
当加密参数改被触
CRYPTO_REPLAY_USER 当重播攻被触
CRYPTO_SESSION 被触记录 TLS 建立程中的参数。
CRYPTO_TEST_USER 被触记录根据 FIPS-140 准要求的加密测试结果。
CWD 被触记录当前工作目
DAC_CHECK 被触记录 DAC 检查结
事件事件型 解
B. 核系核系引用引用
141
DAEMON_ABORT 当守程序因为错误终被触
DAEMON_ACCEPT auditd 程序接受被触
DAEMON_CLOSE auditd 程序关闭远被触
DAEMON_CONFIG 当守程序配置变换检测被触
DAEMON_END 当守程序被成功停止被触
DAEMON_RESUME auditd 程序恢复登录时被触
DAEMON_ROTATE auditd 程序切换审核日志文件被触
DAEMON_START auditd 程序启动时被触
DEL_GROUP 当用间组被触
DEL_USER 当用被触
DEV_ALLOC 设备被分配被触
DEV_DEALLOC 设备被触
EOE 被触记载记录事件。
EXECVE 被触记录 execve(2) 统调用的参数。
FD_PAIR 记录使用 pipe socketpair 的系统调
FS_RELABEL 当文件系重新标记的操作被检测被触
GRP_AUTH 当一被用来验证间组时被触
INTEGRITY_DATA 被触记录由内核作的数据完整性验证事件。
INTEGRITY_HASH[b] 被触记录由内核作的散列型完整性验证事件。
INTEGRITY_METADATA[b] 被触记录由内核作的元数据完整性验证事件。
INTEGRITY_PCR[b] 被触记录 PCR(平台配置寄存器)的无效信息。
INTEGRITY_RULE[b] 被触记录政策规则
INTEGRITY_STATUS[b] 被触记录完整性验证的状
IPC 被触记录关于由系统调用的关于通信象的信息。
IPC_SET_PERM 被触记录 IPC_SET 关于一个 IPC 客体的管理操作定的新的相关信
息。
KERNEL 被触记录审核系的初始化。
KERNEL_OTHER 被触记录第三方内核模的信息。
LABEL_LEVEL_CHANGE 象的结构被修改被触
LABEL_OVERRIDE 当管理重写象的结构时被触
LOGIN 当用入系统时被触记录相关登信息。
MAC_CIPSOV4_ADD CIPSO(商条款安全选项)用名增加了新的 DOI(域名解
被触。增加 DOI(域名解)是由 NetLabel 提供的内核标签容量
的一部分。
MAC_CIPSOV4_DEL 当一个 CIPSO 除了已存在的 DOI。增加 DOI 是由 NetLabel
的内核标签容量的一部分。
MAC_CONFIG_CHANGE 当一个 SELinux 的布尔值被改变时被触
MAC_IPSEC_EVENT 当一个 IPSec 的事件被检测到或者当 IPSec 配置改变时被触记录
息。
MAC_MAP_ADD 当一个新的 LSMLinux 安全模式)的域映射被添加被触LSM
射是由 NetLabel 提供的内核标签容量的一部分。
MAC_MAP_DEL 当一个几寸的域映射被添加被触LSM 域映射是由 NetLabel 提供的内
标签容量的一部分。
MAC_POLICY_LOAD SELinux 政策文档被加载时被触
MAC_STATUS SELinux 模式(启动、批准、关)被改变时被触
事件事件型 解
[b]
安全性指南安全性指南
142
MAC_UNLBL_ALLOW 当使用由 NetLabel 提供的内核标签容量且未贴标的流量被允许时
MAC_UNLBL_STCADD 当使用由 NetLabel 提供的内核标签容量并静态贴标被添加被触
MAC_UNLBL_STCDEL 当使用由 NetLabel 提供的内核标签容量且一个静态贴标被触
MMAP 被触记录文档的描述符以及mmap(2)统调用的志。
MQ_GETSETATTR 被触记录mq_getattr(3)mq_setattr(3)的信息列特性。
MQ_NOTIFY 被触记录 mq_notify(3)统调用的参数。
MQ_OPEN 被触记录 mq_open(3)统调用的参数。
MQ_SENDRECV 被触记录 mq_send(3) mq_receive(3) 统调用的参数。
NETFILTER_CFG 当网络过滤器的修改被检测被触
NETFILTER_PKT 被触记录络过滤的数据包。
OBJ_PID 被触记录关于信号被出的程信息。
PATH 被触记录文档名字路径信息。
RESP_ACCT_LOCK 当用户账号被被触
RESP_ACCT_LOCK_TIMED[c] 当用户账号在一个特定时间内被被触
RESP_ACCT_REMOTE[c] 当用户账号被被触
RESP_ACCT_UNLOCK_TIME
D[c]
当用户账号在已配置的时间后被解锁时被触
RESP_ALERT[c] 当警报电件被被触
RESP_ANOMALY[c] 当一个异常没有在操作被触
RESP_EXEC[c] 当一个入侵检测项于源于行的威做出反应时被触
RESP_HALT[c] 当系被关闭时被触
RESP_KILL_PROC[c] 程被被触
RESP_SEBOOL[c] SELinux 的布尔值被触
RESP_SINGLE[c] 当系为单一用模式被触
RESP_TERM_ACCESS[c] 当会话终被触
RESP_TERM_LOCK[c] 端被被触
ROLE_ASSIGN 当管理指定了一个用 SELinux 角色被触
ROLE_MODIFY 当管理修改一个 SELinux 角色被触
ROLE_REMOVE 当管理 SELinux 角色中将用名移除被触
SELinux_ERR 当内部 SELinux 错误检测被触
SERVICE_START 当服务启动时被触
SERVICE_STOP 当服停止被触
SOCKADDR 被触记录套接字地址或者被系统调回。
SOCKETCALL 被触记录 sys_socketcall 统调用的参数(被用来复合多数套接字
相关的系统调用)。
SYSCALL 被触记录内核的系统调用。
SYSTEM_BOOT 当系启动时被触
SYSTEM_RUNLEVEL 当系的允水平被改变时被触
SYSTEM_SHUTDOWN 当系被关闭时被触
TEST 被触记录测试信息的成功
TRUSTED_APP 此种型的记录可以被需要核的第三方用使用。
事件事件型 解
[c]
B. 核系核系引用引用
143
TTY TTY 入被送到管理被触
USER_ACCT 当用户账号被修改被触
USER_AUTH 当用的身份验证尝试检测被触
USER_AVC 当用 AVC 信息生成被触
USER_CHAUTHTOK 当用户账号特性被修改被触
USER_CMD 当用 shell 命令被被触
USER_END 当用被触
USER_ERR 当用户账号状态错误检测被触
USER_LABELED_EXPORT 当一个象被出了 SELinux 标签时被触
USER_LOGIN 当用录时被触
USER_LOGOUT 当用销时被触
USER_MAC_POLICY_LOAD 当用的守程序在上 SELinux 政策被触
USER_MGMT 被触记录管理数据。
USER_ROLE_CHANGE 当用 SELinux 角色被改变时被触
USER_ SELinux_ERR 当用 SELinux 错误检测被触
USER_START 当用开始被触
USER_TTY 当关于 TTY 入到一个管理程的解信息是从用间发被触
USER_UNLABELED_EXPORT 象被出并没有 SELinux 标签时被触
USYS_CONFIG 当用的参数化被检测被触
VIRT_CONTROL 当虚机器被启动停或停止被触
VIRT_MACHINE_ID 被触记录机器的标签绑定。
VIRT_RESOURCE 被触记录机器的源配置。
事件事件型 解
[a] 所有ANOM核事件型都预计被入侵检测程序理。
[b] 个事件型与 IMA(完整性度量架)有关,并与 TPM(可信平台模)芯片行得最好。
[c] 所有RESP核事件型都是定好的防其检测出系内有性事件于入侵检测的反
安全性指南安全性指南
144
C. 订历
1-14.1.1 Thu Nov 20 2014 Chester Cheng
明:明:完成。
、校、校坤、明晗、吴洁蕾、可。
编辑编辑任浩
编辑鄭中
附注:附注:体中文版来自「帽工程部翻帽工程部翻中心中心」与「澳大利澳大利昆士大学大学笔译暨笔译暨研究所研究所」之合作划。
若有疏漏之,期盼各方先以下网址,予支持指正:https://bugzilla.redhat.com/
1-14.1 Tue Jun 03 2014 Tomáš Čapek
7.0 GA 布版本
1-12.35 Tue May 20 2014 Tomáš Čapek
为风格更改行重建
1-12 Tue, Mar 05 2013 Martin Prpič
的最初
C. 订历订历
145

Navigation menu