通過兩個案例初步瞭解Linux下selinux的安全機制工作機制
通過兩個案例初步瞭解Linux下selinux的安全機制工作機制
SELinux 是 2.6 版本的 Linux 核心中提供的強制訪問控制 (MAC)系統。對於目前可用的 Linux 安全模組來說,SELinux 是功能最全面,而且測試最充分的,它是在 20 年的 MAC 研究基礎上建立的。SELinux 在型別強制伺服器中合併了多級安全性或一種可選的多類策略,並採用了基於角色的訪問控制概念。
selinux預設配置在/etc/sysconfig/selinux裡
預設有三種級別
enforcing級別:Linux下selinux所設定的安全策略都會被啟用.所有與selinux安全策略有關的服務或者程式都會被策略阻止.
permissive級別:Linux下selinux所設定的安全策略都會被啟動,但是所有與selinux安全策略有關的服務或者程式不會被策略組織,但是會收到警告.
disabled級別:關閉selinux,相當於系統沒有安裝selinux一樣.
一般可以通過getenforce檢視selinux的執行級別.也可以通過setenforce 0 或者1 設定selinux的執行級別,級別0表示Permissive模式,級別1表示Enforcing模式. 至於disabled模式和其他模式的切換隻能修改配置檔案,命令不起作用.其次,修改完成之後,必須重啟系統才能夠生效.
如果想通過一些命令管理selinux,必須安裝setroubleshoot包.光碟裡有,直接安裝即可.由於存在很多依賴關係,建議建立yum源指向光碟,然後通過yum安裝.
接下來我們通過兩個案例初步連結selinux的安全機制
案例一:vsftpd在selinux的Enforcing模式下 普通使用者訪問不了的處理辦法.
安裝vsftpd包,為客戶端提供ftp服務,預設rhel6桌面安裝會自動安裝vsftpd服務,如果沒有安裝通過rpm命令或者構建yum源安裝,安裝完成之後,啟用vsftpd服務.
預設情況下,linux裡面普通使用者的ftp訪問目錄為使用者的宿主目錄,為了方面測試,建立幾個檔案,並且起初設定selinux模式為permissive模式。
在客戶機windows上通過ftp://192.168.100.101/訪問,然後輸入普通使用者的使用者名稱及密碼,即可訪問到這個使用者的宿主目錄.
現在我們設定selinux模式為Enforcing模式
再次通過普通使用者訪問,發現訪問失敗.這是為什麼呢,這是受到了selinux的布林值的影響.
可以看得出是selinux在作怪,我們可以通過man ftpd_selinux 檢視ftpd的selinux訪問策略.
通過man註釋可以看到命令 “setsebool –P ftp_home_dir 1”可以開放這個策略
我們也可以通過getsebool –a命令檢視所有selinux管理的所有服務訪問策略情況(布林值),ftp_home_dir預設為off關閉狀態,也就是不允許通過的意思.
通過setsebool –P ftp_home_dir 1開啟ftp_home_dir布林值.
再次訪問就可以實現了
案例二:在Linux selinux開啟enforcing的模式下,開啟web服務,將其他地方的網站主配置資訊index.html copy到網站的根目錄訪問不了的處理辦法.
安裝httpd軟體包,預設rhel6.3桌面版本已經安裝了apache的軟體包httpd
預設情況下,在/var/www/html/目錄下沒有網站的資料,訪問會顯示以下資訊.
我們在這個目錄下寫一個主頁index.html
開啟selinux到enforcing模式,可以通過web瀏覽器訪問.
我們從其它目錄比如/root目錄下寫一個index.html檔案copy到httpd的根目錄下
設定selinux級別為permissive模式,可以訪問.
設定selinux模式為Enforcing模式,卻不能訪問了,這是為什麼呢?這是受到了了selinux的context值的影響.
我們可以通過ls –Z 可以檢視檔案的context值如下.預設情況下在任何一個目錄建立文件會繼承上級目錄的context值, 可以看出來index.html的context值繼承的是/root目錄的context值,而在/var/www/html/目錄下建立檔案預設的context值為httpd_sys_content
我們可以通過 chcon –t命令修改index.html的context值
修改完成之後,即可實現訪問.
總計:通過以上兩個簡單案例可以看到selinux的enforcing模式是通過布林值或者context值來決定selinux的安全策略機制的.而我們可以通過setsebool –P 命令設定布林值,通過chcon –t 設定context值(必須安裝setroubleshoot包才能用以上兩個命令)
本文轉自凌激冰51CTO部落格,原文連結:http://blog.51cto.com/dreamfire/1091653,如需轉載請自行聯絡原作者
相關文章
- 通過golang小案例,瞭解golang程式常見機制Golang
- 詳解Java Socket的工作機制Java
- ORACLE的工作機制Oracle
- Java SPI機制,你瞭解過嗎?Java
- 理解Linux 中sed命令的工作機制Linux
- ORACLE的工作機制-1Oracle
- ORACLE的工作機制-2Oracle
- ORACLE的工作機制-3Oracle
- ORACLE的工作機制-4Oracle
- ORACLE的工作機制-5Oracle
- ORACLE的工作機制(簡)Oracle
- 通過10104閱讀hash join工作機制 ---Multipass
- 通過10104閱讀hash join工作機制 ---OnePass
- 通過10104閱讀hash join工作機制 ---Optimal
- Java鎖機制瞭解一下Java
- Java 鎖機制瞭解一下Java
- oracle工作機制(1)Oracle
- oracle工作機制(2)Oracle
- oracle工作機制(轉)Oracle
- 使用CoordinatorLayout過程中遇到的兩個問題以及淺析CoordinatorLayout工作機制
- 冷門的 Java 應用程式安全沙箱機制瞭解一下Java
- Linux安全機制Linux
- HDFS成員的工作機制
- 【系統之音】WindowManager工作機制詳解
- 詳解 nginx php-fpm 工作機制NginxPHP
- Hadoop框架:DataNode工作機制詳解Hadoop框架
- Hadoop框架:NameNode工作機制詳解Hadoop框架
- JVM結構、GC工作機制詳解JVMGC
- COW奶牛!CopyOnWrite機制瞭解一下
- Handler 機制再瞭解
- HTTPS的安全通訊機制HTTP
- 基於linux下的selinux強制訪問控制Linux
- MapReduce之MapTask工作機制APT
- oracle工作機制導圖Oracle
- Linux的安全機制(轉)Linux
- 圖文詳解 HDFS 的工作機制及其原理
- COW奶牛!Copy On Write機制瞭解一下
- Mysql鎖機制簡單瞭解一下MySql