阿克森雲登入 / 註冊English/中文/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 文件是提醒器。