Securing Debian Manual@2015 (文档版本 3.17)
Securing Debian 手冊的主要論點
這份《Securing Debian Manual》詳述了 Debian 專案和 Debian 作業系統中的安全性實務。手冊從強化預設 Debian GNU/Linux 安裝開始,涵蓋了使用 Debian GNU/Linux 設定安全網路環境的常見任務,提供了有關可用安全工具的額外資訊,並闡述了 Debian 安全與稽核團隊如何執行安全性措施。文件核心強調主動規劃、最小化攻擊面、持續強化系統及服務、利用官方安全基礎設施並準備應對潛在的安全事件。以下是手冊中闡述的主要論點:
1. 主動規劃與準備是系統安全的基石
手冊開宗明義指出,任何系統的安全性需求都獨一無二,取決於其用途和面臨的威脅環境。因此,在開始安裝和設定之前,必須明確系統的用途並評估潛在風險。這種主動的規劃包括:
* 定義系統用途: 了解系統將扮演的角色(例如:個人工作站、內部伺服器、對外服務器等),這決定了哪些服務是必需的,哪些是多餘的。
* 風險評估與取捨: 安全性和易用性往往需要權衡。高安全性通常意味著更嚴格的限制和更複雜的管理。需要根據系統的敏感性來決定「偏執」的程度。
* 物理安全考量: 雖然手冊主要關注軟體安全,但也提醒物理安全同樣重要。在安裝作業系統之前,設定 BIOS 密碼,並在安裝後調整啟動順序,防止未經授權的物理存取是基礎步驟。
* 了解一般安全問題: 建議讀者先行查閱通用的 UNIX 和 Linux 安全文件,建立基礎的安全知識,以便做出更明智的決策。手冊中提供了許多有價值的參考資源。
2. 最小化系統的攻擊面是降低風險的有效手段
系統上執行的服務和安裝的軟體越多,暴露於潛在漏洞的風險就越高。因此,在 Debian 系統的安裝和設定過程中,應努力將不必要的組件降到最低:
* 選擇智能的分區方案: 將 /home、/tmp、/var 等用戶或系統進程可能寫入的目錄放在獨立分區,並考慮為 /tmp 設定 noexec, nosuid, nodev 掛載選項,以減少因磁碟空間耗盡導致服務中斷或本地攻擊的風險。
* 僅安裝必需的軟體: 在安裝時選擇最精簡的「基本系統」,避免安裝不必要的套件或任務。特別是對於伺服器,應移除開發工具(如編譯器、解釋器),儘管這在 Debian 中移除 Perl 等核心組件可能較困難。
* 停用不必要的服務: 許多套件安裝後預設會啟動其相關服務。手冊詳細說明了如何使用 update-rc.d 或 sysv-rc-conf 等工具停用開機時不必要的服務,以及如何管理或移除 inetd 中的服務。強調「服務越少,暴露的風險越低」。
* 離線安裝與更新: 如果可能,應避免在安裝過程中將系統直接連接到不受信任的網路(如網際網路)。先安裝基本系統,然後連接到一個受控環境(例如:內部網路鏡像),執行安全更新後再暴露於外部網路。
3. 安裝後需進行全面系統強化以應對多種威脅
基本安裝和最小化攻擊面是起點,系統投入運營前還需進行一系列的強化配置:
* 持續的安全更新: 這是最關鍵的步驟。務必訂閱 debian-security-announce 郵件列表,並在 /etc/apt/sources.list 中添加安全更新來源。應定期(理想情況下是每天)執行 apt-get update && apt-get upgrade 來應用最新的安全補丁。手冊特別提到需要注意核心和函式庫更新後可能需要重啟相關服務。
* 加強使用者權限管理: 設定強壯的 root 密碼,並考慮禁用 SSH 直接 root 登入。使用 PAM(Pluggable Authentication Modules)來實現細粒度的認證控制,例如強制使用複雜密碼(結合 pam_cracklib)、限制使用者資源使用 (pam_limits)、控制 su 使用權限 (pam_wheel),甚至限制使用者登入時間或來源。配置 /etc/login.defs 和 /etc/security/access.conf 來定義使用者行為和存取控制策略。
* 文件系統與權限: 確保敏感文件(如日誌、配置文件)具有嚴格的權限。了解並利用 chattr/lsattr 工具在 ext2/3 文件系統上設定不可修改或僅追加屬性,以防止重要文件被篡改(結合內核能力 lcap 可以提高防護等級)。定期檢查 setuid/setgid 文件。
* 網路層安全: 配置內核網路參數(透過 /proc/sys/net 或 /etc/sysctl.conf)以抵禦某些網路攻擊(如 SYN Flood、ICMP 重定向)。設置防火牆規則(使用 iptables 等)來控制進出系統的流量,實現預設拒絕(default deny)策略是推薦做法。可以利用 Debian 提供的防火牆配置工具簡化此過程。
* 日誌記錄與監控: 合理配置 syslogd 將日誌發送到安全位置(例如:遠端日誌主機),並確保日誌權限嚴格。使用 logcheck 或其他日誌分析工具自動檢測異常活動並發送警報。系統日誌是發現入侵企圖和成功入侵的關鍵證據。
4. 強化個別服務的安全性配置
對於任何對外提供或在系統上運行的服務,都需要進行特定的安全加固:
* 安全替代不安全服務: 優先使用 SSH 替代 Telnet 和 FTP 進行遠端登入和文件傳輸。如果必須使用 FTP,應使用支援 SSL/TLS 的版本或將使用者 chroot 到其主目錄。
* 服務最小權限運行: 大多數服務不應以 root 權限運行。應為服務創建專用用戶和組,並在啟動時切換到該用戶(使用 start-stop-daemon --chuid)。這限制了服務漏洞被利用時對系統造成的損害。
* 服務 chroot 環境: 將服務(如 BIND, Apache, SSH)限制在 chroot 環境中運行,即使攻擊者攻破服務,也難以逃脫沙箱影響整個系統。手冊提供了設定 BIND 和 Apache chroot 環境的詳細步驟,並討論了 SSH chroot 的不同方法和挑戰。
* 服務特定配置: 對於如 SSH、Squid、BIND、Apache、Printer Daemon 等服務,手冊都提供了針對性的安全建議,包括限制監聽位址、禁用不必要功能、調整存取控制列表、移除服務版本資訊等。
5. 建立並維護系統安全態勢,持續監控與應對
安全性不是一次性任務,而是一個持續的過程。系統管理員需要不斷監控系統狀態,偵測異常並為應對安全事件做好準備:
* 定期完整性檢查: 使用 debsums 或 aide、tripwire 等工具定期檢查系統文件的完整性,與安裝時的基線進行比較,及早發現潛在的篡改或 rootkit。
* 部署入侵偵測系統(IDS): 可以使用基於網路的 IDS (NIDS),如 snort,或基於主機的 IDS (HIDS),如 logcheck、tiger,來偵測可疑活動模式或已知攻擊簽名。 IDS 的價值在於其警報能夠被有效處理。
* 避免 Rootkit: 了解 Rootkit 的工作原理(特別是 LKM Rootkit),並採取預防措施,例如移除內核模組載入能力(如果非必要)、使用 lcap 限制內核能力。利用 chkrootkit 等工具進行掃描,但要認識到這些工具並非萬無一失,特別是在系統已受損的情況下。
* 事件應急響應: 提前規劃安全事件發生時的應對步驟,包括隔離系統、備份受損數據(從安全媒體啟動)、聯繫 CERT 或其他安全團隊尋求協助。手冊強調在受損系統上執行的分析工具可能已被篡改,應使用獨立的、受信任的工具和環境進行取證分析。了解如何進行基本的惡意軟體分析。
6. 利用 Debian 專屬安全基礎設施
Debian 專案擁有一套成熟的安全管理機制,系統管理員應充分利用這些資源:
* Debian 安全團隊: 了解安全團隊的角色,他們負責追蹤漏洞並為穩定版釋出安全更新。應將未公開的安全問題回報給 team@security.debian.org。
* Debian 安全公告(DSAs): 這是獲取安全更新信息的主要來源。DSAs 會在 debian-security-announce 列表發布,並包含漏洞詳情和修復版本。DSAs 與 CVE 兼容,方便交叉引用漏洞資訊。
* Security Tracker: 利用線上的 Debian Security Tracker 追蹤已知但尚未修復的漏洞狀態,包括各版本受影響的套件。debsecan 工具可以利用此資料庫報告系統上的漏洞。
* Secure Apt: 使用 apt 版本 0.6 或更高版本提供的 apt-secure 功能,透過 Release 文件簽名和套件校驗碼驗證來確保下載的套件來自受信任的 Debian 軟體源,防止中間人攻擊或鏡像被篡改。了解如何管理 apt 的信任金鑰。
總之,《Securing Debian Manual》強調,一個安全的 Debian 系統是透過仔細的規劃、嚴格的安裝配置、持續的系統強化、對服務的精細管理、以及一套健全的監控和應急機制來實現的。它鼓勵系統管理員不僅使用提供的工具,更要理解背後的原理,並積極參與 Debian 社群,以應對不斷演變的安全威脅。
comments
comments for this post are closed