当前位置: 首页 > article >正文

什么是 SELinux(安全增强型 Linux)?

什么是 SELinux?
安全增强型 Linux(SELinux)是一种采用安全架构的 Linux® 系统,它能够让管理员更好地管控哪些人可以访问系统。它最初是作为 Linux 内核的一系列补丁,由美国国家安全局(NSA)利用 Linux 安全模块(LSM)开发而成。

SELinux 于 2000 年发布到开源社区,并于 2003 年集成到上游 Linux 内核中。

SELinux 的工作原理
SELinux 用于定义对系统上应用、进程和文件的访问控制。利用安全策略(一组规则,用于告知 SELinux 可以或不能访问哪些内容)来强制执行策略所允许的访问。

当应用或进程(称为主体)发出访问对象(如文件)的请求时,SELinux 会检查访问向量缓存(AVC),其中缓存有主体和对象的访问权限。

如果 SELinux 无法根据缓存的权限决定是授予还是拒绝授予权限,它会将请求发送到安全服务器。安全服务器随即检查应用或进程和文件的安全环境,确认其是否匹配 SELinux 策略数据库的安全环境。然后,便根据检查授予或拒绝授予权限。

如果拒绝授予权限,/var/log.messages 中将会显示“avc: denied”消息。

如何配置 SELinux
您可以通过多种方式来配置 SELinux,以保护系统。最常见的是目标策略或多级安全防护(MLS)。

目标策略为默认选项,它涵盖了多种进程、任务和服务。MLS 则极为复杂,通常只有政府机构才会使用。

您可以查看 /etc/sysconfig/selinux 文件,以判断系统所采用的配置方式。该文件中有一部分会显示 SELinux 是处于允许模式、强制执行模式还是禁用状态,以及要加载哪个策略。

SELinux 标签和类型强制访问控制
类型强制访问控制和标签是 SELinux 中最为重要的两个概念。

SELinux 可作为标签系统运行,也就是说,系统中的所有文件、进程和端口都具有与之关联的 SELinux 标签。标签可以按照逻辑将目标组合分组。在启动过程中,内核负责管理标签。

标签的格式为 user:role:type:level(level 为可选项)。User、role 和 level 用于更高级的 SELinux 实施中,例如 MLS。标签类型对于目标策略而言最为重要。

SELinux 利用类型强制访问控制来强制执行系统中定义的策略。类型强制访问控制是 SELinux 策略的一部分,它定义了特定类型的进程能否访问标记为特定类型的文件。

启用 SELinux
如果您的环境中禁用了 SELinux,可以通过编辑 /etc/selinux/config 并设置 SELINUX=permissive 来启用 SElinux。由于 SELinux 当前尚未启用,因此最好不要将其设为立即强制执行,因为此时系统可能会出现误标记的事件,这会导致系统无法正常启动。

您可以在根目录中创建名为 .autorelabel 的空文件,然后重新启动,以此来强制系统自动重新标记文件系统。如果系统中错误过多,应在允许模式下重新启动,以确保启动成功。重新标记所有内容后,利用 /etc/selinux/config 将 SELinux 设置为强制执行模式并重新启动,或运行 setenforce 1。

如果系统管理员不太熟悉命令行,还可以选择用于管理 SELinux 的图形工具。

SELinux 为 Linux 发行版中内置的系统提供了一道额外的防护层。将 SELinux 保持开始状态,就能在系统遭到破坏时保护系统。


http://www.kler.cn/news/363229.html

相关文章:

  • 数据降维与主成分分析
  • ChatGLM-6B和Prompt搭建专业领域知识问答机器人应用方案(含完整代码)
  • 游戏界面设计的最佳实践
  • 《上海大学学报(自然科学版)》
  • 信发软件之电脑版拖动——未来之窗行业应用跨平台架构
  • ​​Spring6梳理17——基于XML的自动装配
  • 如何使用IP代理优化亚马逊平台的操作体验
  • 基于神经网络的农业病虫害损失预测
  • android openGL ES详解——缓冲区VBO/VAO/EBO/FBO
  • openssh openssl zlib 升级至最新版解决安全问题
  • 数字英文验证码识别 API 对接说明
  • Python 基于 Chat Completions API 实现外部函数调用
  • 人工智能在医疗领域的应用:AI模型在高血脂症疾病的预测与治疗决策上的应用
  • C#应用程序实现限制输入法
  • Django的模板的应用
  • Ubuntu18.04:no module named ‘apt_pkg‘(python3.6升级为3.7要注意的事情)
  • Jupyter notebook和Conda使用
  • python写的一个博客系统
  • 大模型开发实战1-QuickStart
  • 零,报错日志 2002-Can‘t connect to server on‘106.54.209.77‘(1006x)
  • Textbus:GitHub上的宝藏项目,构建复杂富文本的不二之选
  • java 提示 避免用Apache Beanutils进行属性的copy。
  • 如何在SpringTask的定时任务中创建动态的定时任务
  • 教学平台的智能化升级:Spring Boot应用
  • css-(-webkit-、-moz-、-o-)前缀主要用于CSS和某些HTML属性,确保跨浏览器的兼容性和支持特定的CSS功能
  • 如何恢复红米手机中已删除的照片?(6种方法可用)