Centos

自動檢查 CentOS 或 Scientific Linux 上的安全更新?

  • October 10, 2020

我們的機器執行基於 RedHat 的發行版,例如 CentOS 或 Scientific Linux。如果已安裝的軟體包存在任何已知漏洞,我們希望系統自動通知我們。FreeBSD 使用ports-mgmt/portaudit埠來做這件事。

RedHat 提供yum-plugin-security ,它可以通過它們的 Bugzilla ID、 CVE ID 或諮詢 ID檢查漏洞。此外,Fedora 最近開始支持yum-plugin-security。我相信這是在 Fedora 16 中添加的。

截至 2011 年底, Scientific Linux 6 不支持 yum-plugin-security 。它確實附帶/etc/cron.daily/yum-autoupdate,每天更新 RPM。但是,我認為這不僅僅處理安全更新。

CentOS 不支持yum-plugin-security.

我監視 CentOS 和 Scientific Linux 郵件列表的更新,但這很乏味,我想要一些可以自動化的東西。

對於我們這些維護 CentOS 和 SL 系統的人來說,是否有任何工具可以:

  1. 如果我目前的 RPM 存在已知漏洞,會自動(通過 cron 程序化)通知我們。
  2. 或者,自動安裝解決安全漏洞所需的最低升級,這可能yum update-minimal --security在命令行上?

我考慮過使用yum-plugin-changelog列印出每個包的更改日誌,然後解析某些字元串的輸出。是否有任何工具可以做到這一點?

Scientific Linux 現在可以從命令行列出安全更新。此外,我可以更新系統以僅應用安全更新,這比預設設置更好(“只需更新所有內容!包括您不關心的錯誤修復並引入回歸。”

我已經在 Scientific Linux 6.1 和 6.4 上對此進行了測試。我不確定這是什麼時候正式宣布的,但我會在發現時發布更多資訊。

這裡有些例子。

列出安全更新的摘要:

[root@node1 ~]# yum updateinfo
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
Updates Information Summary: available
   4 Security notice(s)
       1 important Security notice(s)
       3 moderate Security notice(s)
   2 Bugfix notice(s)
updateinfo summary done

root@node1 ~]# yum list-sec
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
SLSA-2013:1459-1 moderate/Sec.  gnupg2-2.0.14-6.el6_4.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-devel-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1436-1 moderate/Sec.  kernel-firmware-2.6.32-358.23.2.el6.noarch
SLSA-2013:1436-1 moderate/Sec.  kernel-headers-2.6.32-358.23.2.el6.x86_64
SLSA-2013:1457-1 moderate/Sec.  libgcrypt-1.4.5-11.el6_4.x86_64
SLSA-2013:1270-1 important/Sec. polkit-0.96-5.el6_4.x86_64
SLBA-2013:1486-1 bugfix         selinux-policy-3.7.19-195.el6_4.13.noarch
SLBA-2013:1491-1 bugfix         selinux-policy-3.7.19-195.el6_4.18.noarch
SLBA-2013:1486-1 bugfix         selinux-policy-targeted-3.7.19-195.el6_4.13.noarch
SLBA-2013:1491-1 bugfix         selinux-policy-targeted-3.7.19-195.el6_4.18.noarch
updateinfo list done

CVE 列表:

[root@node2 ~]# yum list-sec cves
Loaded plugins: changelog, downloadonly, fastestmirror, priorities, security
Loading mirror speeds from cached hostfile
* epel: mirrors.kernel.org
* sl6x: ftp.scientificlinux.org
* sl6x-security: ftp.scientificlinux.org
7404 packages excluded due to repository priority protections
CVE-2012-6085 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
CVE-2013-4351 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
CVE-2013-4402 moderate/Sec. gnupg2-2.0.14-6.el6_4.x86_64
CVE-2013-4162 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64
CVE-2013-4299 moderate/Sec. kernel-2.6.32-358.23.2.el6.x86_64
CVE-2013-4162 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch
CVE-2013-4299 moderate/Sec. kernel-firmware-2.6.32-358.23.2.el6.noarch
CVE-2013-4242 moderate/Sec. libgcrypt-1.4.5-11.el6_4.x86_64
updateinfo list done

然後我可以應用所需的最小更改集

[root@node1 ~]# yum update-minimal --security

或者,只需修補所有內容:

[root@node1 ~]# yum --quiet --security check-update

gnutls.x86_64                                      2.8.5-14.el6_5                                     sl-security
libtasn1.x86_64                                    2.3-6.el6_5                                        sl-security
[root@node1 ~]# yum --quiet --security update

=================================================================================================================
Package                 Arch                  Version                          Repository                  Size
=================================================================================================================
Updating:
gnutls                  x86_64                2.8.5-14.el6_5                   sl-security                345 k
libtasn1                x86_64                2.3-6.el6_5                      sl-security                237 k

Transaction Summary
=================================================================================================================
Upgrade       2 Package(s)

Is this ok [y/N]: Y
[root@node1 ~]#

如果我在 CentOS6 機器上嘗試同樣的命令,我不會得到任何結果。我知道一些“137 個可用的軟體包”包含安全修復程序,因為我昨天通過 CentOS 郵件列表收到了勘誤通知。

[root@node1 ~]# yum --security check-update 
Loaded plugins: downloadonly, fastestmirror, security
Loading mirror speeds from cached hostfile
* base: mirrors.usc.edu
* epel: mirrors.kernel.org
* extras: mirror.web-ster.com
* updates: mirrors.kernel.org
Limiting package lists to security relevant ones
No packages needed for security; 137 packages available
[root@node1 ~]#

如果您絕對想使用yum security plugin,有一種方法可以做到這一點,雖然有點複雜。但是一旦你設置好了,這一切都是自動化的。

唯一的要求是您需要至少訂閱一個 RHN。這是一個很好的投資IMO,但讓我們堅持這一點。

  1. 訂閱後,您可以使用mreporeposync來設置內部 Yum 儲存庫,它反映 CentOS 儲存庫。(或者你可以只使用 rsync)。

  2. 然後使用附加到這個郵件列表文章的腳本,定期連接到您的 RHN 訂閱,下載安全包資訊。現在你有兩個選擇。

  3. 從生成的“updateinfo.xml”文件中只提取包名。使用 puppet 或 cfengine 或 ssh-in-a-for-loop 使用該資訊“搜尋”您的伺服器以查找需要安全或其他更新的 Rpm。這更簡單,給你你想要的一切,但你不能使用yum security.

  4. 另一種選擇是使用這裡modifyrepo顯示的命令,注入. 執行此操作之前,您必須修改 perl 腳本以將 xml 中的 Rpm MD5 總和從 RHN 更改為 Centos 總和。而且您必須確定 CentOS 儲存庫是否確實包含 中提到的所有 Rpm ,因為它們有時落後於 RHN。但這沒關係,你可以忽略 CentOS 沒有趕上的更新,因為除了從 SRPM 建構它們之外,你幾乎無能為力。updateinfo.xml``repomd.xml``updateinfo.xml

使用選項 2,您可以yum security在所有客戶端上安裝外掛,它會工作。

編輯:這也適用於 Redhat RHEL 5 和 6 機器。並且比使用 Spacewalk 或 Pulp 等重量級解決方案更簡單。

引用自:https://serverfault.com/questions/369833