Unix
多個系統上的更新檔管理
我負責審核一個重要的 Unix 伺服器場的安全配置。到目前為止,我想出了一種評估基本配置而不是已安裝更新的方法。
- 這裡的問題是我不能信任那些機器上的包管理工具。事實上,其中一些沒有與儲存庫同步很長時間(例如,我不能在 Redhat 上執行“yum check-updates”)。其中一些伺服器甚至沒有連接到網際網路並使用公司儲存庫。
- 另一個問題是我有多個目標系統:AIX、Debian、Centos/Redhat 等……所以版本可能不同(AIX),可用的工具也會不同。
- 而且,最後但並非最不重要的一點是,我無法在目標系統上安裝任何東西。所以我需要使用腳本來檢索資訊,或者:直接處理它或保存資訊以便以後在伺服器上處理它(這可能碰巧執行與檢索資訊的發行版不同的發行版)。
我能想到的最好的想法是:
- 要麼檢索機器上已安裝軟體包的列表(dpkg -l 例如在 debian 上)並在專用伺服器上處理它(直接解析 debian 儲存庫的“Packages”文件)。儘管如此,對於 AIX 和 Redhat,問題仍然存在……
- 或使用 Nessus 的腳本來評估已安裝軟體包的漏洞,但我覺得這有點臟。
有誰知道這樣做的更好/有效的方法?
PS:我已經花時間回顧了一些類似問題的答案。不幸的是,大廚、傀儡……不符合我必須滿足的要求。
編輯:長話短說。我需要 Unix 系統上的缺失更新列表,就像 Windows 上的 MBSA 一樣。我無權在這個系統上安裝任何東西,因為它不是我的。我只有腳本語言。
謝謝。
通常有某種代理記憶體服務充當上游儲存庫和目標機器之間的中介。它有助於節省頻寬並使部署速度更快,在 RHEL/CentOS 世界中
spacewalk
,在 Debian 及其衍生版本debmirror
中,在 AIX 世界中可能是 NIM 伺服器。鑑於 AIX 沒有 ruby(但確實存在一些埠),適合您的環境的配置管理將是
cfengine
. 如果這看起來有點矯枉過正,你也可以試試ansible
,它只需要python
.python
甚至 AIX也有。版本、服務的名稱、包的名稱等也很常見,甚至可以預料到…因平台而異。您需要處理分離數據和程式碼。如果一個成熟的配置管理系統不能滿足你的要求,我嚴重懷疑一堆自製的腳本會不會。
第三個要求:“我不能在目標系統上安裝任何東西……”根本不清楚,並且似乎與您使用私有儲存庫的事實相衝突。
最後但並非最不重要的一點是,管理軟體包只是您為保護和審核系統而需要執行的任務的 1%。