99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

10.3 SELinux安全子系統(tǒng)

2023-05-12 10:23 更新

SELinux(Security-Enhanced Linux)是美國(guó)國(guó)家安全局在Linux開(kāi)源社區(qū)的幫助下開(kāi)發(fā)的一個(gè)強(qiáng)制訪(fǎng)問(wèn)控制(MAC,Mandatory Access Control)的安全子系統(tǒng)。RHEL 7系統(tǒng)使用SELinux技術(shù)的目的是為了讓各個(gè)服務(wù)進(jìn)程都受到約束,使其僅獲取到本應(yīng)獲取的資源。

例如,您在自己的電腦上下載了一個(gè)美圖軟件,當(dāng)您全神貫注地使用它給照片進(jìn)行美顏的時(shí)候,它卻在后臺(tái)默默監(jiān)聽(tīng)著瀏覽器中輸入的密碼信息,而這顯然不應(yīng)該是它應(yīng)做的事情(哪怕是訪(fǎng)問(wèn)電腦中的圖片資源,都情有可原)。SELinux安全子系統(tǒng)就是為了杜絕此類(lèi)情況而設(shè)計(jì)的,它能夠從多方面監(jiān)控違法行為:對(duì)服務(wù)程序的功能進(jìn)行限制(SELinux域限制可以確保服務(wù)程序做不了出格的事情);對(duì)文件資源的訪(fǎng)問(wèn)限制(SELinux安全上下文確保文件資源只能被其所屬的服務(wù)程序進(jìn)行訪(fǎng)問(wèn))。

劉遄老師經(jīng)常會(huì)把“SELinux域”和“SELinux安全上下文”稱(chēng)為是Linux系統(tǒng)中的雙保險(xiǎn),系統(tǒng)內(nèi)的服務(wù)程序只能規(guī)規(guī)矩矩地拿到自己所應(yīng)該獲取的資源,這樣即便黑客入侵了系統(tǒng),也無(wú)法利用系統(tǒng)內(nèi)的服務(wù)程序進(jìn)行越權(quán)操作。但是,非??上У氖牵琒ELinux服務(wù)比較復(fù)雜,配置難度也很大,加之很多運(yùn)維人員對(duì)這項(xiàng)技術(shù)理解不深,從而導(dǎo)致很多服務(wù)器在部署好Linux系統(tǒng)后直接將SELinux禁用了;這絕對(duì)不是明智的選擇。

SELinux服務(wù)有三種配置模式,具體如下。

enforcing:強(qiáng)制啟用安全策略模式,將攔截服務(wù)的不合法請(qǐng)求。

permissive:遇到服務(wù)越權(quán)訪(fǎng)問(wèn)時(shí),只發(fā)出警告而不強(qiáng)制攔截。

disabled:對(duì)于越權(quán)的行為不警告也不攔截。

本書(shū)中的所有實(shí)驗(yàn)都是在強(qiáng)制啟用安全策略模式下進(jìn)行的,雖然在禁用SELinux服務(wù)后確實(shí)能夠減少報(bào)錯(cuò)幾率,但這在生產(chǎn)環(huán)境中相當(dāng)不推薦。建議大家檢查一下自己的系統(tǒng),查看SELinux服務(wù)主配置文件中定義的默認(rèn)狀態(tài)。如果是permissive或disabled,建議趕緊修改為enforcing。

    [root@linuxprobe ~]# vim /etc/selinux/config
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    # enforcing - SELinux security policy is enforced.
    # permissive - SELinux prints warnings instead of enforcing.
    # disabled - No SELinux policy is loaded.
    SELINUX=enforcing
    # SELINUXTYPE= can take one of these two values:
    # targeted - Targeted processes are protected,
    # minimum - Modification of targeted policy. Only selected processes are protected. 
    # mls - Multi Level Security protection.
    SELINUXTYPE=targeted

SELinux服務(wù)的主配置文件中,定義的是SELinux的默認(rèn)運(yùn)行狀態(tài),可以將其理解為系統(tǒng)重啟后的狀態(tài),因此它不會(huì)在更改后立即生效。可以使用getenforce命令獲得當(dāng)前SELinux服務(wù)的運(yùn)行模式:

    [root@linuxprobe ~]# getenforce 
    Enforcing

為了確認(rèn)圖10-6所示的結(jié)果確實(shí)是因?yàn)镾ELinux而導(dǎo)致的,可以用setenforce [0|1]命令修改SELinux當(dāng)前的運(yùn)行模式(0為禁用,1為啟用)。注意,這種修改只是臨時(shí)的,在系統(tǒng)重啟后就會(huì)失效:

    [root@linuxprobe ~]# setenforce 0
    [root@linuxprobe ~]# getenforce
    Permissive

再次刷新網(wǎng)頁(yè),就會(huì)看到正常的網(wǎng)頁(yè)內(nèi)容了,如圖10-7所示??梢?jiàn),問(wèn)題確實(shí)是出在了SELinux服務(wù)上面。

    [root@linuxprobe wwwroot]# firefox

圖10-7 頁(yè)面內(nèi)容按照預(yù)期顯示

現(xiàn)在,我們來(lái)回憶一下前面的操作中到底是哪里出問(wèn)題了呢?

