溫馨提示×

selinux在ubuntu中的工作原理

小樊
45
2025-08-29 18:01:33
欄目: 智能運維

SELinux在Ubuntu中的工作原理基于強制訪問控制(MAC),通過為系統資源(進程、文件、端口等)打上安全上下文標簽,并依據策略規則限制主體(進程)對客體(資源)的訪問,即使進程擁有root權限也無法繞過策略。

核心機制

  1. 安全上下文(Security Context)
    每個進程、文件、端口等資源都會被標記唯一的上下文標簽(如httpd_t、httpd_sys_content_t),包含用戶、角色、類型等信息,用于標識其安全級別和訪問權限。

    • 查看標簽:ls -Z(文件/目錄)、ps -Z(進程)。
  2. 策略規則(Policy Rules)

    • 類型強制(Type Enforcement):策略中最核心的機制,通過定義“類型”的訪問規則控制資源交互。例如,默認策略可能允許httpd_t進程訪問httpd_sys_content_t類型的文件,但禁止訪問其他類型的文件。
    • 策略類型
      • targeted(默認):僅對網絡服務等關鍵進程應用嚴格策略,對本地進程限制較少。
      • strict:對所有進程實施全面嚴格的訪問控制。
  3. 工作模式

    • Enforcing(強制模式):違反策略的行為會被立即攔截,并記錄到日志(/var/log/audit/audit.log)。
    • Permissive(寬容模式):僅記錄違規行為,不實際攔截,用于調試策略。
    • Disabled(禁用模式):完全關閉SELinux,系統僅依賴傳統DAC(自主訪問控制)。
  4. 決策流程
    當進程嘗試訪問資源時,內核依次檢查:

    1. 標準Linux DAC權限(文件權限、用戶組等);
    2. SELinux策略規則:通過策略模塊判斷主體與客體的上下文是否匹配允許的訪問類型。若匹配失敗,則拒絕訪問并記錄日志。

配置與管理工具

  • 安裝
    sudo apt install selinux-basics selinux-policy-default  
    sudo selinux-activate  # 啟用SELinux  
    
  • 模式切換
    • 臨時切換:sudo setenforce 0(Permissive)/ 1(Enforcing)。
    • 永久切換:編輯/etc/selinux/config,修改SELINUX=參數后重啟。
  • 策略管理
    • semanage:管理文件/端口標簽、布爾值(如允許服務訪問特定端口)。
    • audit2allow:根據日志生成自定義策略模塊,解決策略攔截問題。

注意事項

  • 兼容性:部分Ubuntu軟件可能未完全適配SELinux,需手動調整策略或謹慎啟用。
  • 性能影響:策略復雜度高時可能增加系統開銷,建議在測試環境優化后再部署到生產環境。

參考來源

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