Linux 系統安全並非單一工具可解,而是一套纵深防禦體系。本文依託「文件系統完整性、用戶認證強化、進程行為監控、日誌審計追蹤」四大支柱,系統闡述企業級 Linux 安全加固的核心技術與工具實踐,涵蓋 Tripwire、John the Ripper、審計子系統、強制存取控制(MAC)等經典與前沿方案。
Tripwire 採用 數位簽名(雜湊值)基線比對 機制:
可檢測:檔案內容修改、權限/屬主變更、檔案新增/刪除、時間戳竄改。
# 1. 編譯安裝(或使用套件管理器)
./configure && make && make install
# 2. 生成站點/本地金鑰
tripwire-setup-keyfiles
# 3. 初始化基線資料庫(需 root 權限)
tripwire --init
# 4. 定期/排程檢查
tripwire --check # 全系統掃描
tripwire --check /etc /var/www # 指定目錄掃描
/etc/tripwire/twcfg.txt:全域配置(郵件通知、報告格式、資料庫路徑)。/etc/tripwire/twpol.txt:策略檔,定義監控規則(嚴格/鬆散模式、忽略規則)。最佳實踐:基線資料庫離線備份(如唯讀光碟、異地存儲),防止攻擊者同時竄改檔案與基線。
John the Ripper (JtR) 是開源密碼破解工具,支援 DES、MD5、SHA-256/512、bcrypt、NTLM 等數十種雜湊格式,跨平台(Linux/Unix/Windows/macOS)。防禦視角下,它是「密碼強度審計儀」——用攻擊者視角驗證防線。
# 解壓進入 src 目錄
tar zxvf john-1.9.0.tar.gz && cd john-1.9.0/src
make clean linux-x86-64-avx2 # 根據 CPU 指令集選擇目標
cd ../run
./john --test # 基準測試,輸出各雜湊類型破解速度
# 1. 單一模式(基於用戶資訊的字典變體攻擊,極快)
./john --single /etc/shadow
# 2. 字典攻擊(需優質字典檔,如 rockyou.txt)
./john --wordlist=/usr/share/wordlists/rockyou.txt /etc/shadow
# 3. 增量模式(暴力枚舉,極慢,最後手段)
./john --incremental /etc/shadow
# 4. 查看已破解密碼
./john --show /etc/shadow
# 輸出範例:user1:Password123:1000:1000::/home/user1:/bin/bash
/etc/security/pwquality.conf 設定 minlen=12、dcredit=-1 等。authconfig --passalgo=sha512 --update(RHEL/CentOS)。/etc/login.defs 設定 PASS_MAX_DAYS=90、PASS_WARN_AGE=7。pam_faillock.so 或 pam_tally2.so。無需第三方 Agent,善用 Linux 內建工具即可構建基礎進程審計:
| 命令 | 用途 | 關鍵參數 |
|---|---|---|
ps | 進程快照 | aux、-ef、--forest(樹狀) |
top/htop | 即時資源佔用 | -d 1 刷新間隔、-u user 過濾 |
w/who | 登入用戶與其進程 | -u 顯示閒置時間 |
lsof | 進程開啟檔案/網路 | -p PID、-i:port |
netstat/ss | 網路連線狀態 | -antup、-l 監聽埠 |
異常指標:非預期用戶啟動的高權限進程、異常網路連線(反向 Shell)、CPU/記憶體佔用異常飆升、偽裝系統進程名(如 kworker 實為挖礦程式)。
/var/run/utmp:當前登入用戶(二進制,who/w 讀取)。/var/log/wtmp:歷史登入/登出/重啟記錄(二進制,last 讀取)。/var/log/pacct(需啟動 acct 服務),記錄命令執行時間、CPU/記憶體用量、退出碼,lastcomm/sa 分析。
用戶程式 → syslog() 庫 → syslogd → /var/log/messages
內核訊息 → printk → 環形緩衝區 → klogd → syslogd → /var/log/kern.log
關鍵設施:rsyslog / syslog-ng 替代傳統 syslogd,支援 TLS 傳輸、結構化日誌、多目標路由(Elasticsearch、Kafka、SIEM)。
last -n 20 # 最近 20 次登入
lastb -n 20 # 最近 20 次失敗登入
grep "Failed password" /var/log/secure | awk '{print $(NF-3)}' | sort | uniq -c | sort -rn # 暴力破解 IP 統計
ausearch -m USER_LOGIN # auditd 審計事件查詢(需安裝 auditd)
傳統 DAC(自主存取控制,即 rwx 權限)無法防止 root 竄改關鍵檔案。MAC 由系統策略強制約束主體(進程)對客體(檔案/網路/裝置)的存取,即使 root 也受限。
| 方案 | 策略模型 | 特點 | 適用場景 |
|---|---|---|---|
| SELinux | TE + RBAC + MLS | 紅帽主導、成熟度最高、策略複雜 | 政府、金融、高安全合規環境 |
| AppArmor | 路徑基礎 Profile | Ubuntu/SUSE 預設、配置簡單、學習曲線平緩 | 一般企業伺服器、容器宿主機 |
| RSBAC | GFAC 模型(MAC/RBAC/ACL 模組化) | 模組化靈活、社群較小 | 研究、特定合規需求 |
建議:生產環境務必啟用 SELinux Enforcing 模式,配合 audit2allow 逐步調整策略,而非直接設為 Permissive 或 Disabled。
/etc/hosts.allow/hosts.deny):服務級存取控制,補充防火牆。安全無終點,唯有持續構建、驗證、改進纵深防禦體系,才能在攻防博弈中守住 Linux 基礎設施的生命線。