Linux 開源免費特性加速普及,國家級專案更視其為資訊安全基石。面對 UNIX/Windows NT 資深管理員轉型 Linux,本文提供四大維度進階安全硬化方案。
一、文件系統層面:分區隔離 + ext2/3/4 擴展屬性
1. 關鍵分區獨立掛載與只讀化
| 分區 | 掛載選項 | 安全效果 |
/usr | ro,nodev | 程式碼靜態不可變,任何寫入觸發警報 |
/lib | ro,nodev | 核心庫保護 |
/boot | ro,nodev | 啟動文件防竄改 |
/sbin | ro,nodev | 系統管理二進制保護 |
/var | rw,noexec,nosuid,nodev | 日誌/數據可寫,**禁止執行** |
2. ext2/3/4 擴展屬性:chattr + lsattr
i (immutable):chattr +i file —— 連 root 也無法修改/刪除/改名/建立連結/寫入
a (append only):chattr +a file —— 僅允許追加,不可刪除/修改既有內容
應用策略:
- 關鍵系統文件 (
/bin, /sbin, /lib, /boot) → +i
- 活躍日誌 →
+a;輪轉後的舊日誌 → +i (在 logrotate 腳本中自動切換)
- 入侵者植入後門需重裝系統才能修改
+i 文件,必然觸發警報
二、備份與完整性驗證
- 安裝完成即製作**全系統備份** (基線)
- 最佳媒介:CD-ROM/DVD-ROM —— 唯讀、廉價、壽命長
- 定期對比即時系統與基線光盤 (可整合至啟動流程:能從光盤啟動 = 未被破壞)
- 唯讀分區可定期從光盤映像重掛載;
/boot、/lib 等不可唯讀分區亦可對比光盤校驗
- 次要備份:磁帶、壓縮唯讀目錄、異地同步
三、內核級緩衝區溢出防護補丁
1. Solar Designer Non-executable Stack Patch (2.0/2.2 內核)
- 將堆疊標記為不可執行,徹底阻斷傳統緩衝區溢出注入 Shellcode
- Linus Torvalds 曾公開肯定其重要性
- 副作用:少數依賴可執行堆疊的程式/庫 (如舊版 JVM、trampoline 代碼) 會失效,需逐個排查
2. StackGuard (GCC 擴展)
- 編譯期插入「金絲雀」檢查,函數返回前驗證堆疊完整性
- 性能損耗 10-20%,但能防禦整類堆疊溢出
- 已有整合 StackGuard 的 Linux 發行版 (如 Immunix),部署更容易
四、存取控制機制擴展
- POSIX.1e ACL (2.3 內核開發中):突破傳統 User/Group/Other 三元模型,支援任意用戶/群組細粒度權限
- Capabilities (2.2/2.3):將 root 權限拆解為細粒度能力 (CAP_NET_BIND_SERVICE 等),非 root 進程亦可獲特定特權 (如綁定低埠口)
- RSBAC (Rule Set Based Access Control):模組化存取控制框架,支援多種模型 (MAC、RBAC、Type Enforcement),目標達 B1 級安全
落地建議
- 分區規劃 + 掛載選項 +
chattr +i/a 形成「三層文件防線」
- 光盤基線備份 + 定期自動校驗
- 評估 Non-exec Stack / StackGuard 相容性後部署
- 啟用 ACL + Capabilities 替代過度使用 SUID/root
- 持續追蹤 RSBAC/SELinux/AppArmor 成熟度,規劃遷移
安全非一次性配置,而是持續演進的體系工程。