−25%

Windows 年繳方案適用,至 10 月 31 日。 檢視方案

EQVPS
開始使用

如何在 VPS 上啟用自動安全更新

在 Ubuntu/Debian 上啟用 unattended-upgrades,或在 Rocky/AlmaLinux 上啟用 dnf-automatic,讓安全性更新自動安裝,並決定是否自動重新啟動。

大多數被入侵的伺服器,並不是栽在什麼高明的手法上。它們執行著帶有已知且早已修復的漏洞的軟體,只是沒人安裝修復。自動安全更新能堵上這個口子,而且不需要您記得登入。這是您能為新伺服器花的最划算的五分鐘之一。

Ubuntu 和 Debian:unattended-upgrades

Ubuntu 映像通常自備;Debian 可能沒有。安裝並啟用它:

apt update
apt install -y unattended-upgrades apt-listchanges
dpkg-reconfigure -plow unattended-upgrades    # answer "Yes"

這會建立 /etc/apt/apt.conf.d/20auto-upgrades:

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

兩個 1 的意思是:每天重新整理套件列表並安裝安全更新。

決定是否重新啟動

核心修補程式需要重新啟動才能生效。要在安靜的時段自動重新啟動,編輯 /etc/apt/apt.conf.d/50unattended-upgrades 並設定:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
Unattended-Upgrade::Remove-Unused-Dependencies "true";

只有當某個更新確實需要時(存在 /var/run/reboot-required 時),伺服器才會重新啟動。

測試一下

unattended-upgrade --dry-run --debug

記錄位於 /var/log/unattended-upgrades/。

Rocky Linux 和 AlmaLinux:dnf-automatic

dnf install -y dnf-automatic

編輯 /etc/dnf/automatic.conf:

[commands]
upgrade_type = security
apply_updates = yes

啟用定時器:

systemctl enable --now dnf-automatic.timer
systemctl list-timers dnf-automatic.timer

想知道更新後是否需要重新啟動,可以安裝 dnf-utils 並執行 needs-restarting -r。

哪種重新啟動策略適合您?

  • 夜裡停一分鐘也無妨的單個應用(機器人、個人服務、小網站):開啟自動重新啟動。
  • 全天候都有人使用的服務,或您更願意親自重新啟動的資料庫: 關閉自動重新啟動,並設定提醒,在出現 /var/run/reboot-required 時重新啟動。

它不覆蓋什麼

只覆蓋系統套件。您的 Docker 映像、語言依賴(pip、npm)以及手動安裝的二進位檔不會自己更新:請另行安排。另外,版本內的更新是自動的,而升級到新版本(Ubuntu 22.04 → 24.04)仍然是需要您主動進行的手動工作。

萬一哪次更新出了問題導致無法啟動,EQVPS 面板中的網頁控制台能讓您不透過 SSH 登入,Managed Backups 還能提供變更之前的還原點。

相關

常見問題

自動安裝更新安全嗎?

對安全更新來說是安全的:unattended-upgrades 預設安裝的就是這些。它們是小而有針對性的修復。放任一個已知且未修補的漏洞,風險遠大於某個安全性更新把東西弄壞的風險。

伺服器應該自動重新啟動嗎?

核心和核心庫的修補程式只有在重新啟動後才會生效。如果您的服務能承受凌晨 4 點停一分鐘,就開啟自動重新啟動。否則就保持關閉,在出現 /var/run/reboot-required 時手動重新啟動。

怎麼知道更新已經裝上了?

在 Debian/Ubuntu 上檢視 /var/log/unattended-upgrades/unattended-upgrades.log,在 Rocky/Alma 上檢視 'journalctl -u dnf-automatic'。用 'unattended-upgrade --dry-run --debug' 試執行,可以看到此刻會安裝哪些內容。

它會把我的發行版升級到新的大版本嗎?

不會。unattended-upgrades 和 dnf-automatic 只安裝目前版本內的更新。比如從 Ubuntu 22.04 升級到 24.04,永遠是手動操作。

它也會更新 Docker 容器嗎?

不會,只更新系統套件。容器映像需要您按自己的節奏拉取新版本並重建容器來更新。

評論

目前還沒有評論。歡迎成為第一位。

發表評論

評論在顯示前會經過審核。