了解selinux 及其開啟和關閉的方法


 SElinux是強制訪問控制(MAC)安全系統,是linux歷史上最傑出的新安全系統。對於linux安全模塊來說,SElinux的功能是最全面的,測試也是最充分的,這是一種基於內核的安全系統。

 1、SElinux的狀態

        命令"getenforce"可以查看SElinux的狀態,SElinux的狀態分為以下三種:

                                  Enforcing    (1)           強制模式

                                  Permissive   (0)           警告模式

                                  Disabled                     關閉模式

         "setenforce"可以設置SElinux的狀態,但是只能設置0和1兩種,即警告模式或者強制模式。如果需要關閉,則在配置文件"/etc/sysconfig/selinux"下將"SELINUX=enforcing"改為"SELINUX=disabled",因為SElinux是基於內核的安全系統,所以在設置完成之后需要重啟內核,即需要重啟電腦才可以生效。

 

 2、SElinux對服務的影響

        SElinux是最全面的安全系統,所以會對文件和服務有一定的限制,以下服務以ftp為例。

        SElinux會在文件上做出上下文標識,例如下圖所示,在"/mnt"和"/var/ftp/pub"下分別建立文件"file",輸入"ls -Z"可以查看文件標識。可以看出,"/mnt/file"為"mnt_t",而"/var/ftp/pub/file"標識為"public_content_t",這樣會導致將"/mnt/file"移入"/var/ftp/pub"目錄下,連接lftp無法看到這個文件。

        SElinux為了系統的安全,會禁止服務一些危險功能的使用,可以輸入"getsebool -a | grep ftp"來查看禁止了ftp服務的哪些功能,如下圖所示,輸入"setsebool -P 功能 on|off"可以控制這些功能的開關。

 3、SElinux的上下文管理

        之前提到SElinux會在目錄和文件上留下上下文標識,輸入"ls -Z"可以查看。命令"chcon -t 上下文 文件"可以更改文件和目錄的上下文標識,就可以解決上述中lftp無法看到其他上下文標識文件的問題。例如下圖所示,現有兩個不同上下文標識的文件"txt"和"file"連接lftp后可以看到"file",輸入"chcon -t public_content_t /var/ftp/pub/txt"后,重新連接lftp,就可以看到"file"和"txt"兩個文件了。

         如下圖所示,將匿名用戶登陸的家目錄改為"/westos",並將標識改為"public_content_t",連接lftp可以看到這個家目錄。但是將SElinux的狀態改為"disabled"重啟后再改回"enforcing",重啟后重新連接lftp,發現無法看見家目錄了。

        上述情況說明使用"chcon"命令改變目錄的上下文標識只是臨時的。永久改變目錄的上下文標識,需要做如下步驟:

        a、使用命令"semanage fcontext -l | grep /westos"查看該目錄是否有上下文規則。

        b、輸入"semanage fcontext -a -t public_content_t '/westos(/.*)?'"為"/westos"添加上下文規則,並通過a步驟命令查看。

        c、查看到上下文規則后,輸入命令"restorecon -RvvF /westos"將規則同步至目錄及其子目錄。

        上述步驟完成后就可以永久改變"/westos"目錄的上下文標識了,重新連接lftp就可以看到目錄了。

 4、SElinux的日志

        在SElinux的使用當中,會出現一些錯誤,例如連接lftp后無法看到里面的文件,或者在進行配置時某一步出現錯誤。這些錯誤出現后是可以查出來並且解決的,這就是SElinux日志的使用。

        SElinux的日志會記錄在"/var/log/audit/audit.log"和文件"/var/log/messages"中,前者只會說明錯誤,但是不會提供解決辦法,且閱讀復雜。"/var/log/messages"文件可以詳細的記錄錯誤,並且提供解決方法,SElinux的記錄軟件是"setroubleshoot-server.x86_64"。下面將以lftp連接后無法看到里面的文件來具體介紹。

        前面已做敘述,如果不改變下圖中的"file1"文件的上下文標識,是無法看到這個文件的。

        在沒有"setroubleshoot-server.x86_64"這個軟件的情況下,清空日志后,發現日志中並不會記錄這個錯誤。

        然后安裝這個軟件后,重新連接,再查看日志,其中就會出現這個錯誤的具體日志。並且會提供解決方法,根據解決方法就可以解決這個問題了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM