1. SElinux基本安全概念
- SELINUX ( 安全增強型 Linux ) 是可保護你係統安全性的額外機制
- 在某種程度上 , 它可以被看作是與標準權限系統並行的權限系統。在常規模式中 , 以用戶身份運行進程 ,並且系統上的文件和其他資源都設置了權限 ( 控制哪些用戶對哪些文件具有哪些訪問權 SELINUX 的另一個不同之處在於 , 若要訪問文件 , 你必須具有普通訪問權限和 SELINUX 訪問權限。因此 , 即使以超級用戶身份 root 運行進程 , 根據進程以及文件或資源的 SELinux 安全性上下文可能拒絕訪問文件或資源限 ) 標籤。
2. selinux功能
- selinux:內核級加強型防火牆
- 當selinux開啓會給系統的每一個文件及程序加載安全上下文,特定安全上下文的程序只能訪問特定安全上下文的文件
- 當selinux 開啓會對服務本身相對不安全功能加載開關sebool,並且設定開關爲關閉狀態以保證服務安全性;當需要此功能時需要超級用戶手動調節
在selinux關閉狀態下:
1.創建/mnt/testfile文件,文件的安全上下文爲空文件
2.將/mnt/testfile文件移動到ftp默認發佈目錄中,可以被客戶機訪問,並且客戶可以上傳文件
3.ftp程序安全上下文爲空
在selinux開啓狀態下:
1.編寫/etc/sysconfig/selinux配置文件,開啓selinux,重啓系統
2.創建/mnt/linuxfile,查看文件安全上下文,將文件移動到ftp默認發佈目錄,查看默認發佈目錄安全上下文,與/mnt/linuxfile安全上下文不一致
3.在客戶端訪問ftp,無法訪問到linuxfile文件,同時不能上傳文件
3. selinux狀態
- 查看selinux狀態:getenforce
- 狀態類型:
狀態 | 解釋 |
---|---|
Disabled | 關閉 |
enforcing | 強制模式 |
permissive | 警告模式 |
setenforce 0/1 | 臨時設定selinux狀態;0表示警告模式,1表示強制模式 |
- 永久設定selinux狀態:編寫/etc/sysconfig/selinux文件,修改配置文件後要重啓系統
4. 安全上下文
4.1 安全上下文的臨時更改
- chon -t <安全上下文> 文件
- chon -R -t <安全上下文> 目錄
示例:
查看/var/ftp目錄下的安全上下文,linuxfile的安全上下文爲mnt_t,修改安全上下文爲public_content_t,再次查看安全上下文,修改成功
4.2 永久更改安全上下文
1.查看/ftpuserdir目錄和/var/ftp目錄的安全上下文分別爲:default_t public_content_t
2.查看內核安全上下文列表,/ftpuserdir目錄無信息,/var/ftp目錄有列表信息
3.給/ftpuserdir目錄添加列表信息,指定安全上下文:public_content_t ,再次查看列表信息,添加成功。(/.*)?表示目錄中的文件也隨之改變
4.查看安全上下文,當下不生效,刷新文件,再次查看,/ftpuserdir目錄的安全上下文爲public_content_t
5. sebool
- sebool是selinux對服務功能可以添加的開關
- getsebool -a | grep ftp #查看ftp功能的開關
- setsebool -P <功能>=[1|0|on|off] ##1和 on 表示開啓,0和off表示關閉; -P表示永久生效
6. setrouble
1.在主機中安裝setroubleshoot軟件,用來selinux的排錯;默認已安裝,不確定可搜索軟件包,再次安裝
2.分析日誌並提供解決方案