| 方案 | 層級 | 特點 | 典型場景 |
| dm-crypt/LUKS | 區塊裝置 | 內核原生、效能最佳、支援多金鑰槽、TRIM、硬體加速 (AES-NI) | 全盤加密、資料盤加密、Swap 加密 |
| eCryptfs | 檔案級 (堆疊) | 每檔案獨立金鑰、檔名加密、無需獨立分區 | 家目錄加密、多租戶隔離 |
| fscrypt | 檔案系統原生 (ext4/f2fs/ubifs) | 目錄級策略、內核 4.2+、Android/ChromeOS 採用 | 容器層加密、特定目錄加密 |
| CFS/TCFS/CRYPTFS | 歷史/學術 | 早期堆疊式,現已少用 | 參考研究 |
LUKS2 部署最佳實踐
# 1. 格式化加密分區
cryptsetup luksFormat --type luks2 --cipher aes-xts-plain64 --key-size 512 --hash sha256 --iter-time 5000 /dev/nvme0n1p3
# 2. 開啟映射
cryptsetup open /dev/nvme0n1p3 data_crypt
# 3. 建立檔案系統
mkfs.ext4 /dev/mapper/data_crypt
# 4. 開機自動掛載 (需 /etc/crypttab + /etc/fstab)
# /etc/crypttab: data_crypt UUID=xxx none luks,discard
# /etc/fstab: /dev/mapper/data_crypt /data ext4 defaults 0 2
關鍵:備份 LUKS Header (cryptsetup luksHeaderBackup),啟用 discard (TRIM) 保護 SSD 壽命,配合 TPM2 自動解鎖實現無人值守重啟。
四、安全審計:不可竄改的證據鏈
三大日誌子系統
- 連接時間日誌:
/var/run/utmp (當前)、/var/log/wtmp (歷史)、/var/log/btmp (失敗)。二進制格式,who/w/last/lastb 讀取。
- 進程統計日誌:
/var/log/pacct (需 acct 服務),lastcomm/sa 分析命令執行耗時、資源用量。
- 錯誤/系統日誌 (syslog):
rsyslog/syslog-ng → /var/log/messages、/var/log/secure、/var/log/cron 等。內核經 printk → 環形緩衝區 → klogd → syslogd。
現代審計棧
應用/內核 → systemd-journald (結構化、索引、壓縮、驗證)
↓
rsyslog (模板化、TLS、RELP、Kafka、Elasticsearch)
↓
SIEM (Splunk/ELK/Wazuh Manager) → 關聯分析、告警、合規報表
關鍵審計對象
- 所有
su/sudo/ssh 登入(成功/失敗)、passwd 變更、useradd/usermod。
- 敏感檔案存取:
/etc/shadow//etc/sudoers//etc/ssh/sshd_config、SSL 私鑰。
- 權限提升:
setuid/setgid/capset、mount、iptables 變更。
- 網路連線:非白名單 IP/埠、反向 Shell 特徵、大量外連。
五、強制存取控制 (MAC):超越 Root 的約束
| 方案 | 策略模型 | 核心架構 | 成熟度/生態 | 預設發行版 |
| SELinux | TE (Type Enforcement) + RBAC + MLS | Flask 架構:Policy Server + AVC 快取 + LSM Hooks | 最高 (NSA/Red Hat 主導),工具鏈完整 | RHEL/Fedora/CentOS/AlmaLinux/Rocky |
| AppArmor | 路徑基礎 Profile (Learning/Enforce/Complain) | LSM Hooks + 使用者空間解析器 + 緩存 | 高 (Canonical/SUSE 主導),易學易用 | Ubuntu/Debian/SUSE/openSUSE |
| RSBAC | GFAC (MAC/RBAC/ACL 模組化) | 中央決策 + 多模組投票 | 學術/小眾,模組化靈活 | 無主流預設 |
| Smack | 標籤基礎 (簡化 BLP/Biba) | LSM Hooks + 標籤傳播 | 嵌入式/汽車 (Tizen/Yocto) | Tizen、部分 Yocto |
SELinux 核心概念速查
- 主體:進程 (如
httpd_t)、客體:檔案/埠/介面 (如 httpd_sys_content_t, http_port_t)。
- 規則:
allow httpd_t httpd_sys_content_t : file { read getattr };。
- 模式:
Enforcing (阻擋+記錄)、Permissive (僅記錄)、Disabled。
- 工具鏈:
semanage/restorecon/audit2allow/sealert/setroubleshoot。
生產環境部署鐵律
- 永不 Disable:遇阻擋用
audit2allow -w -a 分析,產生模組 ausearch -c 'httpd' --raw | audit2allow -M myhttpd,semodule -i myhttpd.pp。
- 關鍵服務建立自定義類型/布林值,最小權限原則。
- 容器環境啟用
container_selinux,Podman/Docker 自動標記。
六、防火牆:網路邊界與微隔離
| 層級 | 工具 | 特點 |
| 主機級 | nftables (內核 3.13+,取代 iptables) | 統一 IPv4/IPv6/ARP/橋接、原子規則集、效能優、語法簡潔 |
| 主機級 | firewalld | 動態區域、Runtime/Permanent 分離、D-Bus API、NetworkManager 整合 |
| 主機級 | ufw | Ubuntu 預設、簡單規則語法、適合桌面/輕量伺服器 |
| 叢集/微隔離 | Cilium/Calico (eBPF/XDP) | K8s 網路策略、L3/L4/L7 策略、服務網格整合、可視化 |
| 邊界/雲 | 硬體防火牆 / 雲安全群組 / WAF | 狀態檢測、IPS、DDoS 防護、應用層防護 |
nftables 基礎規則集範例
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
iif lo accept
ct state established,related accept
tcp dport {22,80,443} ct state new accept
icmp type echo-request limit rate 5/second accept
counter log prefix "INPUT_DROP: " drop
}
chain forward { type filter hook forward priority 0; policy drop; }
chain output { type filter hook output priority 0; policy accept; }
}
七、協同策略:纵深防禦矩陣
| 層級 | 技術 | 防禦目標 | 關鍵配置 |
| 身份認證 | PAM + 2FA + 憑證登入 | 憑證竊取、暴力破解、橫向移動 | pam_google_authenticator、SSH 憑證授權、pam_faillock |
| 存取控制 | DAC + MAC (SELinux/AppArmor) | 提權、敏感檔案竄改、容器逃逸 | Enforcing 模式、自定義類型、布林值微調 |
| 資料保護 | LUKS2 全盤/資料盤加密 + TPM2 解鎖 | 實體竊盜、離線分析、雲磁碟洩露 | AES-XTS-512、Header 備份、discard、Key rotation |
| 入侵檢測 | auditd + Wazuh/Suricata + eBPF | 零日漏洞、無檔案攻擊、持久化 | 核心審計規則、威脅情報餵養、主動回應 |
| 審計留痕 | journald + rsyslog(TLS) + SIEM | 日誌竄改、合規審計、事後溯源 | 結構化日誌、簽名驗證、不可變儲存 |
| 網路邊界 | nftables/firewalld + 雲 SG + 微隔離 | 側向移動、C2 通訊、資料外洩 | 預設拒絕、最小開放、服務網格策略 |
Linux 安全非單一技術可解,唯有將六大支柱按業務風險分級部署、自動化合規檢查、持續威脅情報融合,才能構建經得起實戰考驗的纵深防禦體系。