什么是Selinux

  官网地址:What is SELinux?

欢迎关注留言,我是收集整理小能手,工具翻译,仅供参考,笔芯笔芯.

概述

安全增强型 Linux (SELinux) 是Linux® 系统的安全架构,允许管理员更好地控制谁可以访问系统。它最初是由美国国家安全局 (NSA) 使用 Linux 安全模块 (LSM) 开发的一系列Linux内核补丁。  

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

免费试用支持 SELinux 的操作系统

SELinux 是如何工作的?

SELinux 定义了系统上应用程序、进程和文件的访问控制。它使用安全策略(一组规则告诉 SELinux 哪些内容可以访问或哪些内容不可以访问)来强制执行策略允许的访问。 

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

如果 SELinux 无法根据缓存的权限做出访问决策,则会将请求发送到安全服务器。安全服务器检查应用程序或进程以及文件的安全上下文。安全上下文是从 SELinux 策略数据库应用的。然后授予或拒绝许可。 

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

如何配置 SELinux 

您可以通过多种方式配置 SELinux 来保护您的系统。最常见的是有针对性的策略或多级安全 (MLS)。

目标策略是默认选项,涵盖一系列流程、任务和服务。MLS 可能非常复杂,通常仅由政府组织使用。 

您可以通过查看 /etc/sysconfig/selinux 文件来了解您的系统应该运行什么。该文件将有一个部分显示 SELinux 是否处于宽容模式、强制模式或禁用模式,以及应该加载哪个策略。

SELinux 标签和类型强制 

类型强制和标签是 SELinux 最重要的概念。

SELinux 作为一个标签系统,这意味着系统中的所有文件、进程和端口都有一个与之关联的 SELinux 标签。标签是将事物分组在一起的逻辑方式。内核在引导期间管理标签。

标签的格式为 user:role:type:level(级别是可选的)。用户、角色和级别用于更高级的 SELinux 实现,例如 MLS。标签类型对于有针对性的政策来说是最重要的。 

SELinux 使用类型强制来强制执行在系统上定义的策略。类型强制是 SELinux 策略的一部分,它定义以某种类型运行的进程是否可以访问标有某种类型的文件。

启用 SELinux

如果您的环境中已禁用 SELinux,您可以通过编辑 /etc/selinux/config 并设置 SELINUX=permissive 来启用 SELinux。由于 SELinux 目前尚未启用,因此您不想立即将其设置为强制执行,因为系统可能会出现错误标记的内容,从而导致系统无法启动。  

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

如果系统管理员不太熟悉命令行,可以使用图形工具来管理 SELinux。 

SELinux 为Linux 发行版中内置的系统提供了额外的安全层。它应该保持打开状态,以便在系统受到损害时可以保护您的系统。

你对Linux了解多少?

在 Linux 传奇问答中测试您的知识并赢得徽章。

立即参加测验

自主访问控制 (DAC) 与强制访问控制 (MAC)

传统上,Linux 和 UNIX 系统都使用 DAC。SELinux 是 Linux 的 MAC 系统的一个示例。 

有了 DAC,文件和进程就有了所有者。您可以让用户拥有一个文件、一个组拥有一个文件或其他(可以是其他任何人)。用户可以更改自己文件的权限。

root 用户对 DAC 系统具有完全访问控制权。如果您具有 root 访问权限,那么您可以访问任何其他用户的文件或在系统上执行您想要的任何操作。 

但在像 SELinux 这样的 MAC 系统上,有关于访问的管理设置策略。即使您的主目录上的 DAC 设置发生更改,防止其他用户或进程访问该目录的 SELinux 策略也将确保系统安全。 

SELinux 策略让您能够具体化并涵盖大量进程。您可以使用 SELinux 进行更改以限制用户、文件、目录等之间的访问。

了解如何使用现代工具和技术管理 Linux 环境

如何处理 SELinux 错误

当您在 SELinux 中遇到错误时,有一些事情需要解决。这可能是以下 4 个常见问题之一:

  1. 标签是错误的。如果您的标签不正确,您可以使用工具来修复标签。
  2. 需要制定一项政策。这可能意味着您需要通知 SELinux 您所做的更改,或者您可能需要调整策略。您可以使用布尔值或策略模块来修复它。
  3. 该政策存在错误。策略中可能存在需要解决的错误。
  4. 系统已被侵入。尽管 SELinux 可以在许多情况下保护您的系统,但系统受到损害的可能性仍然存在。如果您怀疑情况确实如此,请立即采取行动。

什么是布尔值?

布尔值是 SELinux 中函数的开/关设置。有数百种设置可以打开或关闭 SELinux 功能,其中许多设置已经预定义。您可以通过运行 getsebool -a 来找出系统中已经设置了哪些布尔值。

视频:红帽的安全性和合规性方法

红帽可以提供帮助

红帽企业 Linux 是世界领先的开源 Linux 平台,使您能够降低风险、实施安全配置和策略以及简化合规策略。 

红帽企业 Linux 系统角色是受支持的 Ansible® 角色的集合,可确保一致的工作流程并简化手动任务的执行。系统角色可帮助团队自动化安全工作流程,并以最少的资源长期、大规模地维护它们,并简化治理和合规性要求。通过SELinux系统角色,您可以自动化SELinux的部署和管理。这包括: 

  • 使用强制或许可模式启用 SELinux,以确保控制的一致性。
  • 自定义 SELinux 策略布尔值、文件上下文、端口和登录以满足您的要求。
  • 利用系统角色来协调指定文件或目录的文件上下文。

查看selinux状态,以下命令都可以查

getenforce

cat /etc/selinux/config

sestatus

三种状态

enforcing (执行中)、permissive (不执行但产生警告)、disabled(关闭)

临时设置,重启后失效

#setenforce 0设置为permissive模式;setenforce 1 设置为enforcing模式;
setenforce 0   

永久设置,需要重启

sed -i s#SELINUX=enforcing#SELINUX=disabled# /etc/selinux/config
reboot

你可能感兴趣的:(服务器,运维)