linux中的內核級防火牆(SElinux)

SElinux是基於內核開發出來的一種安全機制,被稱之爲內核級加強型防火牆,有力的提升了系統的安全性。

SElinux的作用分爲兩方面:1.在服務上面加上標籤; 2.在功能上面限制功能

在linux系統中使用getenforce命令可以查看selinux的狀態:

Disabled爲關閉狀態,對服務和功能都沒有限制

Enforcing爲強制狀態,對服務和功能都進行限制

Permissive爲警告狀態,服務和功能可以使用,但會收到警告信息,可視爲對安全的提示

在selinux開啓狀態時,可使用setenforce 0|1 來調整selinux的狀態,0爲警告狀態,1爲強制狀態,如下圖所示:


selinux的狀態在配置文件/etc/sysconfig/selinux中也可以設置:


由於selinux是基於內核開發的,所以改變狀態以後,需要重啓內核,也就是關機以後才能夠生效

在selinux開啓的狀態下,可以看到文件的安全上下文的標籤:

輸入ls -Z 可以看到目錄下的文件和目錄的安全上下文標籤:


輸入 ls -dZ 可以看到目錄的上下文標籤:

這個時候,匿名用戶登陸本機的ftp,是可以看到目錄中的文件的:

如果修改了目錄的安全上下文,匿名用戶在訪問的時候便不能看到其中的內容:

將目錄/pub的安全上下文修改:

匿名用戶訪問時的狀態:

所有說只有通過selinux認證的標籤才能夠讓匿名用戶訪問

上面用chcon命令修改的標籤,在系統重啓之後,又會變會原來可見的標籤,這說明這個命令對標籤的修改只是暫時的

想要永久修改文件或者目錄的標籤就要用到 semanage命令:

semanage fcontext -a -t public_content_t '/var/ftp/pub(/.*)?' 

restorecon -FvvR /var/ftp/pub/   將標籤修改進行刷新,即同步

可以將/pub目錄和目錄中的文件都修改爲public_content_t標籤,也就是匿名用戶訪問ftp時可見的標籤:

再用匿名用戶訪問時,便可看見/pub目錄中的內容:


selinux對功能的限制:

輸入命令 getsebool -a | grep ftp  可以看到selinux對服務的限制狀態:

命令setsebool -P 可以開啓和關閉指定功能:

比如開啓匿名用戶上傳功能:ftpd_anon_write

然後配置文件中也設置了可以讓匿名用戶又上傳權限:

然後匿名用戶上傳卻被拒絕了:

這個時候不要忘記修改目錄的安全上下文,除了可見之外,還要加上rw權限:

然後再用匿名用戶上傳,上傳成功:

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