SELinux(Security Enhanced Linux),以下是SELinux的三種類型實(shí)際操作流程示意圖:
意義:
傳統(tǒng)的Linux權(quán)限控制采用自主式權(quán)限控制(Discretionary Access Control, DAC),依據(jù)程序擁有者和資源的rwx權(quán)限決定有無存取能力.這樣存在root賬戶盜用可以使用任何資源和目錄如果被設(shè)為777權(quán)限而導(dǎo)致任意存取和操作的問題.SELinux采用MAC(Mandatory Access Control, MAC).在訪問資源時(shí),判斷程序是否有權(quán)限,而不是判斷用戶.所以,即使不小心httpd被 取得了控制權(quán),他也無權(quán)瀏覽/etc/shadow 等重要的文檔.開啟SELinux后,訪問文件會(huì)經(jīng)過SELinux權(quán)限控制和普通的用戶資源rwx權(quán)限控制.
SELinux 是整合到核心的一個(gè)核心功能,不需要啟動(dòng)什么額外的服務(wù)來開啟SELinux.開機(jī)完成后,SELinux也就啟動(dòng)了.
策略模式:
SELinux 的運(yùn)作策略:
targeted:針對(duì)網(wǎng)路服務(wù)限制較多,針對(duì)本機(jī)限制較少,是預(yù)設(shè)的政策;
strict:完整的SELinux 限制,限制方面較為嚴(yán)格.
三種模式:
enforcing:強(qiáng)制模式,代表SELinux運(yùn)作中,且已經(jīng)正確的開始限制domain/type了;
permissive:寬容模式:代表SELinux運(yùn)作中,不過僅會(huì)有警告訊息并不會(huì)實(shí)際限制domain/type的存取.這種模式可以運(yùn)來作為SELinux的debug之用(看下什么原因?qū)е聼o法訪問);
disabled:關(guān)閉.
查詢SELinux當(dāng)前模式:getenforce
查詢SELinux當(dāng)前policy詳細(xì)信息:sestatus
打開關(guān)閉:
臨時(shí)關(guān)閉SELinux: setenforce 0 (設(shè)置SELinux 成為permissive模式)
臨時(shí)打開SELinux: setenforce 1 (設(shè)置SELinux 成為enforcing模式)
徹底關(guān)閉SElinux: vi /etc/selinux/config 設(shè)置SELINUX=disabled ,重啟生效
log:
以下服務(wù)可以記錄當(dāng)發(fā)生SELinux 錯(cuò)誤時(shí),將那些有用的資訊記錄到log,用以提供解決的方案:
setroubleshoot(只記錄錯(cuò)誤信息)
auditd(記錄詳細(xì)信息)
基本使用:
安全性本文(Security Context)查看:
ls -Z
安全性本文主要用冒號(hào)分為三個(gè)欄位
Identify:role:type
身份識(shí)別:角色:類型
身份識(shí)別(Identify):
root:表示root的帳號(hào)身份,如同上面的表格顯示的是root home目錄下的資料
system_u:表示系統(tǒng)程序方面的識(shí)別,通常就是程序
user_u:代表的是一般使用者帳號(hào)相關(guān)的身份
角色(Role):
object_r:代表的是檔案或目錄等檔案資源,這應(yīng)該是最常見的
system_r:代表的就是程序啦!不過,一般使用者也會(huì)被指定成為system_r
類型(Type) :(最重要!)
程序的domain要和文件的type相搭配,才能有權(quán)限訪問.
每個(gè)目錄或檔案都會(huì)有預(yù)設(shè)的安全性本文
查詢?cè)黾有薷念A(yù)設(shè)的安全性文本:semanage
將文件修改為當(dāng)前目錄默認(rèn)的安全性文本:
restorecon -Rv /var/www/html/index.html
將文件目錄安全性文本設(shè)置為和另一個(gè)文件目錄一樣:
chcon -R --reference=/var/lib/ref_file target_file
可以設(shè)置和修改訪問規(guī)則,可以修改目錄默認(rèn)安全性文本.