共計(jì) 2951 個(gè)字符,預(yù)計(jì)需要花費(fèi) 8 分鐘才能閱讀完成。
這篇文章主要介紹“SELinux 如何查看策略規(guī)則”的相關(guān)知識(shí),丸趣 TV 小編通過實(shí)際案例向大家展示操作過程,操作方法簡(jiǎn)單快捷,實(shí)用性強(qiáng),希望這篇“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ī)則查看方法有兩個(gè):seinfo 和 sesearch。
當(dāng)前 SELinux 的默認(rèn)策略是 targeted,那么這個(gè)策略中到底包含有多少個(gè)規(guī)則呢?使用 seinfo 命令即可查詢。
seinfo 命令是用來查詢 SELinux 的策略提供多少相關(guān)規(guī)則,一個(gè)主體進(jìn)程能否讀取到目標(biāo)文件資源的重點(diǎn)是在于 SELinux 的策略以及策略內(nèi)的各項(xiàng)規(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ī)則(主體是訪問的發(fā)起者,這個(gè) s 是 source 的意思,也就是源類型);
-t 目標(biāo)類型:顯示和指定目標(biāo)的類型相關(guān)的規(guī)則(目標(biāo)是被訪問者,這個(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 之所以可以訪問 /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)于“SELinux 如何查看策略規(guī)則”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí),可以關(guān)注丸趣 TV 行業(yè)資訊頻道,丸趣 TV 小編每天都會(huì)為大家更新不同的知識(shí)點(diǎn)。