Debian

unattended-upgrades:Debian/Ubuntu 自动安全更新

unattended-upgrades 是 Debian 和 Ubuntu 系统上用于自动安装安全更新的工具。对于没有专人日常维护的服务器,它能确保已知漏洞及时被修补,减少被攻击的风险。

安装

首先更新软件包列表并安装:

sudo apt update
sudo apt upgrade
sudo apt install unattended-upgrades

安装完成后,系统会自动创建一个 cron 任务和 systemd 计时器,用于周期性检查并安装更新。

配置

主要配置文件有两个:

启用 / 禁用自动更新

/etc/apt/apt.conf.d/20auto-upgrades

内容格式:

# 禁用
//APT::Periodic::Update-Package-Lists "0";
//APT::Periodic::Unattended-Upgrade "0";

# 启用:每天检查并自动安装
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

控制哪些包会被更新

/etc/apt/apt.conf.d/50unattended-upgrades

默认配置大致如下(// 开头的行被忽略):

Unattended-Upgrade::Allowed-Origins {
    "${distro_id}:${distro_codename}";
    "${distro_id}:${distro_codename}-security";
    "${distro_id}ESMApps:${distro_codename}-infra-security";
    "${distro_id}ESM:${distro_codename}-infra-security";
};

Unattended-Upgrade::Package-Blacklist {
    # 在此列出不需要自动更新的包
};

几个常用配置:

  • 只更新安全包:在 Allowed-Origins 中仅保留带 -security 后缀的行
  • 排除特定包:在 Package-Blacklist 中添加包名,每行一个
  • 自动重启:需要时(如内核更新),取消注释 Unattended-Upgrade::Automatic-Reboot "true"; 并设置 Unattended-Upgrade::Automatic-Reboot-Time "02:00";