Linux SELinux 工作原理及日志管理详解(2)

安全上下文存在于进程与文件中,context随进程一起存入内存中,文件的context存放在其对应的inode中,因此进程在访问文件时,要先读取inode,再判断是否能够访问该文件。

    ls -Z    # 显示文件的安全上下文

    ps -eZ   # 显示所有进程的安全上下文

Linux SELinux 工作原理及日志管理详解

context可以有5个字段,以:为分割符,分别代表的含义如下

user   role   type    sensitivity   category  

身份识别

unconfined_u不受限的用户或文件

system_u受限的进程或文件

 

文件、进程、用户

object_r文件

system_r进程和用户

 

数据类型,重要

何种类型进程���问何种文件

 

安全级别

s0最低

只要在msl下才有意义

 

划分的不同分类,当它不存在了

 

context查询工具seinfo、sesearch

    seinfo -u    # 查询所有的user字段的种类

    seinfo -r    # 查询所有的role字段的种类

    seinfo -t    # 查询所有的type字段的种类 

sesearch -A 可以查询什么类型进程可以读取什么type类型的文件

    sesearch -A -s 进程type    # 查询type类型的进程能够读取的文件type   

    sesearch -A -b 规则(规则的boolean值,所以为-b选项,理解为bool规则)

                               # 查询指定规则下放行的进程能够读取的文件type

Linux SELinux 工作原理及日志管理详解

Linux SELinux 工作原理及日志管理详解

 

3.2 当前context和期望context  

系统中的每个文件都会有context,我们使用ls -Z查询出来的我们看到的context就是当前context;那期望context又是什么呢,系统会把每个文件的默认context记录下来并保存,这样系统记录下来的就是期望context。semanage命令可以管理每个文件的期望context,也叫期望标签。

    semanage fcontext -l                     # 查看所有的期望SELinux标签

    semanage fcontext -a -t type 目标目录    # 添加期望SELinux标签

semanage fcontext -m -t type 目标目录    # 修改期望SELinux标签

semanage fcontext -d -t type 目标目录    # 删除期望SELinux标签

    修改规范:

~]# semanage fcontext -a -t type 目录(/.*)?

Linux SELinux 工作原理及日志管理详解

3.3 修改当前context    

使用chcon命令手动修改security context,格式chcon 选项 目标文件

    chcon        # 手动修改文件的context,-R选项可以递归修改目录,-v选项可以显示context的修改前后的结果

    chcon -t     # 修改文件的context的type字段

    chcon -u     # 修改文件的context的user字段

    chcon -r     # 修改role字段

       chcon -l    # 修改安全级别

       chcon -h     # 针对软链接文件的修改,不加-h则会修改软链接对应的原文件

    chcon --reference=file # 以file的context为模板修改

使用restorecon命令修改context为期望context,格式restorecon 选项 目标文件,    

    restorecon -R    # 递归修改目录

    restorecon -v    # 显示修改的过程

3.3 semanage修改进程访问的端口号

虽然听起来是修改端口号的,但是到底还是修改安全上下文的,我们用semanage工具,命令为semanage port

查询某个服务的context type字段

        语法:semanage port -l |grep 服务名

添加某个端口为指定服务的访问端口       

        语法:semanage port -a -t type -p 协议 端口号(不要与常用端口重复)

例如添加ssh服务的端口号,默认为22

Linux SELinux 工作原理及日志管理详解

四、SELinux日志管理

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/f631f199638fbbd018ad985be52b8c36.html