Linux下SElinux的解決方案

2021-09-29 15:30:46 字數 3103 閱讀 7154

selinux,核心級加強型防火牆。它是強制訪問控制(mac)安全系統,是linux歷史上最傑出的新安全系統。對於linux安全模組來說,selinux的功能是最全面的,測試也是最充分的,這是一種基於核心的安全系統。

selinux三個模式:

1> enforcing 強制(強制模式)— selinux 策略強制執行,基於 selinux 策略規則授予或拒絕主體對目標的訪問;

2> permissive 寬容(警告模式)— selinux 策略不強制執行,不實際拒絕訪問,但會有拒絕資訊寫入日誌;

3> disabled 禁用(關閉模式)— 完全禁用selinux;

在配置檔案"/etc/sysconfig/selinux"下將"selinux=enforcing"改為"selinux=disabled",因為selinux是基於核心的安全系統,所以在設定完成之後需要用命令 reboot 重啟核心,即需要重啟電腦才可以生效。

用命令 vim /etc/sysconfig/selinux 開啟編輯檔案:

selinux=disabled      

關閉狀態

selinux=enforcing

強制狀態

selinux=permissive

警告狀態

舉例說明:比如在做ftp服務時,我將selinux設定為關閉狀態,ftp服務的功能可以正常使用,但我現在將selinux設定為開啟狀態,ftp的一些服務就不能正常使用了。

1> 用命令 vim /etc/sysconfig/selinux  可編輯selinux配置檔案;

2>用命令 getenforce 檢視selinux狀態;

3>用命令 setenforce  加 0 或1 來 改變selinux的狀態 ,0 表示 permissive, 1表示enforcing。

注意:命令方式只能使selinux在警告狀態和強制狀態中切換,設定selinunx開啟到關閉或關閉到開啟,必須用更改配置檔案的方式。

1>用命令 ls -zd /dir 顯示指定目錄安全上下文 ,其中 「z」表示顯示selinux 上下文;

2>臨時更改:

用命令 chcon -t  加安全上下文檔案可臨時更改檔案安全上下文,例如用命令 chcon -t public_content_t /westos/ -r 可臨時更改westos安全上下文為public_content_t,其中 -r 表示遞迴。

注意:/var/ftp/… 這個目錄裡面的檔案,安全上下文是固定的,而其他目錄中的檔案安全上下文不是固定的,所以更改是臨時的,在更改狀態並重啟後設定會還原。

3>永久更改:

1>>用命令 semanage fcontext -l 檢視安全上下文檔案目錄;

2>>用命令 semanage fcontext -a -t public_content_t '/westos(/.*)?' 設定westos目錄下的檔案安全上下文為public_content_t;其中(/.*)表示目錄本身和裡面的所有內容。

3>>用命令 semanage fcontext -l | grep westos 檢視目錄中westos安全上下文;

4>>用命令 restorecon -rvvf /westos/  進行重新整理;

5>>用命令 ls -zd /westos 進行檢視,此時安全上下文被固定為 public content t:s。

1>sebool值是控**務功能的開關;

2>用命令 getsebool -a | grep 後加服務名稱來檢視指定服務布林值;例如用命令 getsebool -a | grep ftp 來檢視ftp服務布林值;

3>用命令 setsebool -p 服務名稱 on|off  來開啟或者關閉某個具體的服務,在這裡on=1表示開啟,off=0表示關閉;

4>用命令 setsebool -p ftpd_anon_write on  來開啟匿名使用者上傳功能;但此時仍不能完成寫功能,需要輸入命令 semanage fcontext -a -t public_content_rw_t  "/var/ftp/pub(/.*)?"來增加 /var/ftp/pub下上下文的寫許可權,用命令 restorecon -rvvf /進行重新整理,此時,就可以完成寫功能。

測試1:

在設定bool值之前使用本地使用者無法上傳檔案,設定後可以上傳,同時bool值是selinux給系統附加的乙個開關,要實現功能必須保證功能本身是開啟的,再設定bool值,功能才能正常使用;

測試2:

在設定bool值之前使用匿名使用者無法上傳檔案,設定後發現也不能上傳,此時我們就需要用到安全上下文中的內容,去更改pub目錄的安全上下文,更改後才可以正常上傳。

1>軟體安裝:

用命令 yum install setroubleshoot-server -y   安裝此軟體,這個軟體會提供解決策略;

用命令 cat /var/log/messages  檢視日誌(日誌中有解決策略);

2>工作原理:

setroubleshoot-server 偵聽 /var/log/audit/audit.log 中的審核資訊並將簡短摘要傳送至 /var/log/messages

/var/log/audit/audit.log 用於在該檔案中生成所有事件的報告

3>測試:

用命令 touch /mnt/file 建立 /mnt/ 目錄下的 file 檔案;

用命令 mv /mnt/file   /var/ftp/pub 移動 /mnt/file 到 /var/ftp/pub;

用命令 > /var/log/audit/audit.log 清空該日誌檔案中的內容;

用命令 > /var/log/messages 清空該日誌檔案中的內容;

用命令 lftp ip 檢視pub目錄下的檔案沒有看到file;

用命令cat /var/log/audit/audit.log 可以看到檢視mnt被拒絕的記錄;

用命令 cat /var/log/messages 可以看到解決策略;

然後,執行 restorecon -v 『/pub/file』。

4>解決:

用命令 restorecon -v /var/ftp/pub/file來解決此類問題,此時,再進入lftp就可以看到file。

注意:必須安裝 setroubleshoot-server 軟體包 , 才能將selinux訊息傳送至 /var/log/messages

關於linux下的selinux

1.mac 對訪問的控制徹底化,對所有的檔案 目錄 埠的訪問都是基於策略設定的,可由管理員時行設定 2.rbac 對於使用者只賦予最小許可權。使用者被劃分成了一些role 角色 即使是root使用者,如果不具有sysadm r角色的話,也不是執行相關的管理。role可以執行哪些domain,也是可以...

linux下selinux與安全上下文的配置

安全上下文 所有的作業系統訪問控制都是基於與主體和客體相關的訪問控制屬性的。在selinux中,訪問控制屬性杯稱作安全上下文。所有的客體 檔案,程序間通訊,通訊管道,套接字,網路主機等 和主體 程序 有乙個和他們相關的單一安全上下文。乙個安全上下文有三個元素 使用者,角色和型別識別符號。本次使用ft...

Linux之強大的selinux

簡單點說,selinux就是用來加強系統安全性的。它給一些特定程式 這些程式也在不斷增加 做了乙個沙箱,它將檔案打上了乙個安全標籤,這些標籤屬於不同的類,也只能執行特定的操作,也就是規定了某個應用程式設定了你可以訪問那些檔案或目錄。這裡比較重要的知識點有 檢視selinux當前狀態 一 工作原理 二...