歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> 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 除錯工具無法主動的甄別出入侵企圖,不過當您發現警告內容包含有如下特征時,很有可能對應進程已被黑客攻破了:
嘗試關閉 SELinux (/etc/selinux) 或者設定某個 SELinux 布爾值。
嘗試載入內核模塊、寫入內核目錄或者引導器鏡像。
嘗試讀取 shadow_t 標識的文件,那裡通常包含了加密的賬戶信息。
嘗試覆蓋寫入日志文件。
嘗試連接不需要的隨機端口或者郵件端口。

至此四種常見警告原因介紹完畢,希望您下次遇到 SELinux 警告時可以安全有效的處理。順便說下,絕大部分 SELinux 除錯工具的本地化問題已經解決,使用簡中的童鞋們將可以在 Fedora 18 看到簡中的警告內容了。
Copyright © Linux教程網 All Rights Reserved