如何在CentOS 7上停用或關閉SELinux?


介紹

在Linux世界中,安全性是系統管理員最關心的問題之一。增強Linux系統安全性的方法之一是使用安全增強型Linux (SELinux)。

SELinux是一個強制訪問控制(MAC)系統,它為您的CentOS 7伺服器提供了額外的保護層。它提供細粒度的訪問控制和策略,使系統管理員能夠限制使用者的操作並保護敏感資料。

檢查SELinux的當前狀態

SELinux(安全增強型Linux)是一種安全機制,它透過限制程序和使用者對某些資源的訪問來為您的系統提供額外的保護層。CentOS 7預設情況下啟用SELinux。在某些情況下,您可能需要在進行任何配置更改之前檢查它是否正在執行。

使用getenforce命令

檢查SELinux當前狀態最簡單的方法是使用getenforce命令。此命令顯示SELinux當前在您的CentOS 7系統上是強制執行、許可模式還是已停用。要使用此命令,請開啟終端視窗並輸入:

getenforce

如果SELinux當前在您的系統上強制執行,則此命令將返回“Enforcing”。如果它在許可模式(也稱為“記錄”模式)下執行,它將返回“Permissive”。

如果SELinux完全停用,“Disabled”將被返回。需要注意的是,在較新的CentOS 7版本(例如,CentOS 7.6)上,如果實際上並沒有完全停用,getenforce的輸出可能會顯示“disabled”,這是因為其他功能(如系統安全服務守護程式(SSSD)和auditd)即使在您已在/etc/sysconfig/selinux檔案中設定SELINUX=disabled時,也可能仍在強制模式下執行。

使用getenforce命令可以幫助您確定SELinux當前是否在您的CentOS 7系統上處於活動狀態及其當前狀態。這在排查安全問題或確定是否需要進一步配置更改時非常有用。

臨時停用SELinux

有時,您可能需要臨時停用SELinux來解決CentOS 7中的特定問題。這可以使用setenforce命令完成,該命令用於更改當前的SELinux模式。setenforce命令有兩種模式:強制執行和許可模式。

強制執行模式是SELinux的預設模式,它強制執行SELinux定義的所有安全策略。另一方面,許可模式只記錄策略違規而不會強制執行它們。在許可模式下,SELinux不會阻止任何操作,而是會記錄它們。

要使用setenforce命令臨時停用CentOS 7中的SELinux,請按照以下步驟操作:

以root許可權登入您的CentOS 7系統。

開啟一個終端視窗。

輸入以下命令以檢查SELinux的當前狀態:

$ getenforce

輸出將顯示“Enforcing”或“Permissive”。如果顯示“Enforcing”,則需要執行以下命令:

$ setenforce 0

這將SELinux狀態設定為許可模式,這意味著它不會阻止任何操作,而是會記錄它們。您可以透過輸入以下命令來確認它已更改:

$ getenforce

輸出現在應該顯示“Permissive”。

請注意,此更改是臨時的,重啟後不會保留。如果您想永久停用或關閉CentOS 7系統上的SELinux,請繼續下一節。

永久關閉SELinux

有時,您可能希望永久關閉SELinux。這可以透過編輯/etc/selinux/config檔案來完成。此檔案用於在系統啟動期間設定預設的SELinux模式。

編輯/etc/selinux/config檔案

要編輯/etc/selinux/config檔案,您必須擁有伺服器的root訪問許可權。在您的CentOS 7機器上開啟終端並輸入:

$ sudo nano /etc/selinux/config

這將在Nano編輯器中開啟配置檔案。查詢以“SELINUX=”開頭的行。此行的值指示SELinux是啟用還是停用:

# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 

# enforcing - SELinux security policy is enforced. 
# permissive - SELinux prints warnings instead of enforcing. 
# disabled - No SELinux policy is loaded. SELINUX=enforcing 

要永久關閉SELinux,請將“enforcing”更改為“disabled”:

# This file controls the state of SELinux on the system. 
# SELINUX= can take one of these three values: 

# enforcing - SELinux security policy is enforced. 
# permissive - SELinux prints warnings instead of enforcing. 
# disabled - No SELinux policy is loaded. SELINUX=disabled 

完成此更改後,按Ctrl+X,然後按Y,最後按Enter儲存並關閉/etc/selinux/config。請注意,對/etc/selinux/config的更改需要重新啟動系統才能生效。重新啟動CentOS 7伺服器後,執行getenforce命令以確保SELinux現在已停用:

$ getenforce

輸出應為“Disabled”。您的CentOS 7伺服器現在在沒有SELinux的情況下執行。

驗證SELinux是否已停用或關閉

在CentOS 7上停用或關閉SELinux後,務必驗證更改是否已正確應用。本節將指導您完成驗證此問題的幾種方法。

方法1:使用getenforce命令

檢查SELinux當前是否已臨時停用或關閉的最簡單方法是使用getenforce命令。此命令顯示系統上SELinux的當前狀態。

要檢查SELinux的當前狀態,請開啟您的終端並輸入:

$ getenforce 

如果此命令返回“Disabled”或“Permissive”,則您已成功臨時停用或關閉SELinux。但是,如果它返回“Enforcing”,則SELinux仍在啟用並強制執行策略。

方法2:檢查檔案/etc/selinux/config

您還可以透過檢查位於/etc/selinux/config的配置檔案來驗證SELinux是否已永久停用。如果您已正確執行所有步驟以永久停用SELinux,則此檔案應包含類似於以下內容的行:

SELINUX=disabled 

如果顯示“SELINUX=enforcing”,則需要確保在重新啟動系統之前已正確編輯和儲存此檔案。

方法3:使用sestatus命令

您還可以使用sestatus,這是一個用於管理和查詢SELinux狀態的強大工具。

$ sudo sestatus 

此命令顯示SELinux的當前狀態,並提供其他資訊,例如已啟用的策略和布林值。如果SELinux已永久停用或關閉,則此命令應顯示以下內容:

SELinux status: disabled  

如果它返回“SELinux status: enabled”,則需要確保在重新啟動系統之前已正確執行所有步驟以永久停用SELinux。

結論

雖然停用或關閉SELinux可能會暫時解決CentOS 7機器上的某些問題,但務必記住它是一個重要的安全功能。SELinux透過限制授予程序的訪問許可權和許可權來為您的系統增加額外的保護層。

更新於:2023年7月11日

瀏覽量:244

開啟您的職業生涯

透過完成課程獲得認證

開始學習
廣告