云网牛站
所在位置:首页 > Linux云服务器 > 在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

2019-01-01 22:53:56作者:雷增线稿源:云网牛站

本文介绍如何在Ubuntu 18.04服务器上设置自动安全更新,即无人值守升级。

 

前言

使用复杂应用程序的公司可能需要在安装更新之前进行大量测试,但如果有一个供个人使用的简单Linux服务器(Ubuntu-18.04.1-live-server-amd64.iso安装全过程),则可以启用自动安全更新以尽快修补漏洞。

 

在Ubuntu 18.04服务器上配置自动安全更新的方法(无人值守升级)

安装Ubuntu 18.04服务器时会自动安装软件包无人值守升级,你可以使用以下命令安装它。

sudo apt update

sudo apt install unattended-upgrades

在Ubuntu 16.04系统上,需要安装update-notifier-common软件包才能设置自动重启:

sudo apt install update-notifier-common

然后编辑50unattended-upgrades文件:

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

在此文件中,可以配置自动更新的包。默认情况下,仅自动安装安全更新,如以下所示:

Unattended-Upgrade::Allowed-Origins {

  "${distro_id}:${distro_codename}";

  "${distro_id}:${distro_codename}-security";

  // Extended Security Maintenance; doesn't necessarily exist for

  // every release and this system may not have it installed, but if

  // available, the policy for updates is such that unattended-upgrades

  // should also install from here by default.

  "${distro_id}ESM:${distro_codename}";

// "${distro_id}:${distro_codename}-updates";

// "${distro_id}:${distro_codename}-proposed";

// "${distro_id}:${distro_codename}-backports";

};

在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

1、第一个来源${distro_id}:${distro_codename}是必需的,因为安全更新可能会从非安全源中获取新的依赖项,此来源不提供软件更新。

2、第三个来源${distro_id}ESM:${distro_codename}用于扩展安全维护,即对于那些运行Ubuntu版本达到结束支持期的人,你可以保持原样。

 

电子邮件通知

如果你希望在每次安全更新后收到电子邮件通知,请找到以下行并取消注释:

//Unattended-Upgrade::Mail "root";

然后在下面指定你的电子邮件地址:

Unattended-Upgrade::Mail "you@example.com";

如果希望仅接收有关错误的电子邮件通知,请取消注释以下行:

//Unattended-Upgrade::MailOnlyOnError "true";

 

自动删除未使用的依赖项

你可能需要在每次更新后执行sudo apt autoremove,因此取消注释以下行并将false更改为true:

//Unattended-Upgrade::Remove-Unused-Dependencies "false";

把它改成下面这个:

Unattended-Upgrade::Remove-Unused-Dependencies "true";

 

自动重启

安装Linux内核的安全更新时,需要重新启动Ubuntu 18.04服务器,如果服务器仅由你或少数人使用,则启用自动重启可能很方便,找到以下行。

//Unattended-Upgrade::Automatic-Reboot "false";

取消注释并将false更改为true以启用自动重新启动:

Unattended-Upgrade::Automatic-Reboot "true";

还可以指定重新启动的时间,默认情况下,在安装Linux内核更新后立即重新启动。我将其设置为在凌晨4点重启,确保为服务器设置正确的时区:

Unattended-Upgrade::Automatic-Reboot-Time "04:00";

如果许多用户正在使用该服务器或需要较长的正常运行时间,则不应启用自动重新启动。相反,你可以使用规范的实时补丁来修补内核而无需重新启动。

 

启用自动安全更新

现在已配置自动安全更新,我们需要通过创建20auto-upgrades文件来启用它:

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

将以下两行复制并粘贴到文件中:

APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Unattended-Upgrade "1";

在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

1、第一行让我们每天自动执行apt-get update,如果设置为2,那么每隔一天。(0=禁止)

2、第二行使得易于自动安装安全更新。(1=启用,0=禁用)

更改后保存并关闭文件。

 

设置SMTP Relay

