AxionserveSign in / RegisterEnglish/中文/cn繁体/tw

第 4 课 · 自动更新与补丁窗口

上架第一小时 · L2 · 第 4 / 6 节 · 约 3 分钟

漏洞修复的速度差就是被攻击的概率差:多数批量利用打的是补丁已发布但没装的机器——攻击者读安全公告的速度比多数运维快。这一课配置「安全补丁自动装、版本升级人工做」的双轨制,并给更新动作加上安全窗口纪律。

更新双轨与补丁窗口示意

双轨制:为什么补丁自动、升级人工

安全补丁与版本升级是两种风险画像:补丁——不装的代价确定(漏洞公开即被扫),装的代价小(同版本内行为几乎不变)→ 自动化;升级——装的收益是功能与生命周期,代价是行为变化(配置不兼容/依赖冲突)→ 人工走流程。把两者混成「全自动更新」,等于用不可控的变更风险换一点补丁速度。

配置自动安全补丁(Debian/Ubuntu)

# ① 安装并启用
sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -f noninteractive unattended-upgrades
# ② 确认口径:只启用了安全源(-security 通道)
grep -A2 "Allowed-Origins" /etc/apt/apt.conf.d/50unattended-upgrades | head -5
cat /etc/apt/apt.conf.d/20auto-upgrades    # "1" 即启用
# ③ 干跑验证(不真装,看它打算干什么)
sudo unattended-upgrade --dry-run --debug 2>&1 | tail -8
# ④ 看历史执行记录(它到底装过什么)
grep -h "upgrade" /var/log/apt/history.log 2>/dev/null | tail -5
# RHEL 系对应:sudo dnf install dnf-automatic && sudo systemctl enable --now dnf-automatic-install.timer

补丁窗口:人工升级的纪律

  • 窗口化:非安全类的版本升级集中在固定窗口做(如每月第一个周二下午)——「随到随升」的变更没有回滚对照,出事说不清是哪次改动引起;
  • 升级前快照:VPS 打快照、独服备份配置与数据——快照是升级的后悔药,没有后悔药的升级是赌博(快照与备份的差别:快照是同机时间点,备份可异地异机,两者都要有);
  • 先测试后生产:有测试机就在测试机先跑同版本升级 + 业务回归;没有测试机的,至少读变更说明(CHANGES/Release Notes)确认配置指令无废弃;
  • 升级后立即验证 + 24 小时观察:服务状态、关键业务路径、错误日志(journalctl -p err)——升级当天出的问题九成与升级有关,观察窗口内别做其他变更。

订阅漏洞情报:知道「该急了」的信号

自动补丁覆盖发行版仓库的节奏,但「正在被批量利用的漏洞」(in-the-wild)需要更快反应。低成本情报源三类:①发行版安全公告邮件列表(订阅你用的发行版,标题带 CVE 的扫一眼涉及软件);②你所用关键组件的官方安全页(Nginx/OpenSSL/数据库的 security advisories 页,季度看一次);③聚合源(安全媒体的「已被利用」类报道)。响应口径:涉及你在用的组件 + 可远程利用 + 已有批量利用 → 当天装补丁(不等窗口);其余按双轨制走。

内核更新的特殊性

内核补丁多数需要重启才生效——这是「自动装」与「业务连续」的冲突点。三种策略按业务选:①接受重启窗口(个人站/内部系统:自动装 + 计划内重启);②livepatch 类热补丁(部分发行版/云提供内核热补丁服务,免重启修高危漏洞);③多机滚动(有多台机器时逐台重启,业务不断)。判断「欠了多少重启」:ls /var/run/reboot-required 2>/dev/null && cat /var/run/reboot-required.pkgs | head——这个文件存在就是系统在你「该重启了」。

本节小结

  • 双轨制:安全补丁自动化(unattended-upgrades,压掉暴露窗口),版本升级人工化(窗口 + 快照 + 测试 + 观察);
  • 情报订阅决定应急速度:「正被利用 + 你在用 + 可远程」三条件齐 → 当天修,不等窗口;
  • 内核补丁要重启才生效——按业务选重启窗口/热补丁/滚动重启,reboot-required 文件是提醒器。