本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。
【資料圖】
SELinux是什么
安全增強(qiáng)型 Linux(Security-Enhanced Linux)簡(jiǎn)稱(chēng) SELinux,它是一個(gè) Linux 內(nèi)核模塊,也是 Linux 的一個(gè)安全子系統(tǒng)。
SELinux 主要由美國(guó)國(guó)家安全局開(kāi)發(fā)。2.6 及以上版本的 Linux 內(nèi)核都已經(jīng)集成了 SELinux 模塊。
SELinux 的結(jié)構(gòu)及配置非常復(fù)雜,而且有大量概念性的東西,要學(xué)精難度較大。很多 Linux 系統(tǒng)管理員嫌麻煩都把 SELinux 關(guān)閉了。
SELinux有什么用
SELinux 主要作用就是最大限度地減小系統(tǒng)中服務(wù)進(jìn)程可訪(fǎng)問(wèn)的資源(最小權(quán)限原則)。
我們知道,傳統(tǒng)的 Linux 系統(tǒng)安全,采用的是 DAC(自主訪(fǎng)問(wèn)控制方式),而 SELinux 是部署在 Linux 系統(tǒng)中的安全增強(qiáng)功能模塊,它通過(guò)對(duì)進(jìn)程和文件資源采用 MAC(強(qiáng)制訪(fǎng)問(wèn)控制方式)為 Linux 系統(tǒng)提供了改進(jìn)的安全性。
需要注意的是,SELinux 的 MAC 并不會(huì)完全取代 DAC,恰恰相反,對(duì)于 Linux 系統(tǒng)安全來(lái)說(shuō),它是一個(gè)額外的安全層,換句話(huà)說(shuō),當(dāng)使用 SELinux 時(shí),DAC 仍然被使用,且會(huì)首先被使用,如果允許訪(fǎng)問(wèn),再使用 SELinux 策略;反之,如果 DAC 規(guī)則拒絕訪(fǎng)問(wèn),則根本無(wú)需使用 SELinux 策略。
例如,若用戶(hù)嘗試對(duì)沒(méi)有執(zhí)行權(quán)限(rw-)的文件進(jìn)行執(zhí)行操作,那么傳統(tǒng)的 DAC 規(guī)則就會(huì)拒絕用戶(hù)訪(fǎng)問(wèn),因此,也就無(wú)需再使用 SELinux 策略。
相比傳統(tǒng)的 Linux DAC 安全控制方式,SELinux 具有諸多好處,比如說(shuō):
它使用的是 MAC 控制方式,這被認(rèn)為是最強(qiáng)的訪(fǎng)問(wèn)控制方式;
它賦予了主體(用戶(hù)或進(jìn)程)最小的訪(fǎng)問(wèn)特權(quán),這也就意味著,每個(gè)主體僅被賦予了完成相關(guān)任務(wù)所必須的一組有限的權(quán)限。通過(guò)賦予最小訪(fǎng)問(wèn)特權(quán),可以防止主體對(duì)其他用戶(hù)或進(jìn)程產(chǎn)生不利的影響;
SELinux 管理過(guò)程中,每個(gè)進(jìn)程都有自己的運(yùn)行區(qū)域(稱(chēng)為域),各進(jìn)程僅運(yùn)行在自己的域內(nèi),無(wú)法訪(fǎng)問(wèn)其他進(jìn)程和文件,除非被授予了特殊權(quán)限。
SELinux 可以調(diào)整到 Permissive 模式,此模式允許查看在系統(tǒng)上執(zhí)行 SELinux 后所產(chǎn)生的印象。在 Permissive 模式中,SELinux 仍然會(huì)記錄它所認(rèn)為的安全漏洞,但并不會(huì)阻止它們。
其實(shí),想要了解 SELinux 的優(yōu)點(diǎn),最直接的辦法就是查看當(dāng) Linux 系統(tǒng)上沒(méi)有運(yùn)行 SELinux 時(shí)會(huì)發(fā)生什么事情。
例如,Web 服務(wù)器守護(hù)進(jìn)程(httd)正在監(jiān)聽(tīng)某一端口上所發(fā)生的事情,而后進(jìn)來(lái)了一個(gè)請(qǐng)求查看主頁(yè)的來(lái)自 Web 瀏覽器的簡(jiǎn)單請(qǐng)求。由于不會(huì)受到 SELinux 的約束,httpd 守護(hù)進(jìn)程聽(tīng)到請(qǐng)求后,可以完成以下事情:
根據(jù)相關(guān)的所有者和所屬組的rwx權(quán)限,可以訪(fǎng)問(wèn)任何文件或目錄;
完成存在安全隱患的活動(dòng),比如允許上傳文件或更改系統(tǒng)顯示;
可以監(jiān)聽(tīng)任何端口的傳入請(qǐng)求。
但在一個(gè)受 SELinux 約束的系統(tǒng)上,httpd 守護(hù)進(jìn)程受到了更加嚴(yán)格的控制。仍然使用上面的示例,httped僅能監(jiān)聽(tīng) SELinux 允許其監(jiān)聽(tīng)的端口。SELinux 還可以防止 httpd 訪(fǎng)問(wèn)任何沒(méi)有正確設(shè)置安全上下文的文件,并拒絕沒(méi)有再 SELinux 中顯式啟用的不安全活動(dòng)。
因此,從本質(zhì)上講,SELinux 最大程序上限制了 Linux 系統(tǒng)中的惡意代碼活動(dòng)。
相關(guān)推薦:《Linux視頻教程》
以上就是SELinux有什么用的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注php中文網(wǎng)其它相關(guān)文章!