selinux配置介绍(一)
selinux简要说明
selinux是一种主动访问控制机制,采用域-标签的访问控制模型。任意的访问都可以看成主体对于客体的访问。
那么只需要对主体和客体进行适当的标签配置,并对访问操作等进行定义,就可以对访问进行控制。例如:
allow type_a type_b:file { open read };
该条规则就是声明允许标记为type_a的主体,可以对标记为type_b的客体进行{open read}的文件访问。
selinux对所有未被声明的访问动作,默认拒绝。因此,也可以说selinux是一种白名单的访问控制方式。
selinux语法说明
主要关键字
type:用于定义标签
attribute:用于定义集合
allow:用于添加访问权限
neverallow:用于添加禁止访问规则
neverallow取反规则:neverallow accesstoken_service accesstoken_data_file:dir ~{ create search add_name open read write remove_name ioctl } 大括号内规则以外的不允许
avc日志解读:
avc: denied { read open } for pid=4838 comm="sh" path="/system/bin/bm" dev="mmcblk0p29" ino=193 scontext=u:r:console:s0 tcontext=u:object_r:bm_exec:s0 tclass=file permissive=1
{ read open }:操作为read、open
pid:访问主体进程号
comm:访问主体进程名
path:被访问客体
dev:被访问文件属于mmcblk0p29文件系统
ino:文件节点编号
scontext:访问主体selinux标签为u:r:console:s0
tcontext:被访问客体selinux标签为u:object_r:bm_exec:s0
tclass:当前告警属于file类型的操作
permissive=1:当前selinux处于宽容模式,只告警不做访问拦截
avc日志转换策略
根据内核日志的avc告警,获取访问信息,如:
avc: denied { read open } for pid = 1234 comm="setenforce" path="/sys/fs/selinux/enforce" dev="selinuxfs" ino=4 scontext=u:r:hdcd:s0 tcontext=u:object_r:selinuxfs:s0 tclass=file permissive=1
对应规则为
allow hdcd selinuxfs:file { read open }; //allow 主体 客体:tclass类 { 操作 }
更多推荐

所有评论(0)