电子设计25030 Ddi Selinux推广

不要这样做:禁用SELinux

2018年12月19日
实现SELinux无疑可以提高系统的安全性——但前提是您实际使用它。

这篇文章是TechXchange网络安全

下载本文的PDF格式。

这些天,安全是每个人都在谈论的事情之一,在这个舞台上,许多人实际上做了一些事情。使用强制访问控制(MAC)系统,如SELinuxAppArmor对可以显着提高系统的安全性,但仅当它们使用时才。对于这次讨论,我们专注于Selinux。但是,这些想法适用于大多数访问控制系统。

安全增强Linux或SELinux最初是由美国国家安全局(NSA).这是标准票价红色的帽子RHEL (Enterprise Linux),称为CentOS的社区版本,以及Fedora Linux.它可以在许多其他版本中运行,尽管默认情况下并不总是安装或打开它。

禁用SELinux很简单。你就跑setenforce 0.永久关闭是通过设置完成的禁用SELINUX =CentOS或Fedora的/etc/selinux/config文件。

千万别这么做。

web上有太多的“提示”告诉读者,当一个特定的应用程序不能在SELinux中运行时,可以这样做。这通常是因为他们太懒了,不知道为什么。虽然这通常会使应用程序运行,但也会将一个相对安全的系统变成一个相对不安全的系统。

出现这些技巧的原因是,很少有很好的SELinux演示,或其他访问控制系统,可以很容易地找到和使用。一些关于SELinux的好书也相当令人生畏;不读它们的理由是安全不重要,我的工作不重要,等等。

不幸的是,让东西在SELinux下工作实际上并不那么困难。不过,在许多情况下,这可能更具挑战性。稍后再详细介绍。

因此,在完全禁用SELinux之前,请查看一些可能使应用程序运行的不太严重的更改。

首先,需要理解SELinux的目的。真正提供一个好的SELinux概述至少需要一本书的一到两章,所以这里会稍微简短一些。

实际上,SELinux保护的所有项,包括文件、目录、端口等,都有一个用于表单user:role:type的标签。ls内置了列出文件和目录标签的功能(图1).SELinux使用这些标签来确定哪些安全配置文件适用于项目。

1.ls -Z命令列出文件和目录的SELinux标签。

标签可以使用chcon程序,但是最好使用SELinux上下文semanagerestorecon程序(图2).通常,为SELinux配置的应用程序将包含一个带有上下文的概要文件,该上下文定义了如何为应用程序使用的文件、目录等设置标签。

2.restorecon应用程序根据保存的文件上下文(fcontext)更改文件和目录标签。semange程序用于操作SELinux上下文。

经常发生的情况是,用户将创建或编辑与应用程序相关联的文件,导致标签不正确。当然,SELinux会阻止应用程序使用这些文件,这是应该的。运行restorecon应该是让应用程序在SELinux下正常运行的第一步。

SELinux审计跟踪

文件/var/log/audit/audit.log(图3)在CentOS和Fedora中,SELinux错误和操作被记录在日志中。通过使用以下工具过滤文件,可以找到被拒绝的操作grep.日志条目往往是模糊的,但是它们提供的信息可以用于处理不使用SELinux的应用程序。

3.可以使用grep等工具对文件/var/log/audit/audit.log进行过滤,以显示SELinux拒绝的操作。

请记住,SELinux可以以三种模式之一运行:关闭、允许和强制。前者让SELinux什么都不做。允许和强制让SELinux监视系统。然而,permissive只是向审计日志文件添加条目,同时强制禁止应用程序使用某个条目。我们总是希望强制执行SELinux,但我们也希望应用程序能够运行。

典型的建议是setenforce 0是在允许模式下运行SELinux,这样它就有希望生成一个拒绝的审计跟踪,然后可以用来生成一个允许应用程序运行的安全配置文件。概要文件可以使用日志条目和audit2allow程序。

虽然grep和类似的工具对于过滤审计日志很有用,但SELinux提供了ausearch通常更适合用于audit2allow(图4).它可以根据从主机到进程id的许多条件过滤条目。请参阅主页ausearchaudit2allow与这里提到的大多数与selinux相关的程序一样,因为它们有许多选项没有在本文中讨论。

4.的ausearch应用程序可以过滤审计日志audit2allow能够生成一个配置文件,添加到SELinux使用semodule

的挑战audit2allow它将创建一个概要文件,使应用程序能够做比没有概要文件时更多的事情。但是,允许应用程序一直运行可能还不够。这是因为审计日志只会出现与应用程序在日志期间所做的操作有关的问题。如果测试了应用程序的所有操作,这个概要文件就足够了。但是,如果没有测试,那么生成的概要文件可能会让应用程序运行一段时间,但是当遇到未测试的操作时,可能会失败或出现错误。再次以允许模式运行SELinux将允许记录新的被拒绝的操作,以便创建一个新的配置文件。

使用一个audit2allow生成的概要文件可以为应用程序提供比人们希望的更多的访问权限,但从安全的角度来看,这仍然比允许所有应用程序在系统中自由支配要好。的确,基本的Linux安全机制仍将发挥作用;然而,这些比SELinux提供的限制更自由。如前所述,挑战在于audit2allow方法是了解生成的概要文件是否足够。

我建议您检查将使用的经过过滤的审计日志audit2allow首先看看改变标签是否能解决问题。通常设置文件或目录上下文使用semanage,将让程序运行。

SELinux变量

