在無頭伺服器上保持 Debian 12 安全更新運行

對於一台無頭 Debian 12 伺服器,請安裝unattended-upgrades並啟用 APT 的每日軟體包清單刷新和無人值守升級設置,並保留預設的安全源允許清單。然後透過 SSH 驗證 systemd 計時器和日誌。這樣可以自動更新符合條件的軟體包;但它不會執行 Debian 的主要版本升級,也不能保證每個應用程式都不需要後續更新。

SSH 終端機顯示 apt update 指令執行完畢,隨後在 Debian 系統上安裝了 unattended-upgrades。
透過 SSH 會話刷新 APT 元資料並安裝 unattended-upgrades 軟體包。

1. 安裝更新程式並確認發布

使用有權使用該功能的帳號登入sudo。安裝前,請檢查伺服器版本並更新其軟體包索引:

cat /etc/debian_version
sudo apt update
sudo apt install unattended-upgrades

此流程針對 Debian 12 (Bookworm),使用其標準的 APT 軟體來源。請在接受軟體包計劃之前仔細檢查。如果 APT 報告軟體來源、DNS、磁碟空間或依賴關係錯誤,請先解決這些問題;無人值守操作無法修復損壞的軟體包來源或不健康的檔案系統。

2. 開啟每日刷新與安全性升級

在本地指定檔案中設定 APT 的定期選項。這樣可以實現每日軟體包清單刷新和無人值守升級運行:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades
Nano 編輯器顯示了 20auto-upgrades 中的兩個 APT 週期性設置
本地 APT 配置支援每日軟體包清單更新和無人值守升級。

輸入並儲存以下兩行程式碼:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

在 Nano 編輯器中,按下Ctrl+OEnter 鍵,然後輸入 `\n` Ctrl+X。該值1表示每天更新。 APT 的unattended-upgrades軟體套件設定控制著可以安裝哪些歸檔來源。在標準的 Debian 12 系統中,/etc/apt/apt.conf.d/50unattended-upgrades最初不要更改此設定;其預設允許清單旨在選擇 Debian 安全性更新和相關的已配置 Debian 更新。不要為了讓狀態輸出看起來更頻繁而新增第三方儲存庫或整個 Bookworm 倉庫。如果您有意擴大允許列表,請仔細檢查特定的儲存庫,進行測試,並像對待任何其他生產環境變更一樣監控服務。

3. 將自動重啟功能置於管理員控制之下

對於遠端管理的伺服器,請檢查下列位置的重新啟動策略50unattended-upgrades:

grep -n 'Automatic-Reboot' /etc/apt/apt.conf.d/50unattended-upgrades

除非您已製定服務中斷計劃、檢查應用程式恢復方案,並擁有可靠的帶外或控制台恢復路徑,否則請勿啟用自動重新啟動。 Debian 安全性更新可能會安裝需要重新啟動才能生效的新核心或函式庫,但無人值守升級並不能取代重啟策略或值班計畫。停用自動重啟後,請安排定期維護窗口,並在更新後檢查是否需要重新啟動。

終端機顯示無人值守升級試運行偵錯輸出,列出模擬的軟體包計劃
試運行可以顯示已配置的來源和候選軟體包,而無需安裝它們;顯示的輸出僅供參考。

4. 在正式使用前,請務必測試配置。

透過 SSH 運行模擬。此--dry-run標誌不會安裝軟體包,但--debug會在無人值守升級日誌中提供更多詳細資訊:

sudo unattended-upgrade --dry-run --debug

讀取輸出結果,查看允許的來源和建議的軟體包操作。如果出現「沒有要升級的軟體包」的訊息,則表示沒有待處理的合格軟體包,這可能是正常結果;但這並不意味著計時器稍後會運行。如果允許的來源為空或意外缺少候選來源,請50unattended-upgrades在變更之前檢查發行版的 APT 來源和模式。 Bookworm 手冊將此指令記錄為類比操作,而非實際安裝。

5. 檢查計時器、服務和日誌

APT 使用 systemd 定時器單元進行日常工作。請檢查定時器和升級服務:

systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers 'apt-daily*'
systemctl status apt-daily-upgrade.service

定時器應已載入並處於活動狀態,清單中應顯示其下次計畫運行時間。如果定時器已安裝但未激活,請啟動它們並啟用它們以便在以後的啟動中生效:

sudo systemctl enable --now apt-daily.timer apt-daily-upgrade.timer

由於服務是一次性任務,因此在兩次計劃運行之間可能會處於非活動狀態;請檢查其最後運行結果,而不是期望它一直運行。在計劃運行視窗結束後,請查看軟體包日誌和 systemd 日誌:

