降低风险和恢复操作
备份数据、日志监控和管理安全更新
摘要
对红帽文档提供反馈 复制链接链接已复制到粘贴板!
我们感谢您对我们文档的反馈。让我们了解如何改进它。
通过 Jira 提交反馈(需要帐户)
- 登录到 Jira 网站。
- 在顶部导航栏中点 Create
- 在 Summary 字段中输入描述性标题。
- 在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 点对话框底部的 Create。
第 1 章 恢复系统 复制链接链接已复制到粘贴板!
Red Hat Enterprise Linux 提供 Relax-and-Recover (ReaR)工具来使用现有备份恢复系统。您可以使用这个工具作为灾难恢复解决方案,也用于系统迁移。
该工具可让您执行以下任务:
- 生成一个可引导镜像,并使用镜像从现有备份恢复系统。
- 复制原始存储布局。
- 恢复用户和系统文件。
- 将系统还原到不同的硬件中。
另外,对于灾难恢复,您还可以将某些备份软件与 ReaR 集成。
1.1. 设置 ReaR 并手动创建一个备份 复制链接链接已复制到粘贴板!
使用以下步骤,使用 Relax-and-Recover(ReaR)工具安装软件包,来创建一个救援系统,配置并生成一个备份。
先决条件
根据备份恢复计划完成必要的配置。
请注意: 您可以使用
NETFS备份方法,该方法是 ReaR 完全整合的、内置的方法。
流程
安装 ReaR 工具:
# dnf install rear在您选择的编辑器中修改 ReaR 配置文件,例如:
# vi /etc/rear/local.conf在
/etc/rear/local.conf中添加备份设置详情。例如,在使用NETFS备份方法时添加以下行:BACKUP=NETFS BACKUP_URL=backup.location使用备份位置的 URL 替换 backup.location。
要将 ReaR 配置为在创建新归档时保留之前的备份归档,还需要将以下行添加到配置文件中:
NETFS_KEEP_OLD_BACKUP_COPY=y要让递增形式进行备份,在每个运行中只备份修改了的文件,添加以下行:
BACKUP_TYPE=incremental创建一个救援系统:
# rear mkrescue根据恢复计划创建一个备份。例如,在使用
NETFS备份方法时请输入:# rear mkbackuponly另外,您可以通过运行以下命令来在一个步骤中创建救援系统和备份:
# rear mkbackup该命令结合了
rear mkrescue和rear mkbackuponly命令的功能。
1.2. 在 64 位 IBM Z 构架上使用 ReaR 救援镜像 复制链接链接已复制到粘贴板!
64 位 IBM Z 构架上提供了基本的 Relax and Recover (ReaR)功能,并被完全支持。您只能在 z/VM 环境中在 IBM Z 上创建 ReaR 救援镜像。备份和恢复逻辑分区(LPAR)还没有测试。
当前唯一可用的输出方法是 Initial Program Load(IPL)。IPL 生成一个内核和一个初始 RAM 磁盘(initrd),可与 zIPL 引导装载程序一起使用。
先决条件
- ReaR 已安装。
流程
将以下变量添加到 /etc/rear/local.conf 中来配置 ReaR,以便在 64 位 IBM Z 构架上生成救援镜像:
-
要配置
IPL输出方法,请添加OUTPUT=IPL。 要配置备份方法和目的地,请添加
BACKUP和BACKUP_URL变量。例如:BACKUP=NETFS BACKUP_URL=nfs://<nfsserver name>/<share path>重要目前在 64 位 IBM Z 构架上不支持本地备份存储。
-
可选:您还可以配置
OUTPUT_URL变量来保存内核和initrd文件。默认情况下,OUTPUT_URL与BACKUP_URL保持一致。 要执行备份和救援镜像创建:
# rear mkbackup-
这会在
BACKUP_URL或OUTPUT_URL(如果设置了)变量指定的位置创建内核和 initrd 文件,以及使用指定的备份方法所做的备份。 -
要恢复系统,请使用第 3 步中创建的 ReaR 内核和 initrd 文件,并从与
zipl引导装载程序、内核和initrd一起准备的直接附加存储设备(DASD)或者附加光纤通道协议(FCP)的 SCSI 设备启动。如需更多信息,请参阅使用准备的 DASD。 -
当救援内核和
initrd引导时,它会启动 ReaR 救援环境。继续系统恢复。
1.3. ReaR 排除 复制链接链接已复制到粘贴板!
ReaR 工具会在恢复过程中根据 /var/lib/rear/layout/disklayout.conf 布局文件中的描述,在恢复的系统的磁盘上重新创建已生成救援镜像的原始系统的存储布局。存储布局包括分区、卷组、逻辑卷、文件系统和其他存储组件。
ReaR 在创建救援镜像时创建布局文件,并在镜像中嵌入这个文件。您还可以使用 rear savelayout 命令创建布局文件。这可让您快速创建布局文件并检查它,而无需创建整个救援镜像。
布局文件描述了原始系统的整个存储布局,但有一些例外,因为 ReaR 从布局文件中排除了一些存储组件,并在恢复过程中重新创建它们。从布局中排除存储组件是由以下配置变量控制的:
-
AUTOEXCLUDE_DISKS -
AUTOEXCLUDE_MULTIPATH -
AUTOEXCLUDE_PATH -
EXCLUDE_RECREATE
您可以查看 /usr/share/rear/conf/default.conf 文件中配置变量的默认值,并可以在本地 /etc/rear/local.conf 配置文件中更改这些值。
有关布局文件的语法以及可用来排除某些存储组件的配置变量的更多信息,请参阅 ReaR 用户指南中的 布局配置 一章,其随 ReaR 软件包一起安装,为 /usr/share/doc/rear/relax-and-recover-user-guide.html 。
您还可以配置哪些文件由内部 NETFS 和 RSYNC 备份方法进行备份。默认情况下,如果布局文件中包含文件系统,则所有挂载的本地(基于磁盘)文件系统中的文件都是由 rear mkbackup 或 rear mkbackuponly 备份的。从布局文件中排除某些文件系统,这些文件由 AUTOEXCLUDE_DISKS、AUTOEXCLUDE_MULTIPATH、AUTOEXCLUDE_PATH 和 EXCLUDE_RECREATE 等变量控制的,也会从备份中排除其内容。您还可以使用 BACKUP_PROG_EXCLUDE 配置变量,从备份中排除某些文件或目录树,而不是从布局文件中排除文件系统。当以这种方式排除了文件系统中的所有文件和目录时,文件系统会在恢复过程中重新创建,但将为空,因为备份不包含要恢复到其中的任何数据。这对包含临时数据且不需要保留的文件系统,或者对于使用独立于 ReaR 的方法备份的数据很有用。
BACKUP_PROG_EXCLUDE 变量是一个传递给 tar 或 rsync 的 glob (3)式通配符模式的数组。请注意,在读取配置文件时,需要将模式括在引号中,以防止它们被 shell 扩展。此变量的默认值在 /usr/share/rear/conf/default.conf 文件中设置。默认值包含,例如 /tmp/* 模式,它排除了 /tmp 目录下的所有文件和目录,但不排除 /tmp 目录本身。
如果您需要排除其他文件和目录,请将其他模式附加到变量,而不是覆盖它,以便保留默认值。例如,要排除目录 /data/temp 下的所有文件和目录,请使用:
# BACKUP_PROG_EXCLUDE+=( '/data/temp/*' )
rear mkbackup 命令在日志中列出备份排除模式。您可以在 /var/log/rear 目录中找到日志文件。这可用于在执行全系统恢复前验证排除的规则。例如,日志可以包含以下条目:
2025-04-29 10:17:41.312431050 Making backup (using backup method NETFS)
2025-04-29 10:17:41.314369109 Backup include list (backup-include.txt contents):
2025-04-29 10:17:41.316197323 /
2025-04-29 10:17:41.318052001 Backup exclude list (backup-exclude.txt contents):
2025-04-29 10:17:41.319857125 /tmp/*
2025-04-29 10:17:41.321644442 /dev/shm/*
2025-04-29 10:17:41.323436363 /var/lib/rear/output/*
这里,整个 root 文件系统包含在备份中,除了 /tmp、/dev/shm 和 /var/lib/rear/output 目录下的所有文件和目录。
第 2 章 使用日志文件对问题进行故障排除 复制链接链接已复制到粘贴板!
您可以使用日志文件中的信息进行故障排除,并监控系统功能。日志文件包含有关系统的消息,包括内核和在其上运行的服务和应用程序。Red Hat Enterprise Linux 中的日志记录系统基于内置的 syslog 协议。然后,各种程序使用 syslog 记录事件并将其整理到日志文件中。
2.1. 处理 syslog 消息的服务 复制链接链接已复制到粘贴板!
以下服务处理 syslog 消息:
systemd-journald守护进程从以下源中收集消息,并将其转发到
Rsyslog以便进行进一步处理:- 内核
- 引导过程的早期阶段
- 启动并运行守护进程的标准和错误输出
-
syslog
Rsyslog服务-
根据类型和优先级对
syslog消息进行排序,并将其写到/var/log目录中的文件。/var/log目录会永久保存日志信息。
2.2. 存储 syslog 消息的子目录 复制链接链接已复制到粘贴板!
/var/log 目录中的以下子目录存储 syslog 消息:
- /var/log/messages
-
除以下消息外的所有
syslog消息 - /var/log/secure
- 安全和与验证相关的消息和错误
- /var/log/maillog
- 与邮件服务器相关的消息和错误
- /var/log/cron
- 与定期执行的任务相关的日志文件
- /var/log/boot.log
- 与系统启动相关的日志文件
2.3. 查看日志的命令 复制链接链接已复制到粘贴板!
您可以使用 Journal 查看和管理日志文件,其是 systemd 的一个组件。它解决了与传统日志记录相关的问题,其与系统的其余部分紧密集成,并支持各种日志记录技术以及对日志文件的访问管理。
您可以使用 journalctl 命令查看系统日志中的消息,例如:
$ journalctl -b | grep kvm
May 15 11:31:41 localhost.localdomain kernel: kvm-clock: Using msrs 4b564d01 and 4b564d00
May 15 11:31:41 localhost.localdomain kernel: kvm-clock: cpu 0, msr 76401001, primary cpu clock
查看系统信息
journalctl- 显示所有收集的日志条目。
journalctl FILEPATH-
显示与特定文件相关的日志。例如:
journalctl /dev/sda命令显示与/dev/sda文件系统相关的日志。 journalctl -b- 显示当前引导的日志。
journalctl -k -b -1- 显示当前引导的内核日志。
查看有关特定服务的信息
journalctl -b _SYSTEMD_UNIT=<name.service>-
过滤日志以显示与
systemd服务匹配的条目。 journalctl -b _SYSTEMD_UNIT=<name.service> _PID=<number>-
合并匹配。例如,这个命令显示与
<name.service>和 PID<number>匹配的systemd-units的日志。 journalctl -b _SYSTEMD_UNIT=<name.service> _PID=<number> + _SYSTEMD_UNIT=<name2.service>-
加号(+)分隔符将两个表达式按逻辑 OR 组合在一起。例如,这个命令显示来自带有
PID的<name.service>服务进程的所有消息,加上来自<name2.service>服务(来自其任何进程)的所有消息。 journalctl -b _SYSTEMD_UNIT=<name.service> _SYSTEMD_UNIT=<name2.service>-
此命令显示与引用同一字段的任一表达式匹配的所有条目。在这里,这个命令会显示与 systemd-unit
<name.service>或 systemd-unit<name2.service>匹配的日志。
查看与特定引导相关的日志
journalctl --list-boots- 显示引导号、其 ID 以及与引导相关的第一条和最后一个消息的时间戳列表。您可以在下一个命令中使用 ID 来查看详细信息。
journalctl --boot=ID _SYSTEMD_UNIT=<name.service>- 显示有关指定的引导 ID 的信息。
第 3 章 管理及监控安全更新 复制链接链接已复制到粘贴板!
了解如何安装安全更新,并显示更新的额外详情,以保护您的 Red Hat Enterprise Linux 系统免受新发现的威胁和漏洞的攻击。
3.1. 识别安全更新 复制链接链接已复制到粘贴板!
为了确保企业系统不受当前和未来的安全威胁,系统需要定期进行安全更新。红帽产品安全团队为您提供了安心部署和维护企业解决方案所需的指导。
3.1.1. 什么是安全公告? 复制链接链接已复制到粘贴板!
红帽安全公告(Red Hat Security Advisories,简称 RHSA)记录了有关红帽产品和服务中安全漏洞的信息。
每个 RHSA 包括以下信息:
- 重要性
- 类型和状态
- 受影响的产品
- 修复问题的摘要
- 问题相关的报告链接。请注意,不是所有的报告都是公开的。
- 公共漏洞和暴露(Common Vulnerabilities and Exposures,简称 CVE)编号以及更多详情(如攻击复杂性)的链接。
红帽客户门户(Red Hat Customer Portal)提供了红帽发布的红帽安全公告列表。您可以通过访问红帽安全公告列表中的公告 ID 来显示特定公告的详情。
图 3.1. 安全公告列表
此外,您还可以根据特定产品、变体、版本和架构过滤结果。例如,只显示 Red Hat Enterprise Linux 9 公告,您可以设置以下过滤器:
- 产品: Red Hat Enterprise Linux
- 变体: 所有变体
- 版本: 9
- (可选)选择一个次版本。
3.1.2. 显示主机上未安装的安全更新 复制链接链接已复制到粘贴板!
您可以使用 dnf 实用程序列出系统的所有可用安全更新。
先决条件
- 红帽订阅已附加到主机。
流程
列出主机上尚未安装的所有可用安全更新:
# dnf updateinfo list updates security … RHSA-2019:0997 Important/Sec. platform-python-3.6.8-2.el8_0.x86_64 RHSA-2019:0997 Important/Sec. python3-libs-3.6.8-2.el8_0.x86_64 RHSA-2019:0990 Moderate/Sec. systemd-239-13.el8_0.3.x86_64 …
3.1.3. 显示在主机上安装的安全更新 复制链接链接已复制到粘贴板!
您可以使用 dnf 实用程序列出已安装系统的安全更新。
流程
列出主机上安装的所有安全更新:
# dnf updateinfo list security --installed … RHSA-2019:1234 Important/Sec. libssh2-1.8.0-7.module+el8+2833+c7d6d092 RHSA-2019:4567 Important/Sec. python3-libs-3.6.7.1.el8.x86_64 RHSA-2019:8901 Important/Sec. python3-libs-3.6.8-1.el8.x86_64 …如果安装了多个软件包更新,
dnf将列出该软件包的所有公告。在上例中,自系统安装以来,已安装了python3-libs软件包的两个安全更新。
3.1.4. 使用 DNF 显示特定的公告 复制链接链接已复制到粘贴板!
您可以使用 dnf 实用程序显示可用于更新的特定公告信息。
先决条件
- 红帽订阅已附加到主机。
- 您知道安全公告的 ID。
- 公告提供的更新没有安装。
流程
显示特定的公告,例如:
# dnf updateinfo info RHSA-2019:0997 ==================================================================== Important: python3 security update ==================================================================== Update ID: RHSA-2019:0997 Type: security Updated: 2019-05-07 05:41:52 Bugs: 1688543 - CVE-2019-9636 python: Information Disclosure due to urlsplit improper NFKC normalization CVEs: CVE-2019-9636 Description: …
3.2. 安装安全更新 复制链接链接已复制到粘贴板!
在 Red Hat Enterprise Linux 中,您可以安装特定的安全公告以及所有可用的安全更新。您还可以将系统配置为自动下载和安装安全更新。
3.2.1. 安装所有可用的安全更新 复制链接链接已复制到粘贴板!
要保持系统的安全性,您可以使用 dnf 工具安装所有当前可用的安全更新。
先决条件
- 红帽订阅已附加到主机。
流程
使用
dnf工具安装安全更新:# dnf update --security没有
--security参数,dnf update会安装所有更新,包括 bug 修复和增强。按 y 确认并启动安装:
… Transaction Summary =========================================== Upgrade … Packages Total download size: … M Is this ok [y/d/N]: y可选:列出安装更新的软件包后需要手动重启系统的进程:
# dnf needs-restarting 1107 : /usr/sbin/rsyslogd -n 1199 : -bash上一命令只列出需要重启的进程,而不是服务。也就是说,您无法使用
systemctl工具重启列出的进程。例如,当拥有此进程的用户退出时,输出中的bash进程会被终止。
3.2.2. 安装特定公告提供的安全更新 复制链接链接已复制到粘贴板!
在某些情况下,您可能只希望安装特定的更新。例如,某个特定的服务可以在不需要停机的情况下进行更新,您可以只为该服务安装安全更新,并在以后安装剩余的安全更新。
先决条件
- 红帽订阅已附加到主机。
您知道您要更新的安全公告的 ID。
如需更多信息,请参阅 识别安全公告更新 部分。
流程
安装特定的公告,例如:
# dnf update --advisory=RHSA-2019:0997或者,使用
dnf upgrade-minimal命令进行更新,以应用具有最小版本更改的特定公告,例如:# dnf upgrade-minimal --advisory=RHSA-2019:0997按
y确认并启动安装:… Transaction Summary =========================================== Upgrade … Packages Total download size: … M Is this ok [y/d/N]: y可选:在安装更新的软件包后列出需要手动重启系统的进程:
# dnf needs-restarting 1107 : /usr/sbin/rsyslogd -n 1199 : -bash上一命令只列出需要重启的进程,而不是服务。这意味着,您无法使用
systemctl工具重启列出的所有进程。例如,当拥有此进程的用户退出时,输出中的bash进程会被终止。
3.2.3. 自动安装安全更新 复制链接链接已复制到粘贴板!
您可以配置您的系统,以便其自动下载并安装所有安全更新。
先决条件
- 红帽订阅已附加到主机。
-
dnf-automatic软件包已安装。
流程
在
/etc/dnf/automatic.conf文件中,在[commands]部分,确保将upgrade_type选项被设置为default或security:[commands] # What kind of upgrade to perform: # default = all available upgrades # security = only the security upgrades upgrade_type = security启用并启动
systemd计时器单元:# systemctl enable --now dnf-automatic-install.timer
验证
验证计时器是否已启用:
# systemctl status dnf-automatic-install.timer