selinux的初級用法
#################
1.selinux的作用
################
selinux核心級加強型防火牆,是可以保護系統安全性的額外機制。
其通過檢查安全上下文來限制訪問
在服務端/mnt/目錄下建立westos檔案,並將westos移動到/var/ftp/pub/下
匿名登陸lftp服務,發現westos轉移了過去
此時服務端selinux=disabled
編輯配置檔案/etc/sysconfig/selinux
開啟selinux服務
重啟
在/mnt/目錄下建立hello檔案,並且將該檔案移動到/var/ftp/pub下
匿名登陸lftp服務,發現hello檔案不存在
##########################
2修改安全上下文
##########################
不能看到的原因是
vsftpd只能識別public_content_t的標籤
ls -Z #檢視檔案的安全上下文
ls -Zd #檢視目錄的安全上下文
ps auxZ | grep vsftpd
檢視ftp的安全上下文
chcon -t
臨時修改安全上下文
如何永久修改安全上下文
建立目錄/test
在目錄之下建立檔案file{1…3}
檢視安全上下文
semanage fcontext -a -t public_content_t ‘/(目錄)(/.*)?’
把目錄下的所有檔案的安全上下文修改為public_content_t
restorecon -FvvR /(目錄)/
重新整理這個目錄下所有的檔案的安全上下文變為同類
semanage fcontext -l | grep test
##檢視與/test有關的安全上下文
###############################
3.在selinux開啟的情況下影響其他程式
###############################
關閉seliunx時put上傳檔案可以
開啟selinux後上傳失敗,原因是安全上下文沒有開啟並且只有讀許可權
我們需要開啟上傳開關並且修改安全上下文的許可權
getsebool -a | grep ftp
#檢視ftp服務的安全開關,可見所有都關閉了
setsebool -P ftpd_anon_write on
開啟上傳檔案的開關
但此時上傳還是失敗,原因是寫許可權沒開
chcon -t public_content_rw_t /var/ftp/pub/
ls -Zd /var/ftp/pub/
檢視安全上下文具體內容可見寫許可權已開
連線後上傳檔案報錯550是因為配置檔案沒有設定匿名上傳檔案
anon_upload_enable=YES
重讀後上傳
#####################
4.如何排錯
#####################
selinux的日誌在 /var/log/audit/audit.log
但是這個地方不提供排錯方法
cat /var/log/messages
這裡能提供排錯方法但不考慮安全性
這個軟體是setroubleshoot
解除安裝掉後不會提供建議
記不清可以yum search setrouble
搜尋該軟體
rpm -qa | grep setroubleshoot檢視是否已安裝