SELinux的作用:1、透過對進程和檔案資源採取MAC控制方式,為Linux系統提供了改進的安全性;2、賦予了主體最小的存取特權,最大限度地減少系統中服務進程可存取的資源,可以防止主體對其他使用者或進程產生不利的影響;3、每個進程都有自己的運行區域,各進程僅運行在自己的域內,無法存取其他進程和檔案;4、 SELinux能最大程式上限制Linux系統中的惡意程式碼活動。
本教學操作環境:linux7.3系統、Dell G3電腦。
SELinux,Security Enhanced Linux 的縮寫,也就是安全強化的Linux,是由美國國家安全局(NSA)聯合其他安全機構(例如SCC 公司)共同開發的,旨在增強傳統Linux 作業系統的安全性,解決傳統Linux 系統中自主存取控制(DAC)系統中的各種權限問題(如root 權限過高等)。
對於 SELinux,初學者可以這麼理解,它是部署在 Linux 上用於增強系統安全的功能模組。
傳統的Linux 系統安全,採用的是DAC(自主存取控制方式),而SELinux 是部署在Linux 系統中的安全增強功能模組,它透過對進程和檔案資源採用MAC(強制存取控制方式)為Linux 系統提供了改進的安全性。
SELinux的主要作用
#透過對進程和檔案資源採用MAC(強制存取控制方式)控制方式,為Linux 系統提供了改進的安全性。
最大限度地減少系統中服務進程可存取的資源(最小權限原則)。
它賦予了主體(使用者或流程)最小的存取特權,這也意味著,每個主體僅被賦予了完成相關任務所必須的一組有限的權限。透過賦予最小存取特權,可以防止主體對其他使用者或程序產生不利的影響。
SELinux 管理過程中,每個進程都有自己的運行區域(稱為域),各進程僅運行在自己的域內,無法存取其他進程和文件,除非被授予了特殊權限。
SELinux 能最大程式上限制 Linux 系統中的惡意程式碼活動。
擴充知識:
SELinux 基本概念:
1、主體(Subject):就是想要存取檔案或目錄資源的進程。想要得到資源,基本流程是這樣的:由使用者呼叫指令,由指令產生進程,由進程去存取檔案或目錄資源。在自主存取控制系統中(Linux 預設權限中),靠權限控制的主體是使用者;而在強制存取控制系統中(SELinux 中),靠策略規則控制的主體則是流程。
2、目標(Object):這個概念比較明確,就是需要存取的檔案或目錄資源。
3、策略(Policy):Linux 系統中進程與檔案的數量龐大,那麼限制進程是否可以存取檔案的SELinux 規則數量就更加煩瑣,如果每個規則都需要管理員手動設定,那麼SELinux 的可用性就會極低。還好我們不用手動定義規則,SELinux 預設定義了兩個策略,規則都已經在這兩個策略中寫好了,預設只要呼叫策略就可以正常使用了。這兩個預設策略如下:
-targeted:這是 SELinux 的預設策略,這個策略主要是限製網路服務的,對本機系統的限制極少。我們使用這個策略已經足夠了。
-mls:多層安全保護策略,這個策略限制得更嚴格。
4、安全上下文(Security Context):每個進程、檔案和目錄都有自己的安全上下文,進程具體是否能夠存取檔案或目錄,就要看這個安全上下文是否匹配。如果進程的安全上下文和檔案或目錄的安全上下文能夠匹配,則該進程可以存取此檔案或目錄。當然,判斷進程的安全上下文和檔案或目錄的安全上下文是否匹配,則需要依靠策略中的規則。舉個例子,我們需要找對象,男人可以看成主體,女人就是目標了。而男人是否可以追到女人(主體是否可以訪問目標),主要看兩個人的性格是否合適(主體和目標的安全上下文是否匹配)。不過,兩個人的性格是否合適,是需要靠生活習慣、為人處世、家庭環境等具體的條件來進行判斷的(安全上下文是否匹配是需要透過策略中的規則來確定的)。
SELinux 的工作模式
#SELinux 提供了 3 種工作模式:Disabled、Permissive 和 Enforcing,而每種模式都為 Linux 系統安全提供了不同的好處。
1、Disable工作模式(關閉模式)
在 Disable 模式中,SELinux 關閉,預設的 DAC 存取控制方式被使用。對於那些不需要增強安全性的環境來說,該模式是非常有用的。
例如,若從你的角度看正在運行的應用程式工作正常,但是卻產生了大量的 SELinux AVC 拒絕訊息,最終可能會填滿日誌文件,從而導致系統無法使用。在這種情況下,最直接的解決方法就是停用 SELinux,當然,你也可以在應用程式所存取的檔案上設定正確的安全上下文。
要注意的是,在停用SELinux 之前,需要考慮是否可能會在系統上再次使用SELinux,如果決定以後將其設定為Enforcing 或Permissive,那麼當下次重新啟動系統時,系統將會透過一個自動SELinux 檔案重新進程標記。
關閉 SELinux 的方式也很簡單,只需編輯設定檔 /etc/selinux/config,並將文字中 SELINUX= 更改為 SELINUX=disabled 即可,重新啟動系統後,SELinux 就停用了。
2、Permissive工作模式(寬容模式)
在 Permissive 模式中,SELinux 被啟用,但安全性原則規則並沒有被強制執行。當安全性原則規則應該拒絕存取時,存取仍然被允許。然而,此時會向日誌檔案發送訊息,表示該存取應該被拒絕。
SELinux Permissive 模式主要用於以下幾種情況:
審核當前的SELinux 策略規則;
測試新應用程序,看看將SELinux 策略規則應用到這些程式時會有什麼效果;
解決某一特定服務或應用程式在SELinux 下不再正常運作的故障。
某些情況下,可使用audit2allow 指令來讀取SELinux 審核日誌並產生新的SELinux 規則,從而有選擇性地允許被拒絕的行為,而這也是一種在不停用SELinux 的情況下,讓應用程式在Linux 系統上運作的快速方法。
3、Enforcing工作模式(強制模式)
從此模式的名稱就可以看出,在 Enforcing 模式中, SELinux 被啟動,並強制執行所有的安全性原則規則。
相關推薦:《Linux影片教學》
以上是linux裡面的selinux有什麼用的詳細內容。更多資訊請關注PHP中文網其他相關文章!