加入收藏 | 设为首页 | 会员中心 | 我要投稿 银川站长网 (https://www.0951zz.com/)- 云通信、基础存储、云上网络、机器学习、视觉智能!
当前位置: 首页 > 服务器 > 搭建环境 > Linux > 正文

SELinux策略规则查看方法 seinfo和sesearch 解说

发布时间:2023-05-24 12:48:46 所属栏目:Linux 来源:
导读:我们知道,当前 SElinux 的默认策略是 targeted,那么这个策略中到底包含有多少个规则呢?使用 seinfo 命令即可查询。命令如下:[root@localhost ~]# seinfo -b#还记得-b选项吗?就是查询布尔值,也就是查询规则名字

我们知道,当前 SElinux 的默认策略是 targeted,那么这个策略中到底包含有多少个规则呢?使用 seinfo 命令即可查询。命令如下:

[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 命令格式如下:

[root@localhost ~]# 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 };

...省略部分输出...

(编辑:银川站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!