selinux

一:Selinux介紹:

SELinux: 是美國國家安全局和SCC開發的 Linux的一個強制訪問控制的安全模塊。 2000年以GNU GPL發佈, Linux內核2.6版本後集成在內核中。
SElinux提供DAC:自由訪問控制和MAC:強制訪問控制兩種訪問控制。所有DAC機制都有一個共同的弱點,就是它們不能識別自然人與計算機程序之間最基本的區別。簡單點說就是,如果一個用戶被授權允許訪問,意味着程序也被授權訪問,如果程序被授權訪問,那麼惡意程序也將有同樣的訪問權。 DAC最根本的弱點是主體容易受到多種多樣的惡意軟件的***,而且DAC環境下進程是無束縛的,MAC就是避免這些***的出路,大多數MAC特性組成了多層安全模型。MAC環境下策略的規則決定控制的嚴格程度,MAC環境下進程可以被限制的,策略被用來定義被限制的進程能夠使用那些資源(文件和端口)。 默認情況下,沒有被明確允許的行爲將被拒絕

二:SElinux的四種工作類型。

(1)strict:centos5,每個進程都受到selinux的控制
(2)targrtd:用來保護常見 的網絡服務,僅有限進程受到selinux控制,只監控容易被***的進程。
(4)minimum :centos7,修改targeted,只對選擇的網絡服務
注:targeted爲默認類型,minimum和mls穩定性不足,未加以應用,strict已不再使用。

三SElinux的安全上下文

Linux所有文件和端口資源和進程都具備安全標籤: 安全上下文(security context)
安全上下文有五個元素組成:
user:role:type:sensitivity:category
user_u:object_r:tmp_t:s0:c0


User:指示登錄系統的用戶類型,如root,user_u,system_u,多數本地進程都屬於自由(unconfined)進程
Role:定義文件,進程和用戶的用途:文件:object_r,進程和用戶: system_r
Type:指定數據類型,規則中定義何種進程類型訪問何種文件,Target策略基於type實現。
Sensitivity:限制訪問的需要,由組織定義的分層安全級別,
Category:對於特定組織劃分不分層的分類, 一個對象可以有多個categroy, Target 策略不使用category。


實際上下文:存放在文件系統中。
selinux
期望(默認)上下文:存放在二進制的SELinux策略庫(映射目錄和期望安全上下文)中
selinux

四:selinux的狀態

1.三種狀態:

enforcing:強制,每個受限的進程都必須受限
permissive:允許,每個受限的進程違規操作不會被禁止,但是會被記錄於審計日誌。
disabled:禁用

2.selinux狀態設置的相關命令:

getenforce : 獲取selinux當前狀態
sestatus :查看selinux狀態
setenforce 0|1
0:設置爲permissive
1:設置爲enforcing
注:僅限制在selinux開啓狀態下切換,如果設置爲disable改爲其他兩個選項則需要重啓後生效。(修改/etc/selinux/config文件)
selinux
selinux

3.修改SELinux安全標籤

semanage fcontext -a -t httpd_sys_content_t '/app/website(/.*)?' :增加期望值

semanage fcontext -m -t var_log_t '/app/website(/.*)?':修改期望值

semanage fcontext -d '/app/website(/.*)?' 刪除期望值
selinux

selinux

4.Selinux端口標籤

semanage port -a -t http_port_t -p tcp 9527:增加端口號

semanage port -d -t http_port_t -p tcp 9527:刪除端口號
selinux

selinux

5.SELinux布爾值

getsebool -a :查看布爾值
selinux
總結:SELinux中對所有的文件都賦予一個type的文件類型標籤,對於所有的進程也賦予各自的一個domain的標籤。 domain標籤能夠執行的操作由安全策略裏定義。當一個進程試圖訪問一個文件或端口, Kernel中的策略執行服務器將檢查AVC (訪問矢量緩存Access Vector Cache), 在AVC中, 進程和文件的權限被緩存(cached),查找“應用+文件”的安全環境。然後根據查詢結果允許或拒絕訪問。而安全策略則定義主體讀取對象的規則數據庫,規則中記錄了哪個類型的主體使用哪個方法讀取哪一個對象是允許還是拒絕的,並且定義了哪種行爲是充許或拒絕。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章