您好,登錄后才能下訂單哦!
這篇文章主要介紹“SELinux如何查看策略規則”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“SELinux如何查看策略規則”文章能幫助大家解決問題。
SELinux查看策略規則的方法:1、使用seinfo命令,查詢SELinux的策略提供多少相關規則,一個主體進程能否讀取到目標文件資源的重點是在于SELinux的策略以及策略內的各項規則,語法“seinfo [選項]”;2、使用sesearch命令,可查詢SELinux策略規則的具體內容,語法“sesearch [選項] [規則類型] [表達式]”。
SELinux策略規則查看方法有兩個:seinfo和sesearch。
當前 SELinux 的默認策略是 targeted,那么這個策略中到底包含有多少個規則呢?使用 seinfo
命令即可查詢。
seinfo命令是用來查詢SELinux的策略提供多少相關規則,一個主體進程能否讀取到目標文件資源的重點是在于SELinux的策略以及策略內的各項規則,然后再通過該規則的定義去處理各項目標文件的安全上下文,尤其是“類型”部分。
sesearch 命令格式如下:
seinfo [選項]
常用選項:
-a | 列出SELinux的狀態、規則布爾值、身份識別、角色、類型等所有信息 |
-t | 列出SELinux所有類型(type)的種類 |
-r | 列出SELinux所有角色(role)的種類 |
-u | 列出SELinux所有身份識別(user)的種類 |
-b | 列出所有規則的種類(布爾值) |
參考實例:
[root@localhost ~]# seinfo -b
#還記得-b選項嗎?就是查詢布爾值,也就是查詢規則名字
Conditional Booleans:187
#當前系統中有187個規則
allow_domain_fd_use
allow_ftpd_full_access
allow_sysadm_exec_content
allow_user_exec_content
allow_zebra_write_config
…省略部分輸出…
seinfo
命令只能看到所有規則的名稱,如果想要知道規則的具體內容,就需要使用 sesearch
命令了。
sesearch 命令格式如下:
sesearch [選項] [規則類型] [表達式]
選項:
-h:顯示幫助信息;
規則類型:
--allow:顯示允許的規則;
--neverallow:顯示從不允許的規則;
--all:顯示所有的規則;
表達式:
-s 主體類型:顯示和指定主體的類型相關的規則(主體是訪問的發起者,這個 s 是 source 的意思,也就是源類型);
-t 目標類型:顯示和指定目標的類型相關的規則(目標是被訪問者,這個 t 是 target 的意思,也就是目標類型);
-b 規則名:顯示規則的具體內容(b 是 bool,也就是布爾值的意思,這里是指規則名);
下面舉幾個例子。首先我們演示一下,如果我們知道的是規則的名稱,則應該如何查詢具體的規則內容。命令如下:
[root@localhost ~]# seinfo -b | grep http
httpd_manage_ipa
…省略部分輸出…
#查詢和apache相關的規則,有httpd_manage_ipa規則
[root@localhost ~]# sesearch --all -b httpd_manage_ipa
# httpd_manage_ipa規則中具體定義了哪些規則內容呢?使用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;
…省略部分輸出…
每個規則中都定義了大量的具體規則內容,這些內容比較復雜,一般不需要修改,會查詢即可。
可是我們有時知道的是安全上下文的類型,而不是規則的名稱。比如,我們已知 apache 進程的域是 httpd_t,而 /var/www/html/ 目錄的類型是 httpd_sys_content_t。而 apache 之所以可以訪問 /var/www/html/ 目錄,是因為 httpd_t 域和 httpd_sys_content_t 類型匹配。
那么,該如何查詢這兩個類型匹配的規則呢?命令如下:
[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進程的域是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類型的
關于“SELinux如何查看策略規則”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。