NO IMAGE
1 Star2 Stars3 Stars4 Stars5 Stars 給文章打分!
Loading...

安全上下文
1.selinux的disable和enforcing,以及永久設定
    mkdir /westos
    touch /westos/file

    vim /etc/vsftpd/vsftpd.conf
        anon_root=/westos
    
    lftp 172.25.254.119
    ls之後無法檢視到/westos

    ls -Zd /westos        //檢視/westos的安全上下文型別

    編輯檔案:vim /etc/selinux/config

    將selinux中的enforcing變為disabled,重啟,就可以檢視到/westos下的檔案

    chcon -t public_content_t /westos -R        //新增安全上下文型別
    可以檢視到/westos下的file
    semanage fcontext -a -t public_content_t ‘/westos(/.*)?’    //semanage用來查詢與修
    改selinux預設目錄的安全上下文。-a表示可以增加一些預設安全上下文型別,-t表示指定型別
    semanage fcontext -l | grep westos        //表示查詢
    restorecon -RvvF /westos        //R表示第歸,兩個v表示顯示,F表示重新整理

注意:(1)selinux會影響不同安全上下文的檔案檢視,也會影響 本地使用者 某些功能的使用(上傳),以及開啟某些功能的方法
    getsebool -a | grep ftp            //檢視ftp的功能開關狀態
    setsebool -P ftp_home_dir on        //表示開啟ftp功能,off表示關閉,-P表示永久有效

(2)selinux有兩個級別,強制和警告,會在日誌中顯示錯誤原因和改錯方法
    getenforce        //檢視selinux狀態
    setenforce 0         //修改級別為警告(permissive)
    setenforce 1        //修改級別為強制(enforcing)

(3)selinux本身日誌存放在/var/audit/audit.log中,由這個軟體(settroubleshoot)將其整理放進/var/log/messages

selinux管理工具semanage

Selinux極大的增強了Linux系統的安全性,能將使用者許可權關在籠子裡,如httpd服務,apache預設只能訪問/var/www目錄,並只能監聽80和443埠,因此能有效的防範0-day類的攻擊。舉例來說,系統上的 Apache 被發現存在一個漏洞,使得某遠端使用者可以訪問系統上的敏感檔案(比如 /etc/passwd
來獲得系統已存在使用者),而修復該安全漏洞的 Apache 更新補丁尚未釋出。此時 SELinux 可以起到彌補該漏洞的緩和方案。因為 /etc/passwd 不具有 Apache 的訪問標籤,所以 Apache 對於 /etc/passwd 的訪問會被 SELinux 阻止。

CentOS系統自帶的chcon工具只能修改檔案、目錄等的檔案型別和策略,無法對埠、訊息介面和網路介面等進行管理,semanage能有效勝任SELinux的相關配置工作

3.restorecon命令

restorecon命令用來恢復SELinux檔案屬性即恢復檔案的安全上下文。

假設CentOS安裝了apache,網頁預設的主目錄是/var/www/html,我們經常遇到這樣的問題,在其他目錄中建立了一個網頁檔案,然後用mv移動到網頁預設目錄/var/www/html中,但是在瀏覽器中卻打不開這個檔案,這很可能是因為這個檔案的SELinux配置資訊是繼承原來那個目錄的,與/var/www/html目錄不同,使用mv移動的時候,這個SELinux配置資訊也一起移動過來了,從而導致無法開啟頁面,具體請看下面的例項:

來自: http://man.linuxde.net/restorecon

假設CentOS安裝了apache,網頁預設的主目錄是/var/www/html,我們經常遇到這樣的問題,在其他目錄中建立了一個網頁檔案,然後用mv移動到網頁預設目錄/var/www/html中,但是在瀏覽器中卻打不開這個檔案,這很可能是因為這個檔案的SELinux配置資訊是繼承原來那個目錄的,與/var/www/html目錄不同,使用mv移動的時候,這個SELinux配置資訊也一起移動過來了,從而導致無法開啟頁面,具體請看下面的例項:

來自: http://man.linuxde.net/restorecon

假設CentOS安裝了apache,網頁預設的主目錄是/var/www/html,我們經常遇到這樣的問題,在其他目錄中建立了一個網頁檔案,然後用mv移動到網頁預設目錄/var/www/html中,但是在瀏覽器中卻打不開這個檔案,這很可能是因為這個檔案的SELinux配置資訊是繼承原來那個目錄的,與/var/www/html目錄不同,使用mv移動的時候,這個SELinux配置資訊也一起移動過來了,從而導致無法開啟頁面,具體請看下面的例項:

來自: http://man.linuxde.net/restorecon

假設CentOS安裝了apache,網頁預設的主目錄是

來自: http://man.linuxde.net/restorecon

假設desktop安裝了apache,網頁預設的主目錄是/var/www/html,我們經常遇到這樣的問題,在其他目錄中建立了一個網頁檔案,然後用mv移動到網頁預設目錄/var/www/html中,但是在瀏覽器中卻打不開這個檔案,這很可能是因為這個檔案的SELinux配置資訊是繼承原來那個目錄的,與/var/www/html目錄不同,使用mv移動的時候,這個SELinux配置資訊也一起移動過來了,從而導致無法開啟頁面,具體請看下面的例項:

/*使用desktop舉例,如果預設沒有安裝apache,確保網路連線,使用下面的命令安裝*/
[[email protected] ~]# yum install httpd
 
/*我們在root的家目錄新建一個html檔案*/
[[email protected]~]# pwd
/root
[[email protected] ~]# vim index.html
/*隨便輸入一段文字,儲存退出*/
  welcome to westos
/*將這個檔案mv到網頁預設目錄下*/

[[email protected]~]# mv index.html /var/www/html/
注意:
* 這個時候我們使用firefox瀏覽器輸入127.0.0.1/index.html發現打不開,
* 檢視一下SELinux的日誌檔案,發現了下面這一段報錯資訊,從這個報錯資訊不難看出,
* 程序httpd訪問網頁主目錄中的index.html時被SELinux阻止,原因是因為,SELinux配置資訊不正確,
* 正確的SELinux配置資訊應該是scontext=後面的部分,
* 而index.html檔案的SELinux配置資訊卻是tcontext=後面的部分,
* 從tcontext=的第三段“admin_home_t”不難看出,這個檔案的SELinux配置資訊是root使用者家目錄的。
*/
type=AVC msg=audit(1378974214.610:465): avc: denied { open } for pid=2359 comm=”httpd” path=”/var/www/html/index.html” dev=”sda1″ ino=1317685 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:admin_home_t:s0 tclass=file
 
/*使用ls -Z也可以看出,檔案和目錄的SELinux資訊不匹配*/
[[email protected] html]# ls -Z /var/www/html/
…. unconfined_u:object_r:admin_home_t:s0 index.html
 
[[email protected] html]# ls -Zd /var/www/html/
…. system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
 
/*使用restorecon來恢復網頁主目錄中所有檔案的SELinux配置資訊(如果目標為一個目錄,可以新增-R引數遞迴)*/
[[email protected] html]# restorecon -R /var/www/html/

相關文章

程式語言 最新文章