离线安装Linux安全补丁必须全程前置管控:在跳板机上精准获取并校验补丁包、预检依赖、打包交付;目标机分阶段执行安装与多层验证(GRUB启动项、运行内核版本、CVE覆盖),确保可信、准确、可验。

离线环境安装Linux补丁,不能靠自动更新,必须把“找包—验包—运包—装包—验效果”整条链路全部前置到有网跳板机上完成。自动化脚本的作用,是把这套人工流程固化、防错、可复现,而不是替代人的判断。
一、跳板机上自动生成可信补丁包集
脚本需先识别目标系统真实状态,再精准拉取对应补丁:
- 执行cat /etc/os-release和uname -r,提取ID、VERSION_ID、内核ABI等关键标识
- 根据标识拼出官方镜像路径(如mirror.centos.org/centos/7/updates/x86_64/Packages/),用wget --no-parent -r -np -A "*.rpm" -l 1批量下载补丁包及配套的.sha256sum和.asc文件
- 自动调用gpg --verify验签,并用sha256sum -c比对哈希值,任一失败即中止并报错
- 对每个.rpm运行rpm -qpR,汇总缺失依赖,递归下载并加入打包目录
二、一键构建离线部署包(含验证逻辑)
生成的离线包不是简单压缩,而是结构化交付物:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 顶层包含install.sh(主执行脚本)、verify.sh(安装后校验脚本)、metadata.json(记录CVE编号、影响版本、重启要求等)
- 子目录packages/存放所有.rpm及其依赖;patches/存放源码级补丁(如需);docs/含Red Hat Errata快照PDF
- install.sh内置安全防护:检查目标机是否为同架构(uname -m)、是否已安装rpm工具、是否在维护窗口期(可配时间白名单)
三、目标机执行时分阶段可控操作
安装过程不追求“一键到底”,而是分步确认、留痕、可逆:
- 第一阶段:--check模式扫描当前系统状态:列出已安装内核版本、是否有待更新包、是否存在冲突包(如旧版kernel未卸载)
- 第二阶段:--install模式执行rpm -Uvh --test预检,仅当无错误才正式安装;每装一个包,记录rpm -qi输出到/var/log/patch-install.log
- 第三阶段:--verify模式调用verify.sh:检查新内核是否注册进GRUB、rpm -V kernel校验文件完整性、用grep -i cve-xxxx /usr/share/doc/kernel/ChangeLog*确认CVE覆盖
四、安装后必须触发的三项硬性验证
仅“rpm -q kernel”返回新版本远远不够,需多层交叉验证:
- 启动项验证:执行grubby --default-kernel,确认默认启动内核路径含新版本字符串;同时检查/boot/grub2/grub.cfg中是否有对应menuentry
- 运行时验证:重启后执行uname -r,必须与安装包名中版本完全一致;再运行dmesg | grep -i "security\|cve"查看内核日志是否加载相关修复模块
- CVE覆盖验证:从metadata.json读取本次安装涉及的CVE列表,逐个查询官方公告或使用ovaldi等离线OVAL扫描器比对结果

















