#我之所以這麼快就決定再次繼續「系統管理 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中文網其他相關文章!

互聯網運行不依賴單一操作系統,但Linux在其中扮演重要角色。 Linux廣泛應用於服務器和網絡設備,因其穩定性、安全性和可擴展性受歡迎。

Linux操作系統的核心是其命令行界面,通過命令行可以執行各種操作。 1.文件和目錄操作使用ls、cd、mkdir、rm等命令管理文件和目錄。 2.用戶和權限管理通過useradd、passwd、chmod等命令確保系統安全和資源分配。 3.進程管理使用ps、kill等命令監控和控制系統進程。 4.網絡操作包括ping、ifconfig、ssh等命令配置和管理網絡連接。 5.系統監控和維護通過top、df、du等命令了解系統運行狀態和資源使用情況。

介紹 Linux是一個強大的操作系統,由於其靈活性和效率,開發人員,系統管理員和電源用戶都喜歡。但是,經常使用長而復雜的命令可能是乏味的

Linux適用於服務器、開發環境和嵌入式系統。 1.作為服務器操作系統,Linux穩定高效,常用於部署高並發應用。 2.作為開發環境,Linux提供高效的命令行工具和包管理系統,提升開發效率。 3.在嵌入式系統中,Linux輕量且可定制,適合資源有限的環境。

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境