大多数被入侵的服务器,并不是栽在什么高明的手法上。它们运行着带有已知且早已修复的漏洞的软件,只是没人安装修复。自动安全更新能堵上这个口子,而且不需要你记得登录。这是你能为新服务器花的最划算的五分钟之一。
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 还能提供变更之前的还原点。
评论
暂无评论。来做第一个吧。