[TimLinux] 理解selinux

1. 概念

SELinux有三种工作模式:Enforcing, Permissive, disabled。Enforcing对应又有几种修饰(targeted, minimum, mls).

2. 解释

Enforcing就是开启,并真实有效;Permissive是开启,但是只记录错误到 /var/log/audit/audit.log 中,不真实有效。Disabled 则是关闭了SELinux

开启了Enforcing又有几种策略:targeted为选定的目标进行被保护(初始安装的进程有被保护范围,CentOS7默认为这个方式),minimum是在targeted基础上修改过的最小保护(听说不稳定),mls多级安全保护(这个还没有理解到位,解释不了??)

3. 对象

SELinux内只有对象,文件、目录、进程、端口都是对象。进程称为:主体 subject,进程的安全上下文称为:域 domain,文件/端口的安全上下文称为:类型 type. 而安全策略(Policy)则是:定义了主体(进程)访问对象的一系列规则数据库,是数据库,是规则(rule)的数据库,每条规则决定了一个操作的允许还是拒绝,什么操作呢:一个类型的主体,使用一个方法,访问了一个类型对象,应该是拒绝还是允许。比如:1. httpd_t 类型的主体(其实是:httpd进程),使用 ioctl read 方法,访问了 httpd_sys_content_t 类型的文件 /var/www/index.html 文件,是允许的。2. httpd_t 类型的主体(其实是:httpd进程),使用 ioctl read 方法,访问了 httpd_port_t 类型的端口文件,对应端口 80,是允许的(semanage port -l | grep '\<80\>' 查询到允许)

4. 流程

当主体(进程)访问对象(文件、端口等)时,Kernel中的安全策略执行服务器将检查AVC(访问矢量缓存,Access Vector Cache),AVC内缓存有:主体操作对象的安全上下文规则。

5. 二元值 boolean

在定义好的安全策略中,包含了很多规则,而为了能够更加灵活的处理一些操作的允许、拒绝,就把这些决定权暴露出来交给系统管理员,这样的一些操作权就是一个个 bool 开关。比如:samba 允许 home 目录被共享的开关是:samba_enable_home_dirs。

6. 操作命令

文件对象的安全上下文修改的命令:chcon, restorecon

默认规则查询,修改安全上下文的命令:semanage fcontext, semanage port 可查询,修改,也能操作chcon的功能

二元值查询修改命令:getsebool -a, setbool -P samba_enable_home_dirs on。

7. 关联包

setroubleshot(semanage,sealert),setools-console(seinfo)

扫描二维码关注公众号,回复: 5165293 查看本文章

猜你喜欢

转载自www.cnblogs.com/timlinux/p/10370460.html