selinux

一、Selinux

       SELinux: Secure Enhanced Linux, 是美國國家安全局(NSA=The National Security Agency)和 SCC(Secure Computing Corporation)開發的 Linux的一個強制訪問控制的安全模塊。2000年以GNU GPL發佈,Linux內核2.6版本後集成在內核中

 • DAC:Discretionary Access Control自由訪問控制

 • MAC:Mandatory Access Control 強制訪問控制

 • DAC環境下進程是無束縛的 

• MAC環境下策略的規則決定控制的嚴格程度 •

 MAC環境下進程可以被限制的 

• 策略被用來定義被限制的進程能夠使用那些資源(文件和端口) 

• 默認情況下,沒有被明確允許的行爲將被拒絕

二、工作類型

 SELinux有四種工作類型:

 – strict: centos5,每個進程都受到selinux的控制 

– targeted: 用來保護常見的網絡服務,僅有限進程受到selinux控制,只監 控容易被***的進程,centos4只保護13個服務,centos5保護88個服務

 – minimum:centos7,修改的targeted,只對選擇的網絡服務 

– mls:提供MLS(多級安全)機制的安全性 • targeted爲默認類型,minimum和mls穩定性不足,未加以應用,strict已不再使用

三、Selinux安全上下文

3.1、實際上下文

安全上下文主要有五個元素組成:user:role:type:sensitivity:category 

實際上下文存放在文件系統中:ls -Z 查看文件的上下文關係  

                                                ps -Z   查看進程的上下文關係

      上下文關係是一個訪問控制屬性。在SELinux中,類型標識符是安全上下文中決定訪問的主要的部分。 
爲了簡便,這裏使用一臺機器既作客戶端又作服務端來進行實驗

image.png

因爲上下文訪問機制的原因,在客服機中只能查看到cp過去的文件看不見mv過去的文件。

        cp:會重新生成符合目錄本身的安全上下文 

             -c 複製到別目錄下,原context不變

             -a 所有的權限值不不變

        mv:只是單純將原有文件移動過去 不改變文件本身的屬性

image.png

3.1.2、修改Selinux安全標籤

修改context值,給文件重新打安全標籤

   chcon [OPTION]... [-u USER] [-r ROLE] [-t TYPE] FILE... chcon [OPTION]... --reference=RFILE FILE... 

              -R:遞歸打標;

image.png

恢復目錄或文件默認的安全上下文:restorecon [-R] /path/to/somewhere

image.png

3.1.3、設置Selinux

setenforce 0|1  在線切換警告模式|強制模式 (臨時生效)

getenforce 查看模式

sestatus 查看Selinux 狀態

       /etc/selinux/config   修改配置文件後重啓生效

SELINUX=enforcing                               

image.png

3.2、期望(默認)上下文

3.2.1、目錄期望值安全上下文查詢與修改

 Semanage來自policycoreutils-python包,使用前需安裝

1、目錄期望值

         查看目錄默認的安全上下文關係指令:semanage fcontext –l 

         添加目錄默認的安全上下文關係指令 :semanage fcontext -a (添加)-t type context path 

         刪除目錄默認的安全上下文關係指令 :semanage fcontext -d -t type context path 

image.png

image.png

image.png

2、端口號期望值

爲指定端口設置端口的期望值,設置成功後可以用semanage port -l查看所有或者指定查看

image.png

設置成功後看是否能重啓服務,成功重啓就說明端口的期望值設置成功。

刪除某一條端口期望值:semanage port -d -t port_label -p tcp|udp PORT 

image.png


3.2.2、selinux布爾值

 當selinux開啓時,系統默認會設置很多功能的開關,而且默認都是關閉的

         getsebool -a  查看布爾值

         semanage boolean -l -C 查看已修改過的所有布爾值 

       這裏用ftp做示例,ftp默認開啓的服務沒有支持用戶匿名上傳文件和目錄,修改/etc/vsftpd/vsftpd.conf中的默認設置,修改過後重啓服務。這個時候再上傳文件會發現還是不能成功的上傳文件,提示由原來的權限拒絕變成了不能創建這個目錄。

4EA$4HWA_08LT`X9C~UM75Y.png

      重啓後還是不能上傳的原因是系統上傳時用戶爲ftp用戶且服務器中ftp目錄的權限沒有寫權限,爲了立即生效這裏把權限改爲777,sellinux 0(這樣的操作存在風險性)。

image.png

可以在不關閉selinux的,設置特殊權限的情況下實現用戶的匿名上傳。

setsebool [-P] boolean value(on,off)或   -p表永久生效

 setsebool [-P] Boolean=value(0,1)

image.png

再通過ftp就可成功上傳文件

image.png


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