SELinux是Linux內核的安全子系統,通過嚴格的訪問控制機制增強系統安全性。一般情況下,建議開啟SELinux來限制進程的權限,防止惡意程序通過提權等方式對系統進行攻擊;然而,由于SELinux的嚴格訪問控制機制,可能會導致一些應用程序或服務無法啟動,因此在特定情況下(如開發、調試等),需暫時關閉SELinux。
關于SELinux的工作原理和詳細說明,請參見什么是SELinux?。
操作須知
本教程以下述鏡像版本為例,介紹如何開啟和關閉SELinux。
Alibaba Cloud Linux 3.2104 LTS 64位
CentOS 7.6 64位
如果您使用的是其他Linux發行版,如Fedora、RHEL 9、Debian或Ubuntu等,請參照各自的官方文檔或社區指南進行操作。不同的Linux發行版可能會有不同的配置方法和工具。您可以訪問相應操作系統的官方網站或查閱社區論壇獲取針對特定版本的詳細指導。
開啟SELinux
遠程連接Linux實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
運行以下命令,查看SELinux狀態。
sestatus
若系統返回的參數信息
SELinux status
顯示為disabled
,則表示SELinux已關閉。在ECS實例上運行以下命令,編輯SELinux的
config
文件。sudo vi /etc/selinux/config
找到
SELINUX=disabled
字段,按i
進入編輯模式,通過修改該參數取值來開啟SELinux。您可以根據實際需求自行調整參數取值來選擇啟用SELinux的其中一種模式 :
模式
參數取值
說明
強制執行模式
SELINUX=
enforcing
表示所有違反安全策略的行為都將被禁止。
寬容模式
SELINUX=
permissive
表示所有違反安全策略的行為不被禁止,但會在日志中做記錄。
修改完成后,按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出文件。重要完成修改
config
文件后,需要重啟ECS實例使配置生效,但直接重啟實例將會出現系統無法啟動的錯誤。因此,在重啟之前需要在根目錄下新建autorelabel
文件,以避免出現該問題。執行以下命令,在根目錄下新建隱藏文件
autorelabel
。sudo touch /.autorelabel
重啟ECS實例。具體操作,請參見重啟實例。
說明在ECS實例重啟過程中,SELinux將自動執行系統文件的重新標記操作。請注意,重新標記系統文件是一個全面的掃描過程,具體時長取決于系統文件的數量和大小。建議您在重啟實例后,預留適當的時間,以便該過程能夠完整地進行,確保文件安全設置的正確性。
關閉SELinux
關閉SELinux可能會降低系統的安全性,使系統更容易受到潛在的安全漏洞和攻擊。在關閉之前,您應該仔細評估潛在的風險,并確保系統中其他安全措施的有效性。因此,在解決問題后,建議盡快重新啟用SELinux,以恢復系統的安全性保護。
遠程連接Linux實例。
具體操作,請參見通過密碼或密鑰認證登錄Linux實例。
運行以下命令,查看SELinux狀態。
sestatus
若系統返回的參數信息
SELinux status
顯示為enabled
,則表示SELinux已啟動。選擇臨時關閉或者永久關閉SELinux。
說明臨時關閉SELinux僅影響當前會話,系統重啟后將重置為原始狀態;要實現永久關閉,必須更改配置文件,確保SELinux在重啟之后維持禁用。
臨時關閉SELinux
執行以下命令,臨時將SELinux的模式從
強制執行模式(enforcing)
切換到寬容模式(permissive)
。sudo setenforce 0
永久關閉SELinux
運行以下命令,編輯SELinux的
config
文件。sudo vi /etc/selinux/config
找到
SELINUX=enforcing
或SELINUX=permissive
字段,按i
進入編輯模式,將參數修改為SELINUX=disabled
。修改完成后,按
Esc
鍵退出編輯模式,輸入:wq
后按下回車鍵,保存并退出文件。重啟ECS實例。
具體操作,請參見重啟實例。
完成重啟后,運行以下命令,驗證SELinux狀態。
sestatus
若系統返回的參數信息
SELinux status
顯示為disabled
,則表明SELinux已永久關閉。
相關文檔
您可以在寬容模式下,審查日志以發現安全策略違規事件,并調整SELinux策略規則,確保后續切換至強制執行模式時無誤阻攔行為。具體操作,請參見查看實例的系統日志和屏幕截圖。