溫馨提示×

ubuntu如何使用selinux進行審計

小樊
44
2025-09-27 10:22:27
欄目: 智能運維

前提:Ubuntu默認使用AppArmor,需先安裝SELinux
Ubuntu并非默認啟用SELinux(默認使用AppArmor),因此需先安裝SELinux及相關工具。通過以下命令完成安裝:

sudo apt update
sudo apt install selinux selinux-utils auditd audispd-plugins

步驟1:配置SELinux模式
編輯SELinux配置文件/etc/selinux/config,將SELINUX參數設置為permissive(寬松模式,僅記錄違規不阻止)或enforcing(強制模式,阻止違規)。例如:

sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config

修改后重啟系統使設置生效:

sudo reboot

驗證SELinux狀態:

sestatus
# 應顯示"SELinux status: enabled"及當前模式(如"Current mode: permissive")

步驟2:安裝并配置auditd服務
auditd是Linux審計框架的核心守護進程,用于記錄SELinux相關事件。

  • 安裝auditd
    sudo apt install auditd audispd-plugins
    
  • 啟動并啟用服務
    sudo systemctl start auditd
    sudo systemctl enable auditd
    
  • 配置日志參數(可選):
    編輯/etc/audit/auditd.conf,調整日志大小、保留數量等參數(如max_file_size 100表示單日志文件最大100MB,num_files 10表示保留10個歸檔文件),修改后重啟服務:
    sudo systemctl restart auditd
    

步驟3:配置SELinux審計規則
通過auditctl命令或自定義規則文件監控SELinux關鍵操作:

  • 臨時規則(重啟失效)
    監控SELinux配置文件(/etc/selinux/config)、策略文件(/etc/selinux/policy)及活動策略目錄(/var/lib/selinux/active)的所有讀寫操作,自定義關鍵詞selinux_audit便于后續過濾:
    sudo auditctl -w /etc/selinux/config -p wa -k selinux_audit
    sudo auditctl -w /etc/selinux/policy -p wa -k selinux_audit
    sudo auditctl -w /var/lib/selinux/active -p wa -k selinux_audit
    
  • 永久規則
    創建自定義規則文件/etc/audit/rules.d/selinux.rules,添加以下內容(監控SELinux AVC拒絕事件及上述文件變更):
    -w /etc/selinux/config -p wa -k selinux_audit
    -w /etc/selinux/policy -p wa -k selinux_audit
    -w /var/lib/selinux/active -p wa -k selinux_audit
    -a always,exit -F arch=b32 -S avc -k selinux_avc
    -a always,exit -F arch=b64 -S avc -k selinux_avc
    
    加載規則:
    sudo augenrules --load
    

步驟4:查看與分析SELinux審計日志

  • 實時查看SELinux相關事件
    使用ausearch命令過濾selinux_audit關鍵詞或avc(SELinux訪問控制)消息類型,-ts recent表示最近1分鐘內事件,-i參數顯示詳細信息:
    sudo ausearch -k selinux_audit -ts recent -i
    sudo ausearch -m avc -ts recent -i
    
  • 生成SELinux審計報告
    使用aureport命令生成匯總報告,-m selinux參數聚焦SELinux事件,可查看違規次數、類型等統計信息:
    sudo aureport -m selinux -i
    
  • 直接查看原始日志
    SELinux日志默認存儲在/var/log/audit/audit.log,可使用grep快速篩選拒絕事件:
    sudo grep -i "denied" /var/log/audit/audit.log
    

注意事項

  • 生產環境建議將SELinux設置為enforcing模式,但需提前通過permissive模式測試避免誤攔截;
  • 定期備份審計日志(如/var/log/audit/audit.log),防止日志被覆蓋或篡改;
  • 若需更細粒度的SELinux策略審計,可結合semanage(策略管理工具)和audit2allow(生成自定義策略)工具使用。

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