软件漏洞是服务器被入侵最常见的入口之一。安全补丁发布后,往往只需数小时攻击者就会开始扫描未打补丁的系统。配置自动安全更新,让系统在第一时间安装补丁,大幅缩短被利用的窗口期。本文分别介绍 Debian/Ubuntu 和 CentOS/RHEL 系统的自动更新配置方法。
本文要点
- Debian/Ubuntu 使用 unattended-upgrades 自动安装安全更新
- CentOS/RHEL 使用 dnf-automatic 配置自动更新
- 配置通知、重启策略与注意事项
- 自动更新的权衡与最佳实践
Debian / Ubuntu:unattended-upgrades
安装与启用
apt install -y unattended-upgrades apt-listchanges
# 启用自动更新(交互式配置,选 Yes)
dpkg-reconfigure -plow unattended-upgrades配置文件详解
nano /etc/apt/apt.conf.d/50unattended-upgrades重要配置项:
// 只自动安装安全更新
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}-security";
};
// 自动删除不再需要的依赖
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// 需要重启时是否自动重启(谨慎开启)
Unattended-Upgrade::Automatic-Reboot "false";
// 如需自动重启,设置重启时间(低峰期)
Unattended-Upgrade::Automatic-Reboot-Time "03:00";
// 邮件通知(填写收件地址)
Unattended-Upgrade::Mail "admin@example.com";
Unattended-Upgrade::MailReport "on-change";设置更新频率
nano /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1"; // 每天更新包列表
APT::Periodic::Unattended-Upgrade "1"; // 每天执行自动升级
APT::Periodic::AutocleanInterval "7"; // 每 7 天清理旧包手动测试与查看日志
# 演习模式(不实际安装)
unattended-upgrades --dry-run --debug
# 查看运行日志
cat /var/log/unattended-upgrades/unattended-upgrades.logCentOS / AlmaLinux / Rocky:dnf-automatic
安装
dnf install -y dnf-automatic配置
nano /etc/dnf/automatic.conf# 只下载并安装安全更新
upgrade_type = security
# 自动应用更新
apply_updates = yes
# 通知方式(stdio / email)
emit_via = stdio启用定时器
systemctl enable --now dnf-automatic.timer
# 查看定时器状态
systemctl status dnf-automatic.timer
# 查看日志
journalctl -u dnf-automatic两种方案对比
| 系统 | 工具 | 配置文件 | 日志位置 |
|---|---|---|---|
| Debian/Ubuntu | unattended-upgrades | /etc/apt/apt.conf.d/50unattended-upgrades | /var/log/unattended-upgrades/ |
| CentOS/RHEL | dnf-automatic | /etc/dnf/automatic.conf | journalctl -u dnf-automatic |
自动更新注意事项
- 生产环境谨慎开启自动重启:内核更新后需重启,自动重启可能造成计划外停机,建议设为低峰时段或手动执行。
- 业务依赖特定版本:若应用强依赖某版本的库,安全更新可能引入兼容性问题,建议先在测试环境验证。
- 仍需人工关注:自动更新不等于一劳永逸,系统大版本升级仍需手动操作。
小结
- Debian/Ubuntu 用 unattended-upgrades,CentOS 用 dnf-automatic,配置一次长期生效
- 默认只自动安装安全更新,不升级普通包,风险可控
- 自动重启选项谨慎使用,建议设在深夜低峰或关闭
- 配置邮件通知,了解每次自动更新的内容
常见问题
自动更新会不会把网站搞坏?
只自动安装安全补丁,不升级大版本。若有严格版本依赖,建议先在测试环境验证,或只自动下载、手动安装。
如何确认自动更新正常运行?
Debian/Ubuntu 查看 /var/log/unattended-upgrades/ 日志;CentOS 执行 journalctl -u dnf-automatic。配置邮件通知后会自动收到报告。
手动触发一次更新来测试怎么做?
Ubuntu 执行 unattended-upgrades --dry-run 演习,去掉 --dry-run 真实执行;CentOS 执行 dnf-automatic --installupdates。