1. 程式人生 > >Linux學習日記之seLinux的簡單管理

Linux學習日記之seLinux的簡單管理

1.seLinux
SELinux(Security-Enhanced Linux) 是美國國家安全域性(NSA)對於強制訪問控制的實現,是 Linux歷史上最傑出的新安全子系統。NSA是在Linux社群的幫助下開發了一種訪問控制體系,在這種訪問控制體系的限制下,程序只能訪問那些在他的任務中所需要檔案。SELinux 是 2.6 版本的 Linux 核心中提供的強制訪問控制(MAC)系統。對於目前可用的 Linux安全模組來說,SELinux 是功能最全面,而且測試最充分的。
2.selinux的三種狀態及檢視這三種狀態的命令
selinux的三種狀態
1)disable 關閉狀態
2)enforcing 強制狀態,如果違反安全策略,則無法執行,此時會有警告,警告資訊的檢視:cat /var/log/audit/audit.log
3)permissive 警告狀態,selinux仍然有效,即使違反策略,依然可以執行,此時會有警告,警告資訊的檢視:cat /var/log/audit/audit.log
3.selinux狀態的檢視
getenforce
3.selinux三種狀態的切換
關閉狀態和其他兩種狀態之間的切換,必須重啟系統(reboot),才能生效
警告狀態和強制狀態之間的切換(臨時設定),不需要重啟系統(reboot),立即生效
但是,警告狀態和強制狀態之間的切換(永久設定),需要重啟系統(reboot),才能生效
1.臨時設定(只限於強制狀態和警告狀態的切換)
系統重啟之後,又會恢復為原來的selinux狀態
set enforce 0 將selinux設定為警告狀態
Linux學習日記之seLinux的簡單管理


set enforce 1 將selinux設定為強制狀態
Linux學習日記之seLinux的簡單管理
2.永久設定
編輯配置檔案/etc/sysconfig/selinux
vim /etc/sysconfig/selinux
Linux學習日記之seLinux的簡單管理
如果臨時設定和永久設定的selinux狀態不同的時候,如果沒有重啟電腦,因為臨時設定是立即生效,而永久設定需要重啟系統之後才能生效,所以,此時,臨時設定的優先順序要高一些
三種狀態下,警告狀態與強制狀態會有警告日誌,關閉狀態沒有警告日誌
4.三種狀態產生的效果及警告日誌的檢視
(1)警告狀態(會有警告日誌)
與關閉狀態的效果相同,只是警告狀態有警告日誌;而關閉狀態不會由警告日誌
所有的檔案都可以看到
服務端
1)檢視selinux狀態為警告狀態
Linux學習日記之seLinux的簡單管理

2)清空日誌,(將空匯入)
Linux學習日記之seLinux的簡單管理
3)剪下檔案到/var/ftp(vsftpd服務的預設釋出目錄)
Linux學習日記之seLinux的簡單管理
Linux學習日記之seLinux的簡單管理
4)用客戶端用lftp命令連線服務端,因為selinux為警告狀態,所以會連線成功,能夠看到file檔案,並有警告日誌產生
Linux學習日記之seLinux的簡單管理
5)在服務端檢視是否有警告日誌產生
Linux學習日記之seLinux的簡單管理
有警告日誌產生
(2)強制狀態(會有警告日誌)
1)在服務端檢視selinux是否為強制狀態
Linux學習日記之seLinux的簡單管理
2)剪下檔案到/var/ftp(vsftpd服務的預設釋出目錄
Linux學習日記之seLinux的簡單管理
3)用客戶端連線,連線成功,因為selinux為強制狀態,所以不能看到file與efile檔案,併產生警告日誌
Linux學習日記之seLinux的簡單管理
4)檢視警告日誌
Linux學習日記之seLinux的簡單管理
(3)關閉狀態(無警告日誌)
1)在服務端檢視selinux狀態,為關閉狀態
Linux學習日記之seLinux的簡單管理
2)清空警告日誌,將空匯入
Linux學習日記之seLinux的簡單管理

3)剪下檔案到/var/ftp(vsftpd服務的預設釋出目錄)
Linux學習日記之seLinux的簡單管理
4)用客戶端連線,因為selinux為關閉狀態,所以連線成功並能夠看到所有檔案及目錄,並不會產生警告日誌
Linux學習日記之seLinux的簡單管理
5)在服務端檢視,並無警告日誌產生
Linux學習日記之seLinux的簡單管理
5.selinux的安全上下文的檢視與修改
強制狀態(enforcing)
當檔案的安全上下文與ftp的預設安全上下文(publiccontentt)一致時,才可以檢視剪下過來的檔案
安全上下文檢視
Linux學習日記之seLinux的簡單管理
(1)臨時修改安全上下文
1)對檔案來說:chcon -t publiccontentt /var/ftp/efile
服務端
Linux學習日記之seLinux的簡單管理
Linux學習日記之seLinux的簡單管理
客戶端
Linux學習日記之seLinux的簡單管理
但是如果目錄的上下文與ftp的預設上下文(publiccontentt)不一致時,雖然可以看到該目錄,但是目錄中的檔案的上下文不是publiccontentt,也看不到檔案
Linux學習日記之seLinux的簡單管理
Linux學習日記之seLinux的簡單管理
2)對目錄來說:chcon -t publiccontentt var/ftp/edir -R
在服務端:
修改安全上下文
Linux學習日記之seLinux的簡單管理
Linux學習日記之seLinux的簡單管理
在客戶端
Linux學習日記之seLinux的簡單管理
(2)永久修改安全上下文
服務端
semanage fcontext -a -t publiccontentt '/var/ftp/edir(/.)?' 修改/var/ftp/edir的目錄本身及目錄中的所有內容的安全上下文為publiccontentt
Linux學習日記之seLinux的簡單管理
Linux學習日記之seLinux的簡單管理
修改後,需要重新整理才能生效
restorecon -RvvF /var/ftp/edir
Linux學習日記之seLinux的簡單管理
Linux學習日記之seLinux的簡單管理
在客戶端測試
Linux學習日記之seLinux的簡單管理
能看到所有檔案與目錄,修改成功
5.sebool值
selinux布林值是更改selinux的開關;有時候,selinux的訪問許可權可選可通過selinux布林值觸發,可以提高系統安全性。
1)getsebool -a | grep ftp 顯示布林值,檢視功能的開啟或關閉狀態
Linux學習日記之seLinux的簡單管理
可以看到vsftpd服務的某些功能是預設關閉的
ftphomedir-------> off 表示本地使用者上傳檔案的功能沒有開啟
本地使用者上傳不允許
測試:
Linux學習日記之seLinux的簡單管理
上傳失敗
2.setsebool -P ftphomedir on 開啟本地使用者的上傳功能
Linux學習日記之seLinux的簡單管理
再次檢視是否修改成功
Linux學習日記之seLinux的簡單管理
修改成功
在客戶端測試:
Linux學習日記之seLinux的簡單管理
上傳成功
提供日誌的外掛:setroubleshoot-server.x8664*