溫馨提示×

Ubuntu SELinux如何記錄

小樊
46
2025-10-18 13:38:52
欄目: 智能運維

Ubuntu下SELinux日志記錄配置與查看指南

SELinux(Security-Enhanced Linux)作為內核級安全模塊,其日志記錄主要依賴auditd(Linux審計守護進程)捕獲安全事件。以下是在Ubuntu上配置SELinux日志記錄的完整步驟:

1. 安裝必要工具包

首先需安裝SELinux核心工具及auditd服務,確保系統支持SELinux日志記錄:

sudo apt update
sudo apt install selinux-basics selinux-policy-default auditd audispd-plugins

2. 啟用并配置SELinux

編輯SELinux配置文件/etc/selinux/config,將模式設置為permissive(寬松模式,僅記錄違規不阻止)或enforcing(強制模式,記錄并阻止違規):

sudo nano /etc/selinux/config

找到SELINUX=行,修改為:

SELINUX=permissive  # 測試階段建議用permissive,穩定后再切enforcing

保存后重啟系統使配置生效:

sudo reboot

3. 配置auditd服務

auditd是SELinux日志的核心收集工具,需確保其正常運行并優化配置:

  • 啟動并啟用auditd
    sudo systemctl start auditd
    sudo systemctl enable auditd
    
  • 調整日志參數:編輯/etc/audit/auditd.conf,設置日志文件路徑、大小及保留數量(示例):
    audit_log_file = /var/log/audit/audit.log  # 日志文件路徑
    audit_log_format = raw  # 日志格式(raw/rawascii)
    audit_rotate_size = 10485760  # 單個日志文件最大10MB
    audit_rotate_count = 7      # 保留7個歸檔日志
    
    保存后重啟auditd:
    sudo systemctl restart auditd
    

4. 添加SELinux專用審計規則

通過auditctl命令或規則文件,監控SELinux關鍵文件及系統調用:

  • 臨時規則(重啟失效):監控SELinux配置目錄及策略文件的所有讀寫操作:
    sudo auditctl -w /etc/selinux/config -p wa -k selinux_config  # 配置文件變更
    sudo auditctl -w /etc/selinux/policy -p wa -k selinux_policy  # 策略文件變更
    sudo auditctl -w /var/lib/selinux/active -p wa -k selinux_active  # 活動策略目錄
    
  • 永久規則:創建/etc/audit/rules.d/audit.rules文件,添加以下內容(監控進程執行及SELinux相關事件):
    # 監控所有進程執行事件
    -a exit,always -F arch=b32 -S execve -S execveat -k executed-process
    -a exit,always -F arch=b64 -S execve -S execveat -k executed-process
    # 監控SELinux拒絕事件(需結合avc規則)
    -a always,exit -F arch=b32 -S setrlimit -F a0=RLIMIT_CORE -k selinux_core_limit
    -a always,exit -F arch=b64 -S setrlimit -F a0=RLIMIT_CORE -k selinux_core_limit
    
    加載規則:
    sudo auditctl -R /etc/audit/rules.d/audit.rules
    

5. 查看與分析SELinux日志

使用以下工具快速檢索、分析SELinux相關日志:

  • 過濾SELinux拒絕記錄:從audit.log中提取包含“denied”的條目(常見違規場景):
    sudo grep -i "denied" /var/log/audit/audit.log
    
  • 搜索特定SELinux事件:使用ausearch命令按關鍵詞(如selinux)或時間范圍查詢:
    sudo ausearch -k selinux_config  # 按自定義關鍵詞查詢
    sudo ausearch -m avc -ts today  # 查詢今日的SELinux訪問控制事件(AVC)
    
  • 生成SELinux事件報告:通過aureport工具匯總SELinux事件統計(如拒絕次數、觸發進程):
    sudo aureport -m selinux  # 生成SELinux模塊報告
    sudo aureport -m selinux -i  # 顯示詳細信息(包括進程名、用戶)
    

注意事項

  • Ubuntu默認使用AppArmor而非SELinux,若需切換需徹底禁用AppArmor(sudo systemctl stop apparmor; sudo systemctl disable apparmor),避免沖突。
  • 生產環境中建議先使用permissive模式測試,確認日志記錄無誤后再切換至enforcing模式,防止誤攔截合法操作。
  • 定期備份/var/log/audit/audit.log(如使用logrotate),避免日志文件過大占用磁盤空間。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女