03-SELinux

nobility 发布于 2023-11-26 04-网络服务 2654 次阅读


SELinux

是集成在内核2.6版本之后的上安全子系统,使用uname -runame -a可以查看内核版本

永久生效的SELinux配置文件位置/etc/selinux/config,需要重启电脑后生效,一般只设置SELINUX参数的启动状态,而对于SELINUXTYPE参数保持默认的targeted即可,意思是对于大部分著名的软件默认的设置是起到保护(限制)作用的

  • getenforce:查看设置的SELinux级别
  • setenforce:设置临时的SElinux级别,0是permissive警告模式,1是enforcing强制模式,如果原本是disabled状态将无法使用该命令开启
  • sestatus:查看SELinux详细信息
    • v:更详细

SELinux运行原理

为每个文件(安全上下文)和进程(域限制)都添加一个标签,系统中运行的程序有访问文件或进程的操作时会经过SELinux,若SELinux中有设置访问该标签的策略就允许访问,否则不允许

文件的标签可以使用ls -Z查看,进程的标签可以使用ps -auxZ查看,系统默认会为每个文件都添加默认的标签,使用semanage fcontext -l可以查看默认的标签

标签的的格式是system_u:system_r:kernel_t:s0以分号分隔的4段内容,分别表示:

用户(以_u结尾) 角色(以_r结尾) 类型(以_t结尾) 级别
创建者类型,如system_u=系统创建的、unconfined_u=用户自己创建的 该对象的用途,比如system_r=系统进程、unconfined_r=用户进程、object_r=文件 就是什么进程能访问什么类型文件中的类型,主要修改的字段,若设置为public_content_t=任意进程都可以读、public_content_rw_t=任何进程都可以读写 targeted模式下都是s0

对于复制的文件会重新根据当前目录定义标签,对于移动的文件会保留原来的标签

修改SELinux标签类型

  • chcon:修改安全上下文
    • t:修改类型字段
    • R:递归修改
    • reference:根据文件或目录更改安全上下文
  • restorecon:恢复到系统默认的标签
    • R:递归恢复
    • v:显示过程
  • semanage:SELinux管理器
    • fcontext:文件安全上下文
      • l:列出所有文件的默认标签
      • a:向策略数据库中添加默认的SELinux策略
      • d:从策略数据库中删除默认的SELinux策略
      • t:指定标签的类型字段,后跟标签和目录,空格隔开,若想递归设置则需要为目录增加(/.*)?正则后缀表示目录和目录内的文件
    • port:端口安全上下文
      • l:列出所有端口的默认标签
      • a:向策略数据库中添加默认的SELinux策略
      • d:从策略数据库中删除默认的SELinux策略
      • m:从策略数据库中修改默认的SELinux策略,前提是有才能修改
      • t:指定标签的类型字段
      • p:指定端口号和协议,空格隔开
    • boolean:服务行为开关布尔值
      • l:查看服务行为开关布尔值
      • C:查看修改过的布尔值,配合l
  • getsebool:查看临时的服务行为开关布尔值
  • setsebool:临时修改服务行为开关布尔值,后跟服务行为off是开,on是关
    • P:永久修改服务行为开关布尔值

SELinux日志

  1. yum install setroubleshoot,安装sealert命令
  2. grep 关键字 /var/log/messages,系统日志中搜索
  3. sealert -l UUID根据日志的提示运行相应的UUID即可查看
  4. sealert -a /var/log/audit/audit.log可查看所有有关SELinux的错误日志信息
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2023-11-26