对于尚未定义SELinux配置文件的应用程序来说,使用audit2allow扩展应用程序的安全性限制可能是必要的,但是许多应用程序附带了包含SELinux变量的配置文件。可以使用这些变量以一种可控的方式更改安全限制。当试图让两个支持selinux的程序(例如Samba文件服务器和Apache web服务器(httpd))一起工作时,它们通常很方便。

SELinux变量使用setsebool.getsebool(图5).通常,这些布尔值极大地扩展了相关安全配置文件的特定方面的限制。例如,Apache web服务器通常会被限制在它可以使用的端口上。设置httpd_can_network_connect变量本质上允许应用程序使用任何端口。如果所需要的端口未知或以未知的方式更改,通常会这样做。最好是创建一个允许特定端口或端口范围的配置文件。尽管如此,至少使用这个变量不会打开web服务器可能被限制的其他领域。

5.可以使用以下方法获取SELinux变量及其值的列表getsebool

如前所述,有时使用这些变量是为了允许两个支持selinux的程序一起工作。这是因为概要文件通常被设计为让应用程序访问其资源,但阻止其他程序访问它们。如果网站使用Samba文件共享,则不会出现这种情况。

还有其他方法可以实现这样的共享,但即使是最基本的示例也超出了本文的范围。我只想说,您不希望禁用SELinux,而是允许使用SELinux变量扩展安全边界;它比没有SELinux支持要好得多。

宽松的领域

在许可模式下运行SELinux允许所有应用程序在不生成SELinux的情况下运行。然而,这些问题仍然被记录在审计跟踪中。可以使用许可域在更有限的基础上提供这种支持(图6).在这种情况下,SELinux以强制模式运行,限制了大多数应用程序,尽管在允许域中的应用程序不会有这些导致错误的限制。任何拒绝都将被记录下来,但应用程序将被允许不受阻碍地继续。

6.允许域提供了一种可选择的方式来扩展域的安全限制。

同样,使用这种方法扩展了安全限制,尽管它以一种已知的方式,用户、管理人员或开发人员可以确定这个范围对系统是否足够。同样,它比完全关闭SELinux更有局限性。

更多SELinux工具

在使用SELinux时,还可以使用其他工具。这些包括:

  • Aureport—提供一个经过筛选和格式化的审计日志报告
  • 显示访问向量缓存的统计信息
  • sealart - GUI监控系统的一部分
  • seinfo——自卫队
  • 搜索—搜索规则的SELinux策略
  • sediff -显示SELinux策略之间的差异
  • sechecker—检查SELinux策略
  • findcon—搜索具有所需SELinux内容的文件或目录

其中大多数在SELinux运行时都没有安装,因为它们通常用于状态、开发或调试工作。使用SELinux保护的系统不需要它们,但是当试图让应用程序在SELinux下工作时,它们是非常宝贵的。例如,试着查询-s httpd_t——allow -d.它列出了与标记为或基于类型httpd_t的文件相关联的所有规则。

以下是一些关于SELinux和其他安全模块的有用链接:

SELinux和开发人员

如果应用程序针对的是可以使用它的平台,那么应该禁止提供没有SELinux支持的应用程序。安全性已经成为正确运行pc、服务器和嵌入式系统的关键,不提供这种类型的安全性只是糟糕的开发实践。对于开发人员来说,包含它也非常容易,而不是试图在事后将应用程序硬塞到SELinux系统中。

要提供对SELinux或其他访问控制系统的支持,需要对安全环境有一定的了解,这实际上比大多数开发人员想象的要简单得多。不幸的是,这是另一篇文章。

希望本文提供了足够的动力来防止您禁用SELinux。

阅读更多的文章TechXchange网络安全

从我们的合作伙伴

336 w无Auxless AC/DC电源参考设计,80 Plus白金兼容性能

一个完全组装的板已开发用于测试和性能验证,并没有出售。设计文件。下载准备……

非金属外壳与金属外壳相比

聚碳酸酯GEOS附件. .非金属外壳与金属外壳相比。非金属外壳与金属外壳的比较2。什么……

如何使用ESP32微控制器及其ESP-IDF进行OTA升级

2021年8月10日,
物联网(IoT)产品的设计者需要不断地评估平台和组件的选择,以降低成本和提高产品质量。

你的科技指数是多少?

稍微看一下人工智能的技术图景——我们已经在哪里,我们在哪里,我们将走向哪里。然后与我们的合作伙伴Micr…

欢迎来到边缘

照片/图像学分(按显示顺序)。pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com。加入我们吧…

在与埃里克·博加廷博士讨论热带病研究方案之后

现在注册观看。时域反射计(TDR)显示一个互连的瞬时单端或差分阻抗剖面…

声音你的意见!

本网站要求您注册或登录后发表评论。
目前还没有任何评论。想开始对话吗?

从我们的合作伙伴

336 w无Auxless AC/DC电源参考设计,80 Plus白金兼容性能

一个完全组装的板已开发用于测试和性能验证,并没有出售。设计文件。下载准备……

非金属外壳与金属外壳相比

聚碳酸酯GEOS附件. .非金属外壳与金属外壳相比。非金属外壳与金属外壳的比较2。什么……

如何使用ESP32微控制器及其ESP-IDF进行OTA升级

物联网(IoT)产品的设计者需要不断地评估平台和组件的选择,以降低成本和提高产品质量。

你的科技指数是多少?

稍微看一下人工智能的技术图景——我们已经在哪里,我们在哪里,我们将走向哪里。然后与我们的合作伙伴Micr…

欢迎来到边缘

照片/图像学分(按显示顺序)。pinkeyes - stock.adobe.com, Monopoly919 - stock.adobe.com, proindustrial2 - stock.adobe.com。加入我们吧…
Baidu