終端機圖示顯示了 apt-daily-upgrade 定時器的活動狀態和範例無人值守升級日誌行
使用計時器狀態和無人值守升級日誌來確認計畫活動;所示條目僅供參考。
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades.log
sudo tail -n 50 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"

查看運行是否已完成、允許的來源以及軟體包是否已安裝或是否有待安裝的軟體包。調查重複下載失敗、軟體包被保留或 dpkg 錯誤。手冊列出了這些日誌路徑,並解釋了 systemd 服務運行無人值守升級後端。

此設定可以確認和不能確認的內容

正常工作的配置意味著定時器已啟動、定期 APT 設定已啟用,且日誌顯示無人值守運行成功。但這並不能證明每個軟體倉庫中的每個軟體包都已更新,也不證明依賴重啟的修復程式已生效,或軟體包更改後服務保持健康。 Debian 的版本升級流程仍然是一個單獨規劃的操作;無人值守升級僅用於已配置來源中的軟體包更新。對於關鍵伺服器,應添加對失敗運行的監控、維護備份、在代表性環境中測試更改,並定義一個經人工審核的重啟視窗。

這些步驟遵循 Debian Bookworm無人升級手冊、Debian定期更新指南以及 Bookworm systemd.timer 手冊。 Bookworm 手冊中指出的 Debian 軟體包版本為 2.9.1+nmu3;軟體包版本可能會隨 Debian 更新而變更。

留下評論

在無頭伺服器上保持 Debian 12 安全更新運行

在無頭伺服器上保持 Debian 12 安全更新運行

啟用 Debian 透過 SSH 進行的無人值守安全性更新,保留預設軟體套件來源,並透過 systemd 和 APT 日誌驗證計畫運作。

使用 smartd 透過電子郵件取得 Ubuntu SMART 磁碟警告

使用 smartd 透過電子郵件取得 Ubuntu SMART 磁碟警告

比較郵件投遞選項,在 Ubuntu 上配置 smartd,並驗證磁碟健康警告是否到達您的收件匣。

Debian 12 DNS 查詢失敗:修正 systemd-resolved

Debian 12 DNS 查詢失敗:修正 systemd-resolved

透過檢查 systemd-resolved、在需要時修復 resolv.conf 以及驗證上游 DNS 和應用程式解析,恢復 Debian 12 上的 DNS 查找。

Ubuntu 24.04 無法顯示 HDMI 音訊?恢復輸出

Ubuntu 24.04 無法顯示 HDMI 音訊?恢復輸出

讓 Ubuntu 偵測到你的顯示器或電視作為音訊輸出設備,在聲音設定中選擇它,如果缺少 HDMI,請檢查連接或 PipeWire 設備清單。

透過修復儲存庫金鑰來修復 APT 簽章錯誤

透過修復儲存庫金鑰來修復 APT 簽章錯誤

透過識別失敗的來源、刷新其已驗證的金鑰並檢查結果,安全地解決 Ubuntu APT 簽章警告,而無需停用安全性。

如何轉換三相電壓、電流、千瓦 (kW)、千伏安 (kVA) 和功率因數

如何轉換三相電壓、電流、千瓦 (kW)、千伏安 (kVA) 和功率因數

學習平衡三相公式,並逐步轉換線電壓、電流、kW、kVA 和功率因數,並提供範例和檢查極限。

使用 Ubuntu cgroups 限制指令的 CPU 和記憶體使用量

使用 Ubuntu cgroups 限制指令的 CPU 和記憶體使用量

在 systemd 範圍內運行工作負載,並設定 CPUQuota 和 MemoryMax,然後透過 cgroup v2 驗證限制。

在 Ubuntu Server 24.04 上加密 Pi-hole 上游 DNS

在 Ubuntu Server 24.04 上加密 Pi-hole 上游 DNS

在 Ubuntu 24.04 上將 dnscrypt-proxy 設定為 Pi-hole 的本地 DoH 橋,設定僅限 localhost 的監聽器、解析器選擇以及切換 DNS 前的檢查。

讓 Ubuntu 24.04 在 Wayland 上啟用觸控板手勢

讓 Ubuntu 24.04 在 Wayland 上啟用觸控板手勢

在排查應用程式或硬體故障之前,請檢查 Ubuntu 的觸控板設定、確認 Wayland 以及測試 GNOME 的內建滑動功能。

使用 mdadm 建置 Debian 12 RAID 1 鏡像

使用 mdadm 建置 Debian 12 RAID 1 鏡像

建立並驗證一個雙磁碟 Debian 12 RAID 1 資料陣列,安全地格式化它,並配置它在重新啟動後組裝和掛載。