搜尋此網誌
RHCE - SELinux
SELinux
SELinux(Security Enhanced Linux)用以針對Linux系統的安全性進行強化。
簡單的說,SELinux是針對程序對於檔案系統的存取,進行以政策(Policy)為基準的控管。
當程序通過政策之後,會與檔案系統進行安全性本文比對,比對相符就可以存取檔案系統。
SELinux必須在root權限下才可進行設定。
使用 #getenforce 可以查詢目前SELinux的狀態。
enforcing:強制模式,表示SELinux正常運作中。
permissive:警告模式,SELinux也是正常運作,但是對於政策只會給予警告,用以debug用。
disabled:關閉SELinux。
可以於/etc/sysconfig/selinux中變更SELinux狀態。
或者使用 #setenforce 0 (or 1) 變更,0為警告模式,1為強制模式。
SELinux的政策中訂立了許多規則,規則設定了程序對於檔案系統各種動作的權限。
可以使用 #getsebool -a 來查詢所有目前運行的規則。
可以在後面加上規則名稱或者grep去查詢特定的規則。
之後可以使用 #setsebool -P [規則] on (or off) 開啟或關閉規則。
TROUBLESHOOT
SELinux的設定錯誤會導致程序無法正常的進行。
例如你可能不小心關閉了httpd,使得你的網站無法正常的被瀏覽。
這時候就必須進行除錯。
除錯可以使用setroubleshoot或auditd這兩個服務。
安裝後記得使用 #chkconfig 設定為開機啟動才可完整紀錄所有錯誤。
安裝setroubleshoot可以用以紀錄SELinux的錯誤訊息。
使用 #grep setroubleshoot /var/log/message 可以查詢目前SELinux的錯誤訊息。
每筆錯誤紀錄會有一個編號,使用 #sealert -l [編號] 可以查詢該筆錯誤詳細資料。
或者安裝auditd這個服務,同樣也可以紀錄SELinux的錯誤訊息。
使用 #sealert -a /var/bg/audit/audit.log 可以查詢所有錯誤訊息的詳細資料。