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