正確的修補程式管理方式

王林
發布: 2024-03-21 11:56:15
轉載
718 人瀏覽過

正確的修補程式管理方式

#我之所以這麼快就決定再次繼續「系統管理 101」文章系列,是因為我意識到在補丁管理方面一些 Linux 系統管理員和 Windows 系統管理員沒有差別。實話說,在某些方面甚至做的更差(特別是以持續運行時間為自豪)。所以,這篇文章會涉及 Linux 下補丁管理的基礎概念,包括良好的補丁管理該是怎樣的,你可能會用到的一些相關工具,以及整個補丁安裝過程是如何進行的。

什麼是補丁管理?

我所說的修補程式管理,是指你部署用於升級伺服器上軟體的系統,不僅僅是把軟體更新到最新最好的前沿版本。即使是像 Debian 這樣為了「穩定性」持續保持某一特定版本軟體的保守派發行版,也會時常發布升級補丁用於修補錯誤和安全漏洞。

當然,如果你的組織決定自己維護特定軟體的版本,要么是因為開發者有最新最好版本的需求,需要派生軟體原始碼並做出修改,要么是因為你喜歡給自己額外的工作量,這時你就會遇到問題。理想情況下,你應該已經配置好你的系統,讓它在自動構建和打包定製版本軟體時使用其它軟體所使用的同一套持續集成系統。然而,許多系統管理員仍舊在自己的本機上依照維基上的文件(但願是最新的文件)使用過時的方法打包軟體。不論使用哪種方法,你都需要明確你所使用的版本有沒有安全缺陷,如果有,那必須確保新補丁安裝到你定製版本的軟體上了。

良好的補丁管理是怎樣的

修補程式管理首先要做的是檢查軟體的升級。首先,對於核心軟體,你應該訂閱對應 Linux 發行版的安全郵件列表,這樣才能第一時間得知軟體的安全升級情況。如果你使用的軟體有些不是來自發行版的倉庫,那麼你也必須設法追蹤它們的安全性更新。一旦接收到新的安全通知,你必須查閱通知細節,以此明確安全漏洞的嚴重程度,確定你的系統是否受影響,以及安全修補程式的緊急性。

有些組織仍在使用手動方式管理補丁。在這種方式下,當出現一個安全補丁,系統管理員就要憑藉記憶,登入各個伺服器上進行檢查。在確定了哪些伺服器需要升級後,再使用伺服器內建的套件管理工具從發行版倉庫升級這些軟體。最後以相同的方式升級剩餘的所有伺服器。

手動管理補丁的方式存在著許多問題。首先,這麼做會使補丁安裝成為一個苦力活,安裝補丁越多就需要越多人力成本,系統管理員就越可能推遲甚至完全忽略它。其次,手動管理方式依賴系統管理員憑藉著記憶去追蹤他或她所負責的伺服器的升級。這非常容易導致有些伺服器被遺漏而未能及時升級。

補丁管理越快速簡便,你就越可能把它做好。你應該建立一個系統,用來快速查詢哪些伺服器運行著特定的軟體,以及這些軟體的版本號,而且它最好還能夠推送各種升級補丁。就我個人而言,我傾向於使用MCollective 這樣的編排工具來完成這個任務,但是紅帽提供的Satellite 以及Canonical 提供的Landscape 也可以讓你在統一的管理界面上查看服務器的軟體版本信息,並且安裝補丁。

補丁安裝也應該具有容錯能力。你應該具備在不下線的情況下為服務安裝補丁的能力。這同樣適用於需要重新啟動系統的核心補丁。我採用的方法是把我的伺服器分割成不同的高可用群組,lb1、app1、rabbitmq1 和 db1 在一個群組,而lb2、app2、rabbitmq2 和 db2 在另一個群組。這樣,我就能一次升級一個組,而無須下線服務。

所以,多快才能算快呢?對於少數沒有附帶服務的軟體,你的系統最快應該能夠在幾分鐘到一小時內安裝好修補程式(例如 bash 的 ShellShock 漏洞)。對於像 OpenSSL 這樣需要重新啟動服務的軟體,以容錯的方式安裝修補程式並重新啟動服務的過程可能會花費稍多的時間,但這就是編排工具派上用場的時候。我在最近的關於 MCollective 的文章中(請參閱 2016 年 12 月和 2017 年 1 月的工單)給了幾個使用 MCollective 實作修補程式管理的例子。你最好能夠部署一個系統,以具備容錯性的自動化方式簡化補丁安裝和服務重新啟動的過程。

如果補丁要求重新啟動系統,像核心補丁,那它會花費更多的時間。再次強調,自動化和編排工具能讓這個過程比你想像的還要快。我能夠在一到兩個小時內在生產環境中以容錯方式升級並重啟伺服器,如果重啟之間無須等待叢集同步備份,這個過程還能更快。

不幸的是,許多系統管理員仍堅信過時的觀點,把持續運行時間(uptime)作為一種驕傲的象徵——鑑於緊急內核補丁大約每年一次。對我來說,這只能說明你沒有認真看待系統的安全性!

很多組織仍然使用無法暫時下線的單點故障的伺服器,也因為這個原因,它無法升級或重新啟動。如果你想讓系統更安全,你需要去除過時的包袱,搭建一個至少能在深夜維護時段重啟的系統。

基本上,快速且方便的修補程式管理也是一個成熟專業的系統管理團隊所具備的標誌。升級軟體是所有系統管理員的必要工作之一,花時間讓這個過程簡潔快速,帶來的好處遠不止於系統安全性。例如,它能幫助我們找到架構設計中的單點故障。另外,它還幫助鑑定出環境中過時的系統,為我們替換這些部分提供了動機。最後,當修補程式管理做得夠好,它會節省系統管理員的時間,讓他們把精力放在真正需要專業知識的地方。


Kyle Rankin 是資深安全與基礎架構架構師,著作包括: Linux Hardening in Hostile Networks,DevOps Troubleshooting 以及 The Official Ubuntu Server Book。同時,他也是 Linux Journal 的專欄作家。


以上是正確的修補程式管理方式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:linuxprobe.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!