如果你的服务器上通过包管理器安装了很多软件,有些时候这些软件可能会被爆出存在漏洞,这个时候大多数的发行版都会立即推送新的软件包到存储库用于修复旧版本的漏洞。
这个时候虽然新的软件包已经存在于存储库了,但是还需要人工去手动升级,往往就是这个地方耽误了很长时间从而造成了安全隐患。
实际上我们可以配置包管理器的自动更新功能,让包管理器自动去安装这些更新,无需人工干预。
下面记录一下apt/yum/dnf包管理器的配置方法。
首先来看apt包管理器的,安装无人值守升级的软件包:
apt -y update apt -y install unattended-upgrades
设置开机自启:
systemctl enable --now unattended-upgrades
[可选]编辑配置文件:
nano /etc/apt/apt.conf.d/50unattended-upgrades
默认情况下这个配置文件内的内容无需做更改就可以正常工作的。
如果你只打算安装安全类的更新,保证和下面的这个配置一致即可:
Unattended-Upgrade::Origins-Pattern { ... // "origin=Debian,codename=${distro_codename}-updates"; // "origin=Debian,codename=${distro_codename}-proposed-updates"; "origin=Debian,codename=${distro_codename},label=Debian"; "origin=Debian,codename=${distro_codename},label=Debian-Security"; ... };
如图所示:
如果你有一些特殊的需求可以参考一下下面的这些配置:
// 删除未使用的内核软件包 Unattended-Upgrade::Remove-Unused-Kernel-Packages "true"; // 删除未使用的依赖项 Unattended-Upgrade::Remove-New-Unused-Dependencies "true"; // 删除未使用的软件包 Unattended-Upgrade::Remove-Unused-Dependencies "true"; // 启用日志记录 Unattended-Upgrade::SyslogEnable "true";
配置好了之后使用下面的命令生成一个20auto-upgrades的文件:
dpkg-reconfigure -plow unattended-upgrades
你也可以手动创建这个文件:
nano /etc/apt/apt.conf.d/20auto-upgrades
确保里面有如下内容:
// 自动运行apt update APT::Periodic::Update-Package-Lists "1"; // 自动运行apt upgrade APT::Periodic::Unattended-Upgrade "1";
最后测试运行:
unattended-upgrade --dry-run
没有问题的话就配置好了。
接下来是CentOS的配置方法,CentOS8自带了yum和dnf两个包管理器,任意选其中一个使用即可。
首先安装dnf-automatic:
yum -y install dnf-automatic
编辑配置文件:
vi /etc/dnf/automatic.conf
将里面的配置改为下面所示的:
// 仅更新安全相关的内容 upgrade_type = security // 下载更新 download_updates = yes // 安装更新 apply_updates = yes
最后启动dnf-automatic即可:
systemctl enable --now dnf-automatic.timer