我們過去曾寫過兩篇關於這個主題的文章,每篇文章都是根據不同的要求發表的。如果你想在開始之前瀏覽這些文章。請通過以下連結:
這些文章與其他文章相互關聯,因此,在深入研究之前,最好先閱讀這些文章。
在本文中,我們將向你展示如何檢查已安裝的安全更新。我會介紹兩種方法,你可以選擇最適合你的。
此外,我還新增了一個小的 shell 指令碼,它為你提供已安裝的安全包計數。
執行以下命令獲取系統上已安裝的安全更新的列表。
# yum updateinfo list security installedLoaded plugins: changelog, package_upload, product-id, search-disabled-repos, : subscription-manager, verify, versionlockRHSA-2015:2315 Moderate/Sec. ModemManager-glib-1.1.0-8.git20130913.el7.x86_64RHSA-2015:2315 Moderate/Sec. NetworkManager-1:1.0.6-27.el7.x86_64RHSA-2016:2581 Low/Sec. NetworkManager-1:1.4.0-12.el7.x86_64RHSA-2017:2299 Moderate/Sec. NetworkManager-1:1.8.0-9.el7.x86_64RHSA-2015:2315 Moderate/Sec. NetworkManager-adsl-1:1.0.6-27.el7.x86_64RHSA-2016:2581 Low/Sec. NetworkManager-adsl-1:1.4.0-12.el7.x86_64RHSA-2017:2299 Moderate/Sec. NetworkManager-adsl-1:1.8.0-9.el7.x86_64RHSA-2015:2315 Moderate/Sec. NetworkManager-bluetooth-1:1.0.6-27.el7.x86_64
要計算已安裝的安全包的數量,請執行以下命令:
# yum updateinfo list security installed | wc -l1046
僅列印安裝包列表:
# yum updateinfo list security all | grep -w "i"i RHSA-2015:2315 Moderate/Sec. ModemManager-glib-1.1.0-8.git20130913.el7.x86_64i RHSA-2015:2315 Moderate/Sec. NetworkManager-1:1.0.6-27.el7.x86_64i RHSA-2016:2581 Low/Sec. NetworkManager-1:1.4.0-12.el7.x86_64i RHSA-2017:2299 Moderate/Sec. NetworkManager-1:1.8.0-9.el7.x86_64i RHSA-2015:2315 Moderate/Sec. NetworkManager-adsl-1:1.0.6-27.el7.x86_64i RHSA-2016:2581 Low/Sec. NetworkManager-adsl-1:1.4.0-12.el7.x86_64i RHSA-2017:2299 Moderate/Sec. NetworkManager-adsl-1:1.8.0-9.el7.x86_64i RHSA-2015:2315 Moderate/Sec. NetworkManager-bluetooth-1:1.0.6-27.el7.x86_64i RHSA-2016:2581 Low/Sec. NetworkManager-bluetooth-1:1.4.0-12.el7.x86_64i RHSA-2017:2299 Moderate/Sec. NetworkManager-bluetooth-1:1.8.0-9.el7.x86_64i RHSA-2015:2315 Moderate/Sec. NetworkManager-config-server-1:1.0.6-27.el7.x86_64i RHSA-2016:2581 Low/Sec. NetworkManager-config-server-1:1.4.0-12.el7.x86_64i RHSA-2017:2299 Moderate/Sec. NetworkManager-config-server-1:1.8.0-9.el7.noarch
要計算已安裝的安全包的數量,請執行以下命令:
# yum updateinfo list security all | grep -w "i" | wc -l1043
或者,你可以檢查指定包修復的漏洞列表。
在此例中,我們將檢查 “openssh” 包中已修復的漏洞列表:
# rpm -q --changelog openssh | grep -i CVE- Fix for CVE-2017-15906 (#1517226)- CVE-2015-8325: privilege escalation via user's PAM environment and UseLogin=yes (#1329191)- CVE-2016-1908: possible fallback from untrusted to trusted X11 forwarding (#1298741)- CVE-2016-3115: missing sanitisation of input for X11 forwarding (#1317819)- prevents CVE-2016-0777 and CVE-2016-0778- Security fixes released with openssh-6.9 (CVE-2015-5352) (#1247864)- only query each keyboard-interactive device once (CVE-2015-5600) (#1245971)- add new option GSSAPIEnablek5users and disable using ~/.k5users by default CVE-2014-9278- prevent a server from skipping SSHFP lookup - CVE-2014-2653 (#1081338)- change default value of MaxStartups - CVE-2010-5107 (#908707)- CVE-2010-4755- merged cve-2007_3102 to audit patch- fixed audit log injection problem (CVE-2007-3102)- CVE-2006-5794 - properly detect failed key verify in monitor (#214641)- CVE-2006-4924 - prevent DoS on deattack detector (#207957)- CVE-2006-5051 - don't call cleanups from signal handler (#208459)- use fork+exec instead of system in scp - CVE-2006-0225 (#168167)
同樣,你可以通過執行以下命令來檢查相應的包中是否修復了指定的漏洞:
# rpm -q --changelog openssh | grep -i CVE-2016-3115- CVE-2016-3115: missing sanitisation of input for X11 forwarding (#1317819)
我新增了一個小的 shell 指令碼,它可以幫助你計算已安裝的安全包列表。
# vi /opt/scripts/security-check.sh#!/bin/bashecho "+-------------------------+"echo "|Security Advisories Count|"echo "+-------------------------+"for i in Important Moderate Lowdo sec=$(yum updateinfo list security installed | grep $i | wc -l) echo "$i: $sec"done | column -techo "+-------------------------+"
給 security-check.sh
檔案執行許可權。
$ chmod +x security-check.sh
最後執行指令碼統計。
# sh /opt/scripts/security-check.sh+-------------------------+|Security Advisories Count|+-------------------------+Important: 480Moderate: 410Low: 111+-------------------------+