httpd服務(wù)程序的功能是允許用戶(hù)訪(fǎng)問(wèn)網(wǎng)站內(nèi)容,因此SELinux肯定會(huì)默認(rèn)放行用戶(hù)對(duì)網(wǎng)站的請(qǐng)求操作。但是,我們將網(wǎng)站數(shù)據(jù)的默認(rèn)保存目錄修改為了/home/wwwroot,而這就產(chǎn)生問(wèn)題了。在6.1小節(jié)中講到,/home目錄是用來(lái)存放普通用戶(hù)的家目錄數(shù)據(jù)的,而現(xiàn)在,httpd提供的網(wǎng)站服務(wù)卻要去獲取普通用戶(hù)家目錄中的數(shù)據(jù)了,這顯然違反了SELinux的監(jiān)管原則。

現(xiàn)在,我們把SELinux服務(wù)恢復(fù)到強(qiáng)制啟用安全策略模式,然后分別查看原始網(wǎng)站數(shù)據(jù)的保存目錄與當(dāng)前網(wǎng)站數(shù)據(jù)的保存目錄是否擁有不同的SELinux安全上下文值:

    [root@linuxprobe ~]# setenforce 1
    [root@linuxprobe ~]# ls -Zd /var/www/html
    drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html
    [root@linuxprobe ~]# ls -Zd /home/wwwroot
    drwxrwxrwx. root root unconfined_u:object_r:home_root_t:s0 /home/wwwroot

在文件上設(shè)置的SELinux安全上下文是由用戶(hù)段、角色段以及類(lèi)型段等多個(gè)信息項(xiàng)共同組成的。其中,用戶(hù)段system_u代表系統(tǒng)進(jìn)程的身份,角色段object_r代表文件目錄的角色,類(lèi)型段httpd_sys_content_t代表網(wǎng)站服務(wù)的系統(tǒng)文件。由于SELinux服務(wù)實(shí)在太過(guò)復(fù)雜,現(xiàn)在大家只需要簡(jiǎn)單熟悉SELinux服務(wù)的作用就可以,劉遄老師未來(lái)會(huì)在本書(shū)的進(jìn)階篇中單獨(dú)拿出一個(gè)章節(jié)仔細(xì)講解SELinux服務(wù)。

針對(duì)當(dāng)前這種情況,我們只需要使用semanage命令,將當(dāng)前網(wǎng)站目錄/home/wwwroot的SELinux安全上下文修改為跟原始網(wǎng)站目錄的一樣就可以了。

semanage命令

semanage命令用于管理SELinux的策略,格式為“semanage [選項(xiàng)] [文件]”。

SELinux服務(wù)極大地提升了Linux系統(tǒng)的安全性,將用戶(hù)權(quán)限牢牢地鎖在籠子里。semanage命令不僅能夠像傳統(tǒng)chcon命令那樣—設(shè)置文件、目錄的策略,還可以管理網(wǎng)絡(luò)端口、消息接口(這些新特性將在本章后文中涵蓋)。使用semanage命令時(shí),經(jīng)常用到的幾個(gè)參數(shù)及其功能如下所示:

-l參數(shù)用于查詢(xún);

-a參數(shù)用于添加;

-m參數(shù)用于修改;

-d參數(shù)用于刪除。

例如,可以向新的網(wǎng)站數(shù)據(jù)目錄中新添加一條SELinux安全上下文,讓這個(gè)目錄以及里面的所有文件能夠被httpd服務(wù)程序所訪(fǎng)問(wèn)到:

    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot
    [root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/*

注意,執(zhí)行上述設(shè)置之后,還無(wú)法立即訪(fǎng)問(wèn)網(wǎng)站,還需要使用restorecon命令將設(shè)置好的SELinux安全上下文立即生效。在使用restorecon命令時(shí),可以加上-Rv參數(shù)對(duì)指定的目錄進(jìn)行遞歸操作,以及顯示SELinux安全上下文的修改過(guò)程。最后,再次刷新頁(yè)面,就可以正??吹骄W(wǎng)頁(yè)內(nèi)容了,結(jié)果如圖10-8所示。

    [root@linuxprobe ~]# restorecon -Rv /home/wwwroot/
    restorecon reset /home/wwwroot context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    restorecon reset /home/wwwroot/index.html context unconfined_u:object_r:home_root_t:s0->unconfined_u:object_r:httpd_sys_content_t:s0
    [root@linuxprobe ~]# firefox

圖10-8 正??吹骄W(wǎng)頁(yè)內(nèi)容

真可謂是一波三折!原本認(rèn)為只要把httpd服務(wù)程序配置妥當(dāng)就可以大功告成,結(jié)果卻反復(fù)受到了SELinux安全上下文的限制。所以,建議大家在配置httpd服務(wù)程序時(shí),一定要細(xì)心、耐心。一旦成功配妥httpd服務(wù)程序之后,就會(huì)發(fā)現(xiàn)SELinux服務(wù)并沒(méi)有那么難。

因?yàn)樵赗HCSA、RHCE或RHCA考試中,都需要先重啟您的機(jī)器然后再執(zhí)行判分腳本。因此,建議讀者在日常工作中要養(yǎng)成將所需服務(wù)添加到開(kāi)機(jī)啟動(dòng)項(xiàng)中的習(xí)慣,比如這里就需要添加systemctl enable httpd命令。

以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)