SELinux入门简介
? ? 操作系統(tǒng)有兩類訪問控制:自主訪問控制(DAC)和強(qiáng)制訪問控制(MAC)。標(biāo)準(zhǔn)Linux安全是一種DAC,SELinux為Linux增加了一個(gè)靈活的和可配置的的MAC。
? ? 進(jìn)程啟動(dòng)時(shí)所擁有的權(quán)限就是運(yùn)行此進(jìn)程的用戶權(quán)限,一個(gè)進(jìn)程能訪問哪些文件取決于該文件的主、組和其他權(quán)限,這就是DAC
? ? 如一個(gè)用戶運(yùn)行了進(jìn)程,運(yùn)行此進(jìn)程需要若干個(gè)文件,但該進(jìn)程具有的權(quán)限是與該用戶的權(quán)限一致,即該進(jìn)程能訪問此用戶能夠訪問的所有文件。Linux自身是無法限定某個(gè)進(jìn)程只能訪問其運(yùn)行需要的指定文件,因此MAC,就是不讓進(jìn)程在該用戶權(quán)限下訪問它不需要文件,即使進(jìn)程是有權(quán)限訪問的。
那么是如何實(shí)現(xiàn)的?
每個(gè)進(jìn)程啟動(dòng)時(shí),給它劃定一個(gè)范圍,只能訪問此范圍內(nèi)的資源。但是每種程序運(yùn)行依賴的資源或權(quán)限并不相同,并不可能為每一種程序制定范圍。所以有如下兩種工作級(jí)別。
SELinux工作級(jí)別
??????? restrict:每個(gè)進(jìn)程都受selinux的控制
??????? targeted:僅有限的進(jìn)程受到控制,通常只監(jiān)控容易受到入侵的進(jìn)程
SELinux工作模型
??????? 存在三種角色subject?? operation?? object
??????? subject:主體,操作的發(fā)起者
??????? operation:操作,主體能夠執(zhí)行什么樣的操作取決于客體所支持的操作
??????? object:客體,操作的作用對(duì)象
??????? 通常動(dòng)作的發(fā)起者是進(jìn)程,進(jìn)程可以對(duì)諸如文件或者進(jìn)程等對(duì)象執(zhí)行操作,那針對(duì)文件來說可以支持的操作有讀、寫、打開、關(guān)閉及更改權(quán)限等,針對(duì)進(jìn)程作為客體,執(zhí)行的操作有殺死、創(chuàng)建等
? ? 每一個(gè)進(jìn)程都有一個(gè)標(biāo)簽。操作系統(tǒng)中的每一個(gè)文件/目錄客體object也都有一個(gè)標(biāo)簽。甚至連網(wǎng)絡(luò)端口、設(shè)備,乃至潛在的主機(jī)名都被分配了標(biāo)簽。標(biāo)簽有五部分組成USER:ROLE:TYPE[LEVEL[:CATEGORY]]。user指的是SELinux的user非系統(tǒng)user,LEVEL和CATEGORY:定義層次和分類,只用于mls策略中。
? ? 進(jìn)程通過標(biāo)簽劃分在不同的域,文件通過標(biāo)簽定義為不同個(gè)類型。SElinux存在一規(guī)則庫,其中定義了哪種域能夠訪問哪些類型內(nèi)的文件。如某進(jìn)程要訪問一個(gè)文件,但是此進(jìn)程的域與文件的類型不在同一范圍內(nèi)那么要如何突破限制,這時(shí)候就要修改標(biāo)簽。
SELinux的策略通常是編譯成二進(jìn)制文件以加速訪問。
如何使用SELinux
??????? (1)? /etc/sysconfig/selinux打開或關(guān)閉SELinux
?????????????? SELINUX=enforcing|permissive|disabled
?????????????? 從disable狀態(tài)啟用,需要重啟系統(tǒng),讓系統(tǒng)上的所有文件重新打上標(biāo)簽。permissive不禁止,但會(huì)計(jì)入日志/var/log/audit/audit.log
?????????????? getenforce/setenforce 0|1? 獲取或更改當(dāng)前狀態(tài)
??????? (2)查看、更改文件標(biāo)簽
???????????? ps –Z :檢查進(jìn)程的安全上下文;
???????????? ls -Z :檢查文件、目錄的安全上下文
???????????? chcon [-u USER] [-r ROLE] [-t TYPE]
????????????? 一般目錄下的文件具有“目錄名_t”的類型,更改文件標(biāo)簽類型可以在不更改主(組)的情況下限制進(jìn)程對(duì)其的訪問。
????????????? 還原文件的默認(rèn)標(biāo)簽 ,restorecon [-R] path/file
??????? (3)SELinux的布爾型開關(guān)
?????????????? getsebool -a: 列出SELinux的所有布爾值
?????????????? setsebool: 設(shè)置SELinux布爾值,如:setsebool -P dhcpd_disable_trans=0,-P表示重啟后也能生效,直接寫入規(guī)則庫
參考:http://blog.csdn.net/myarrow/article/details/9856095/
轉(zhuǎn)載于:https://www.cnblogs.com/otherside/p/6683429.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的SELinux入门简介的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PHP中unset,array_spli
- 下一篇: 接口怎么实例化?