如何在 Debian/Ubuntu 上設定自動安全更新(無人值守更新)

2019-08-21 00:49:00

對於 Linux 管理員來說重要的任務之一是讓系統保持最新狀態,這可以使得你的系統更加穩健並且可以避免不想要的存取與攻擊。

在 Linux 上安裝軟體包是小菜一碟,用相似的方法我們也可以更新安全修補程式。

這是一個向你展示如何設定系統接收自動安全更新的簡單教學。當你執行自動安全包更新而不經審查會給你帶來一定風險,但是也有一些好處。

如果你不想錯過安全修補程式,且想要與最新的安全修補程式保持同步,那你應該借助無人值守更新機制設定自動安全更新。

如果你不想要自動安全更新的話,你可以在 Debian/Ubuntu 系統上手動安裝安全更新

我們有許多可以自動化更新的辦法,然而我們將先採用官方的方法之後我們會介紹其它方法。

如何在 Debian/Ubuntu 上安裝無人值守更新包

無人值守更新包預設應該已經裝在你的系統上。但萬一它沒被安裝,就用下面的命令來安裝。

使用 APT-GET 命令APT 命令來安裝 unattended-upgrades 軟體包。

$ sudo apt-get install unattended-upgrades

下方兩個檔案可以使你自定義該機制:

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

在 50unattended-upgrades 檔案中做出必要修改

預設情況下只有安全更新需要的最必要的選項被啟用。但並不限於此,你可以設定其中的許多選項以使得這個機制更加有用。

我修改了一下檔案並僅加上被啟用的行以方便闡述:

# vi /etc/apt/apt.conf.d/50unattended-upgradesUnattended-Upgrade::Allowed-Origins {        "${distro_id}:${distro_codename}";        "${distro_id}:${distro_codename}-security";        "${distro_id}ESM:${distro_codename}";        };Unattended-Upgrade::DevRelease "false";

有三個源被啟用,細節如下:

  • ${distro_id}:${distro_codename}:這是必須的,因為安全更新可能會從非安全來源拉取依賴。
  • ${distro_id}:${distro_codename}-security:這用來從來源得到安全更新。
  • ${distro_id}ESM:${distro_codename}:這是用來從 ESM(擴充套件安全維護)獲得安全更新。

啟用郵件通知: 如果你想要在每次安全更新後收到郵件通知,那麼就修改以下行段(取消其註釋並加上你的 email 賬號)。

從:

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

修改為:

Unattended-Upgrade::Mail "[email protected]";

自動移除不用的依賴: 你可能需要在每次更新後執行 sudo apt autoremove 命令來從系統中移除不用的依賴。

我們可以通過修改以下行來自動化這項任務(取消註釋並將 false 改成 true)。

從:

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

修改為:

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

啟用自動重新啟動: 你可能需要在安全更新安裝至核心後重新啟動你的系統。你可以在以下行做出修改:

從:

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

到:取消註釋並將 false 改成 true以啟用自動重新啟動。

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

啟用特定時段的自動重新啟動: 如果自動重新啟動已啟用,且你想要在特定時段進行重新啟動,那麼做出以下修改。

從:

//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

到:取消註釋並將時間改成你需要的時間。我將重新啟動設定在早上 5 點。

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

如何啟用自動化安全更新?

現在我們已經設定好了必須的選項,一旦設定好,開啟以下檔案並確認是否這兩個值都已設定好?值不應為0。(1=啟用,0=禁止)。

# vi /etc/apt/apt.conf.d/20auto-upgradesAPT::Periodic::Update-Package-Lists "1";APT::Periodic::Unattended-Upgrade "1";

詳情:

  • 第一行使 apt 每天自動執行 apt-get update
  • 第一行使 apt 每天自動安裝安全更新。