MENU

SELinux入门

September 4, 2018 • Linux阅读设置

简介

  • SELinux 安全模型基于主题、对象和动作。
  • 主题是一个进程,如正在执行的命令,或在服务器中正在运行的应用程序。
  • 对象就是文件、设备、套接字,或者推而广之,任何可被主题访问的资源。
  • 动作就是主题对对象执行的操作。 SELinux 为对象分配不同的上下文。
  • 上下文就是一个标签,由 SELInux 安全策略用来决定是否允许在对象上执行主题的动作。
  • SELinux 的上下文是非常严格的。
  • 换言之,如果一个黑帽黑客闯入用户的系统并接管了用户的 Web 服务器,SELinux 上下文会阻止这个黑客利用这个漏洞闯入到其他服务。
  • 查看文件和目录的安全性上下文:ls -Z

SELinux 状态

SELinux 的三个模式

  • 强制模式(enforcing)
强制执行 SELinux 策略
  • 许可模式(permissive)
所有不符合的 SELinux 规则都保存到日志中,但此违反事件不会被阻止
  • 禁用模式(disabled)
禁用 SELinux #如果想要修改默认模式,则需要修改 /etc/selinux/config 文件中的 SELINUX 指令

当 SELinux 配置为强制模式时,有两种方法保护系统安全

  • 默认为目标模式,允许用户更加精细地自定义 SELinux 要保护的服务
  • mls 模式利用为美国国防部开发的 Bell-La Padula 模型进一步提高保护级别
  • 该模型根据 /etc/selinux/targeted/setrans.conf 文件要求,支持 c0 和 c3 级的安全级别
  • 虽然 c3 被认为 “最高级保密”,但可用的最高级保密可达 c1023 级。
  • 像这样细化的保密级别还没有完全开发成功,如果想进一步了解 mls,需要安全 selinux-policy-mls包
  • 如果想要修改方法,则需要修改 /etc/selinux/config 文件中的 SELINUXTYPE 指令
  • 日志文件位置:/var/log/audit/audit.log

使用 seinfo 命令查看上下文列表

  • 安装包:setools-console
  • 作用:查询 SELinux 的策略提供多少相关规则
  • 语法
seinfo(选项) 选项
    -A:列出 SELinux 的状态、规则布尔值、身份识别、角色、类型等所有信息。
    -t:列出 SELinux 所有类型 (type) 的种类。
    -r:列出 SELinux 所有角色 (role) 的种类。
    -u:列出 SELinux 所有身份识别 (user) 的种类。
    -b:列出所有规则的种类(布尔值)。   

实例:seinfo -b | grep httpd  // 列出与 httpd 有关的规则
  • 补充说明
seinfo 命令 是用来查询 SELinux 的策略提供多少相关规则
一个主体进程能否读取到目标文件资源的重点是在于 SELinux 的策略以及策略内的各项规则
然后再通过该规则的定义去处理各项目标文件的安全上下文,尤其是 “类型” 部分

SELinux 的策略与规则管理相关命令

  • seinfo 命令
  • sesearch 命令
  • getsebool 命令
  • setsebool 命令
  • semanage 命令

SELinux 基本配置

  • 查看 SELinux 当前模式:getenforce
  • 查看 SELinux 当前详细信息:sestatus
  • 临时设置 SELinux 状态:setenforce [enforcing | permissive | 1 | 0]
enforcing 和 1 表示强制模式,permissive 和 0 表示许可模式
当 selinux 状态为 disabled 时 setenforce 命令无效
如果 selinux 状态为 disabled,则修改 /etc/selinux/config 配置文件后需要重启系统才能 “重新赋予标签(relabel)”
这里 selinux 标签需要应用于本地系统上的每个文件

最后编辑于: June 10, 2019
Archives QR Code
QR Code for this page
Tipping QR Code