大多數被入侵的伺服器,並不是栽在什麼高明的手法上。它們執行著帶有已知且早已修復的漏洞的軟體,只是沒人安裝修復。自動安全更新能堵上這個口子,而且不需要您記得登入。這是您能為新伺服器花的最划算的五分鐘之一。
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 還能提供變更之前的還原點。
評論
目前還沒有評論。歡迎成為第一位。