selinux

基本 SELinux 安全性概念
SELinux (安全增強型 Linux )是保護您的系統的另一種方法。
假設我們希望允許遠程匿名訪問 Web 服務器,我們必須通過防火牆打開端口。然而,這意味着惡意人員可以嘗試利用安全漏洞以及,如果他們損壞 Web 服務器進程,獲得 apache 用戶和 apache 組的權限來強行進入系統。該用戶/組具有document root( /var/www/html )等的讀取權限以及/tmp./var/tmp和所有人均可寫的任何其他文件/目錄的寫入權限。
SELinux 是一組可確定哪個進程能訪問哪些文件、目錄、端口等的安全規則。每個文件、進程、目錄和端口都具有專門的安全標籤,稱爲 SELinux 上下文。上下文只是一個名稱, SELinux 策略使用它來確定某個進程是否能訪問文件、目錄或端口。默認情況下,該策略不允許任何交互,因此明確的規則授予訪問權限。如果沒有允許規則,則不允許訪問。SELinux 的目標之一是保護用戶數據免受已泄漏的系統服務的威脅。
SELinux 模式.爲了進行故障排除,我們可以臨時禁用 SELinux 保護,SELinux 模式有三種模式(1)強制模式enforcing(2)警告(許可)模式。permissive (3)禁用模式disabled。不過從enforing和permissive的互相轉換是即時生效的,直接使用setenforce 0|1 即可改變,然後從這兩種模式到disabled的轉換是需要重啓電腦的。getenforce用於顯示當前的selinux模式。
在強制模式中, SELinux 主動拒絕訪問嘗試讀取類型上下文爲 tmp_t 的文件的 Web 服務器。在強制模式中, SELinux 不僅記錄而且提供保護。許可模式通常用於對問題進行故障排除。在許可模式中,即使沒有明確規則, SELinux 也允許所有交互,並且記錄所有被拒絕的交互。此模式可以用於確定您是否有 SELinux 問題。無需重新引導即可從強制模式轉爲許可模式,或再從許可模式轉回強制模式。第三個模式禁用,將完全禁用 SELinux 。您必須重新引導才能徹底禁用 SELinux ,或者從禁用模式轉爲強制模式或許可模式。
[root@desktop40 Desktop]# cat /etc/selinux/config

  1. # This file controls the state of SELinux on the system. 
  2. SELINUXcan take one of these three values: 
  3. #     enforcing - SELinux security policy is enforced. 
  4. #     permissive - SELinux prints warnings instead of enforcing. 
  5. #     disabled - No SELinux policy is loaded. 
  6. SELINUX=enforcing 
  7. SELINUXTYPEcan take one of these two values: 
  8. #     targeted - Targeted processes are protected, 
  9. #     mls - Multi Level Security protection. 
  10. SELINUXTYPE=targeted  

2.許多處理文件的命令具有一個用於顯示或設置 SELinux 上下文的選項(通常是 -Z )。例如, ps 、 ls.cp 和 mkdir 都使用 -Z 選項顯示或設置 SELinux 上下文。如:ps -axZ ps -ZC /var/www/html。ls -Z,確定selinux上下文的通常是父目錄。將父目錄的上下文指定給新創建的文件,cp和touch等命令其作用,但是,如果文件在其他位置創建的並且保留了權限(與mv和cp -a一樣。)
semanage fcontext可用於顯示或者修改restorrecon用來設置默認文件的上下文的規則。它使用擴展正則表達式來指定路徑和文件名。fcontext規則中最常用的擴展正則表達式是(/.*)?,表示隨意地匹配/後跟任何數量的字符。本質上它將遞歸的與在表達式前面列出的目錄以及該目錄中所有內容相匹配。
restorecon 是 policycoreutil 軟件包的一部分, semanage 是 policycoreutil-python 軟件包的一部分。

另外兩種設置selinux的策略是:
chcon -t httpd_sys_context_t /virtual/ -R(-R是遞歸)
chcon -R --reference=/var/www/html  /virtual/ (以上兩種是比較簡單的設置selinux策略的,比較簡單,常用的哦!)
3.管理selinux的布爾值:
SELinux 布爾值是更改 SELinux 策略行爲的開關。 SELinux 布爾值是可以啓用或禁用的規則。安全管理員可以使用 SELinux 布爾值來調整策略,以有選擇地進行調整。getsebool 用於顯示布爾值, setsebool 用於修改布爾值。 setsebool -P 修改 SELinux 策略,以永久保留修改。 semanage boolean -l 將顯示布爾值是否永久。
getsebool -a (顯示當前所保存的所有的可用布爾值)
setsebool httpd_enabled_homedirs on (一次性的修改開機失效通過semanage boolean -l | grep httpd_enable_homedir可以查看永久的信息,經修改的項仍然是off的,getsebool -a | grep httpd_enable_homedir顯示的是當前的值顯示on的)
setsebool -P httpd_enabled_homedirs on  (永久修改的哦!semanage boolean -l | grep httpd_enable_homedir和getsebool -a | grep httpd_enable_homedir顯示的都是on的哦!)

4.關於監控selinux衝突
必須安裝 setroubleshoot-server 軟件包,才能將 SELinux 消息發送至 /var/log/messages 。setroubleshoot-server 偵聽 /var/log/audit/audit.log 中的審覈信息並將簡短摘要發送至 /var/log/messages 。摘要包括 SELinux 衝突的唯一標識符( UUIDs ),可用於收集更多信息。 Sealert -l UUID用於生成特定事件的報告。 Sealert -a /var/log/audit/audit.log 用於在該文件中生成所有事件的報告。

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