为了在每次安全更新后接收电子邮件通知,服务器需要能够发送电子邮件,如果这是你的电子邮件服务器,那么剩下要做的就是安装bsd-mailx软件包。

sudo apt install bsd-mailx

如果这不是电子邮件服务器,则需要设置SMTP Relay,我们可以安装Postfix SMTP服务器,然后通过Gmail或其他电子邮件服务提供商转发电子邮件,可以先参考在Ubuntu 18.04系统上安装和配置Postfix作为SMTP服务器一文。

在Ubuntu 18.04服务器上安装Postfix的命令:

sudo apt install postfix

当看到以下消息时,按Tab键并按Enter键:

在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

然后选择第二个选项Internet Site:

在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

接下来,设置系统邮件名称,你可以使用服务器的完整主机名:

在Ubuntu 18.04服务器上设置自动安全更新(无人值守升级)

安装Postfix后,打开配置文件:

sudo nano /etc/postfix/main.cf

找到以下行:

relayhost =

默认情况下,未设置其值,我们对其进行了更改,以便通过Gmail服务器转发电子邮件:

relayhost = smtp.gmail.com:587

然后将以下代码添加到此文件的末尾:

# outbound relay configurations

smtp_sasl_auth_enable = yes

smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd

smtp_sasl_security_options = noanonymous

smtp_tls_security_level = may

header_size_limit = 4096000

请注意,建议不要将你的Gmail凭据直接放入/etc/postfix/main.cf文件中,因为服务器上的每个用户都可以使用postconf -n命令将Postfix配置转储到屏幕上。

默认情况下,Postfix配置为接受传入邮件,你可以将Postfix配置为仅发送电子邮件,但不接受任何传入电子邮件,在/etc/postfix/main.cf文件中找到以下行:

inet_interfaces = all

将其更改为以下,以便Postfix仅侦听localhost:

inet_interfaces = loopback-only

保存并关闭文件,然后创建/etc/postfix/sasl_passwd文件:

sudo nano /etc/postfix/sasl_passwd

在文件中输入以下行(请注意,如果你为Gmail帐户启用了两步验证,则需要使用应用密码而不是普通密码):

smtp.gmail.com:587  you@gmail.com YourGmailPassword

保存并关闭文件,然后使用postmap创建相应的哈希db文件:

sudo postmap /etc/postfix/sasl_passwd

现在你应该有一个文件/etc/postfix/sasl_passwd.db,重新启动Postfix以使更改生效:

sudo systemctl restart postfix

默认情况下,服务器上的任何用户都可以读取sasl_passwd和sasl_passwd.db文件,将权限更改为600,以便只有root可以读取和写入这两个文件:

sudo chmod 0600 /etc/postfix/sasl_passwd /etc/postfix/sasl_passwd.db

电子邮件通知使用mailx命令发送,该命令由bsd-mailx软件包提供:

sudo apt install bsd-mailx

现在,可以运行以下命令来测试SMTP配置了:

echo "this is a test email." | mailx -r from-address -s hello to-address

如果SMTP配置正确,你将收到来自Gmail帐户的电子邮件。

 

电邮报告

通过无人值守升级发送了3封可能的电子邮件:

1、Unattended upgrade returned: True-这意味着包已成功安装。

2、Unattended upgrade returned: False-这意味着安装更新时会发生一些错误,通常需要人为干预,如果你收到此电子邮件,则需要手动运行sudo apt upgrade。

3、Unattended upgrade returned: None-有可用的更新,但系统拒绝安装它们。

 

日志

可以在/var/log/unattended-upgrades/目录中找到日志。

 

检查重启

checkrestart命令可以帮助你找出升级后需要重新启动的进程,它可以从debian-goodies包中获得:

sudo apt install debian-goodies

sudo checkrestart

 

结语

按照本文介绍的方法做就可以实现在Ubuntu 18.04服务器上设置无人值守的升级。

 

相关主题

在Linux系统上自动安装或自动更新安全补丁

精选文章
热门文章