−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。

哪种重启策略适合你?

它不覆盖什么

只覆盖系统软件包。你的 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 容器吗?

不会,只更新系统软件包。容器镜像需要你按自己的节奏拉取新版本并重建容器来更新。

评论

暂无评论。来做第一个吧。

发表评论

评论在显示前会经过审核。