SELinux查看策略規(guī)則的方法有哪些

SElinux查看策略規(guī)則的方法:1、使用seinfo命令,查詢SELinux的策略提供多少相關(guān)規(guī)則,一個(gè)主體進(jìn)程能否讀取到目標(biāo)文件資源的重點(diǎn)是在于SELinux的策略以及策略內(nèi)的各項(xiàng)規(guī)則,語(yǔ)法“seinfo [選項(xiàng)]”;2、使用sesearch命令,可查詢SELinux策略規(guī)則的具體內(nèi)容,語(yǔ)法“sesearch [選項(xiàng)] [規(guī)則類型] [表達(dá)式]”。

SELinux查看策略規(guī)則的方法有哪些

本教程操作環(huán)境:linux7.3系統(tǒng)、Dell G3電腦。

SELinux策略規(guī)則查看方法有兩個(gè):seinfo和sesearch。

當(dāng)前 SELinux 的默認(rèn)策略是 targeted,那么這個(gè)策略中到底包含有多少個(gè)規(guī)則呢?使用 seinfo 命令即可查詢。

seinfo命令是用來(lái)查詢SELinux的策略提供多少相關(guān)規(guī)則,一個(gè)主體進(jìn)程能否讀取到目標(biāo)文件資源的重點(diǎn)是在于SELinux的策略以及策略內(nèi)的各項(xiàng)規(guī)則,然后再通過(guò)該規(guī)則的定義去處理各項(xiàng)目標(biāo)文件的安全上下文,尤其是“類型”部分。

sesearch 命令格式如下:

seinfo?[選項(xiàng)]

常用選項(xiàng):

-a 列出SELinux的狀態(tài)、規(guī)則布爾值、身份識(shí)別、角色、類型等所有信息
-t 列出SELinux所有類型(type)的種類
-r 列出SELinux所有角色(role)的種類
-u 列出SELinux所有身份識(shí)別(user)的種類
-b 列出所有規(guī)則的種類(布爾值)

參考實(shí)例:

[root@localhost?~]#?seinfo?-b #還記得-b選項(xiàng)嗎?就是查詢布爾值,也就是查詢規(guī)則名字 Conditional?booleans:187 #當(dāng)前系統(tǒng)中有187個(gè)規(guī)則 allow_domain_fd_use allow_ftpd_full_access allow_sysadm_exec_content allow_user_exec_content allow_zebra_write_config …省略部分輸出…

seinfo 命令只能看到所有規(guī)則的名稱,如果想要知道規(guī)則的具體內(nèi)容,就需要使用?sesearch 命令了。

sesearch 命令格式如下:

sesearch?[選項(xiàng)]?[規(guī)則類型]?[表達(dá)式]

選項(xiàng):

  • -h:顯示幫助信息;

規(guī)則類型:

  • –allow:顯示允許的規(guī)則;

  • –neverallow:顯示從不允許的規(guī)則;

  • –all:顯示所有的規(guī)則;

表達(dá)式:

  • -s 主體類型:顯示和指定主體的類型相關(guān)的規(guī)則(主體是訪問(wèn)的發(fā)起者,這個(gè) s 是 source 的意思,也就是源類型);

  • -t 目標(biāo)類型:顯示和指定目標(biāo)的類型相關(guān)的規(guī)則(目標(biāo)是被訪問(wèn)者,這個(gè) t 是 target 的意思,也就是目標(biāo)類型);

  • -b 規(guī)則名:顯示規(guī)則的具體內(nèi)容(b 是 bool,也就是布爾值的意思,這里是指規(guī)則名);

下面舉幾個(gè)例子。首先我們演示一下,如果我們知道的是規(guī)則的名稱,則應(yīng)該如何查詢具體的規(guī)則內(nèi)容。命令如下:

[root@localhost?~]#?seinfo?-b?|?grep?http httpd_manage_ipa …省略部分輸出… #查詢和apache相關(guān)的規(guī)則,有httpd_manage_ipa規(guī)則 [root@localhost?~]#?sesearch?--all?-b?httpd_manage_ipa #?httpd_manage_ipa規(guī)則中具體定義了哪些規(guī)則內(nèi)容呢?使用sesearch命令查詢一下 Found?4?semantic?av?rules: allow?httpd_t?var_run_t:dir?{?getattr?search?open?}?; allow?httpd_t?memcached_var_run_t:file?{?ioctl?read?write?create?getattr?setattr?lock?append?unlink?link?rename?open?}?; allow?httpd_t?memcached_var_run_t:dir?{?ioctl?read?write?getattr?lock?add_name?remove_name?search?open?}?; allow?httpd_t?var_t:dir?{?getattr?search?open?}?; Found?20?role?allow?rules: allow?system_r?sysadm_r; allow?sysadm_r?system_r; …省略部分輸出…

每個(gè)規(guī)則中都定義了大量的具體規(guī)則內(nèi)容,這些內(nèi)容比較復(fù)雜,一般不需要修改,會(huì)查詢即可。

可是我們有時(shí)知道的是安全上下文的類型,而不是規(guī)則的名稱。比如,我們已知 apache 進(jìn)程的域是 httpd_t,而 /var/www/html/ 目錄的類型是 httpd_sys_content_t。而 apache 之所以可以訪問(wèn) /var/www/html/ 目錄,是因?yàn)?httpd_t 域和 httpd_sys_content_t 類型匹配。

那么,該如何查詢這兩個(gè)類型匹配的規(guī)則呢?命令如下:

[root@localhost?~]#?ps?auxZ?|?grep?httpd unconfined_u:system_r:httpd_t:s0?root?25620?0.0?0.5?11188?36X6???Ss 03:44?0:03?/usr/sbin/httpd #apache進(jìn)程的域是httpd_t [root@localhost?~]#?ls?-Zd?/var/www/html/ drwxr-xr-x.?root?root?system_u:object_r:httpd_sys_content_t:s0?/var/www/html/ #/var/www/html/?目錄的類型是?httpd_sys_content_t [root@localhost?~]#?sesearch?--all?-s?httpd_t?-t?httpd_sys_content_t?Found?13?semantic?av?rules: ...省略部分輸出... allow?httpd_t?httpd_sys_content_t?:?file?{?ioctl?read?getattr?lock?open?}; allow?httpd_t?httpd_sys_content_t?:?dir?{?ioctl?read?getattr?lock?search?open?}; allow?httpd_t?httpd_sys_content_t?:?lnk_file?{?read?getattr?}; allow?httpd_t?httpd_sys_content_t?:?file?{?ioctl?read?getattr?lock?open?}; ...省略部分輸出... #可以清楚地看到httpd_t域是允許訪間和使用httpd_sys_content_t類型的

相關(guān)推薦:《Linux視頻教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊6 分享