萬盛學電腦網

 萬盛學電腦網 >> Linux教程 >> SELinux 警告產生的原因以及解決方案

SELinux 警告產生的原因以及解決方案

   本文主要介紹下四個導致 SELinux 警告產生的原因以及解決方案。

    原因一:出現標注錯誤

    SELinux 的核心概念就是標注,無論是文件系統、目錄、文件、文件啟動描述符、端口、消息接口還是網絡接口,所有的一切都需要標簽,並且僅且僅能按照標簽所賦予的權 限執行。即使運行的 Apache 進程被黑客入侵且取得了 uid=0 root 權限,它依然無法訪問某個用戶主目錄下的文件。因為標注為httpdt 的 Apache 進程所持有的無法訪問標注為 userhome_t 的內容。

    因此,如果標注有問題的話,SELinux 就會彈出警告。如何處理此類,可以參看本站前文中關於semanage fcontext 和 restorecon 命令的使用。當然也可以按照圖形化的 SELinux 除錯工具中的提示解決。

    原因二:自定義了程序運行設置

    經過多年的發展,SELinux 已經積累了大量的策略文件時,對於絕大多數應用程序的默認運行請求都有記錄,可以賦予合適的最小權限予以執行。不過若是您自定義了一些運行配置或者有特殊的應用需求,則需要調整部分 SELinux 設置。

    對於大多數常見的自定義需求,SELinux 采取布爾值的方式進行控制,可以參看本站前文中關於 setsebool 命令的使用。若想了解全部可調整的 SELinux 布爾值,使用 semanage boolean ——l 命令。這可以通過圖形化的 SELinux 除錯工具解決,也可以通過圖形化的 system-config-selinux 解決。

    原因三:SELinux 策略或應用程序配置有問題

    若是您並未特別修改配置卻依然收到 SELinux 警告,原因可能就在 SELinux 策略或者應用程序本身了。此時建議首先在 SELinux 除錯工具的幫助下提交錯誤報告,然後再依據情況進行處理。若是已經被報告過,通常在錯誤報告的評論中會詳細解決方案。

    此時若是想忽略 SELinux 警告依然運行應用程序,則有如下幾種方式:

    將 SELinux 設為允許模式,僅記錄警告但不阻止運行:setenforce 0.

    將某單一標注進程設置為允許模式,而非整個系統,例如僅想以允許模式運行 Apache: semange permissive -a httpd_t

    參照 SELinux 除錯工具的建議創建並加載自定義策略。具體過程依情況而異,SELinux 除錯工具內會有詳細的說明。

    原因四:程序已被入侵

    SELinux 並非入侵檢測系統,所以目前 SELinux 除錯工具無法主動的甄別出入侵企圖,不過當您發現警告內容包含有如下特征時,很有可能對應進程已被黑客攻破了:

copyright © 萬盛學電腦網 all rights reserved