SELinux 核心級加強型火牆

2021-09-29 14:48:36 字數 3923 閱讀 8042

selinux(security-enhanced linux) 是美國****局(nsa)對於強制訪問控制的實現,是 linux歷史上最傑出的新安全子系統。nsa是在linux社群的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,程序只能訪問那些在他的任務中所需要檔案。

selinux特點:

1.mac

對訪問的控制徹底化,對所有的檔案、目錄、埠的訪問都是基於策略設定的,可由管理員時行設定。

2. rbac

對於使用者只賦予最小許可權。使用者被劃分成了一些role(角色),即使是root使用者,如果不具有sysadm_r角色的話,也不是執行相關的管理。**role可以執行哪些domain,也是可以修改的。

3.安全上下文

所有的作業系統訪問控制都是主體和客體的相關訪問控制屬性,在selinux,訪問控制屬性稱為安全上下文,安全上下文是乙個簡單的、一致的訪問控制屬性,所有客體(檔案,程序間通訊,通訊管道,套接字,網路主機等)和主體(程序)有乙個和客體和他們相關的單一安全上下文,乙個程序的型別通常稱為域,域和域型別都一樣,即都是安全上下文的』type』,乙個安全上下文是由角色,使用者和型別識別符號。

getenfore ###檢視selinux當前狀態

selinux有三種模式:

模式作用

enforcing

強制模式。代表selinux在執行中,且已經開始限制domain/type之間的驗證關係

permissive

寬容模式。代表selinux在執行中,不過不會限制domain/type之間的驗證關係,即使驗證不正確,程序仍可以對檔案進行操作。不過如果驗證不正確會發出警告

disabled

關閉模式。selinux並沒有實際執行

如果是enforcing和permissive模式之間的轉化,利用命令即可生效:

setenforce 0 (寬容模式)| 1 (強制模式)

而這兩種模式想切換到disbaled,需在:

vim /etc/sysconfig/selinux 中修改:

selinux=disabled

且修改後重啟才能生效。

當selinux開啟時,每個程式每個檔案都有特定的安全上下文。特定安全上下文的程式只能訪問特定安全上下文的檔案。如果我們可以改變安全上下文,使得程式可以訪問目標檔案。

1.建立檔案的安全上下文

touch /mnt/file ###在mnt目錄下建立file檔案

mv /mnt/file /var/ftp/pub

touch /var/ftp/pub/file1

ls -z /var/ftp/pub ###檢視安全上下文

lftp 172.25.70.251 檢視,因為安全上下文不一樣的原因,無法檢視到從mnt目錄移動的檔案。

2.臨時修改安全上下文

chcon -t public_content_t /var/ftp/pub/file ###修改檔案的安全上下文

修改完成後,lftp就可以檢視到那個移動過來的檔案了。

但是注意:這種修改方式是臨時的。在selinux模式更換為disabled再啟用enforcing後,更改失效

3.永久修改安全上下文

1. mkdir /westos             ###建立新目錄 

2. touch /westos/file

###建立新目錄下的檔案

3. semanage fcontext -l |

grep /var/ftp ###檢視有關/var/ft的安全上下文

4. semanage fcontext -a -t public_content_t '/westos(/.*)?'

###將目錄裡的所有檔案修改為指定的安全上下文

這樣即可將目錄裡的所有檔案修改為指定的安全上下文。

並且這樣的檔案,移動後ltfp也可檢視到。

當seliuinx開啟enforcing模式時,所有程式都會被加上乙個開關,這個開關就是bool值。當bool值為0時,程式關閉;bool值為1時,程式開啟。

1.修改bool值

getsebool -a |grep ftp ###檢視有關ftp服務的程式的bool值

==setsebool -p ftp_home_dir ==###開啟進入家目錄功能

2.開啟匿名使用者上傳功能

selinux enforcing模式時,匿名使用者不能上傳檔案。這也是因為程式bool值為0,被關閉的原因。

修改配置檔案:

vim /etc/vsftpd/vsftpd.conf

修改:anon_upload_enable=yes

修改bool值:

setsebool ftpd_anon_write on###開啟匿名使用者上傳程式

/var/ftp/pub是唯讀的,修改其安全上下文:

semanage fcontext -a -t public_content_rw_t 『/var/ftp/pub(/.*)?』

restorecon -rvvf /var/ftp/pub

selinux的日誌檔案儲存在/var/log/audit/audit.log檔案中

selinux的問題解決方案在/var/log/messages檔案中

模擬問題:

1.touch /mnt/file10086 

2.mv /mnt/file10086 /var/ftp/pub

在mnt目錄下建立檔案並將其移動到ftp的預設發布目錄。

3. > /var/log/audit/audit.log

4. > /var/log/messages

情況日誌

3.lftp 172.25.70.251

進入pub目錄無法看到移動的file10086檔案

此時,檢視日誌。

1. cat /var/log/audit/audit.log  ###檢視出現的問題

2. cat /var/log/messages ###檢視解決方法

它會列出解決辦法

而這個解決辦法其實是由setroubshoot-server軟體提供的。

解除安裝setroubshoot-server軟體後,清空日誌。

再進入/var/ftp/pub目錄檢視檔案,看不見那個移動的檔案。

再次檢視日誌:

發現沒有解決辦法了。

再次安裝,發現又有解決辦法了。

這說明了,selinux報錯的解決方案,由setroubleshoot-server軟體提供。

selinux 核心級加強型防火牆

3.監控selinux導致的錯誤資訊 舉例 修改檔案標籤從而在apache通過檔案訪問本地目錄 背景 setenforce 1 開啟selinux 步驟 hostname var www html hello.html date f mnt scq.html mv mnt scq.html var ...

Linux 核心級加強型火牆

檢視 getenforce 開啟後給每個檔案和程式新增標籤 安全上下文 匹配則可以訪問 檔案是功能標籤 程式是加了波爾開關 修改狀態檔案 狀態 enforcing 強制 拒絕訪問,有警告資訊 permissive 警告 可以訪問,有警告資訊 disabled 關閉 切換 setenforce 0 切...

linux中核心級加強型火牆管理

安全上下文的作用 特定安全上下文的程式只能訪問特定安全上下文的檔案,否則訪問失敗,會被selinux拒絕 selinux的狀態及管理 開啟vim etc selinux config selinux disabled selinux關閉 selinux enforcing selinux開機設定為強...