感谢维基百科和其他网站,我们可以大致了解SELinux是。
我理解它提供了更精确处理权限的方法,但我真的不知道如何做。
问题是:如果我决定将 Linux 系统更改为 SELinux 系统,这对我(管理员)意味着什么?我猜想它不会以与传统 Linux 服务器相同的方式进行管理。
简而言之 :从管理角度来看,SELinux 的主要影响是什么?
答案1
实际上,如果您运行现代 Linux 发行版,例如 Fedora 或 CentOS,那么很有可能您已经拥有“SELinux 系统”。
可以这样类比:想象一个社会,其政府制度是“无政府状态”。任何人都可以做任何事情。个别部落可以建立局部控制区域,建立基本的秩序,但总体而言,在区域或全球层面,文明处于无政府状态,拥有最大影响力或权力(体力、技术等)的人几乎可以为所欲为,而不会受到任何影响。
当未安装 SELinux 或已安装但未执行时,系统就是这种情况。
现在想象一个社会,其政府体系涉及“法治”,这个概念意味着,人们最终统治社会,一套写在书里的正式规则统治着社会。
当 SELinux 安装并执行时,系统就是如此。
现在,可以启用 SELinux,将其设置为强制执行,并清除法律书,也可以空白的书或者写“你绝对可以做任何你想做的事”——这又让我们回到无政府状态。有点。但如果法律突然改变,包含一些实际限制,例如,谋杀是非法的,偷窃是非法的,等等,那么社会就会突然开始有一定程度的秩序。而且一般来说,拥有很多权力的人不可能简单地利用这些权力为所欲为,因为法律可以限制他们被允许做的事情。
为了便于类比,我们假设人们绝不做一些非法的事情,因为在软件世界中,程序不能仅仅因为以下原因而绕过 SELinux 策略(即“违法”):非常想在普通人类社会中,我们当然可以违法,然后就会有后果。在 SELinux 社会中,你只需要不永远不要违法,仅此而已。
您可以想象,SELinux 系统的管理开销量很大程度上取决于:
- 您启用了多少策略;
- 这些政策的限制程度如何?
- 这些政策有多具体?
- 您是否设置了黑名单或白名单策略(黑名单会阻止您知道不好的事情,而白名单则要求您明确添加对您想要允许的事情的支持,因为默认情况下所有内容都会被阻止)。
SELinux 可以限制 Linux 内核中可控制的几乎所有系统方面:对硬件设备的访问、对读取或写入文件的访问、对系统 API 的访问、对某些类型的网络或某些范围的网络的访问等等。SELinux 有效地实现了强制访问控制,您应该继续阅读维基百科。
我想通过这个答案向您灌输的重点是,处理 SELinux 所需的额外工作量和时间完全取决于您制定的政策有多严格。例如,想象一下生活在这样一个社会中,每次登机时您都必须获得四个人的批准:最高法院法官、总统、众议院议员和参议员。这将是一项极其严格的政策,您必须经过很多批准才能登机。在 SELinux 世界中,这类似于默认将所有文件系统访问列入黑名单,并要求将各个用户对各个文件的访问权限明确列入白名单。
还记得我之前说过 Fedora 和 CentOS 已经实现了 SELinux 吗?除非您下载并运行了试图触发 SELinux 过滤器的特定程序,否则您可能甚至没有注意到它们已经实现了 SELinux。Red Hat 一直在仔细调整其 SELinux 过滤器,以允许几乎所有非恶意程序活动不受阻碍地通过,但它已经制定了一些政策,这些政策应该有助于阻止攻击,而不会给系统管理员带来太大的负担。
简而言之,SELinux 在基于 Red Hat 的发行版中以开箱即用的方式实施,增强了安全性,同时又不会显著影响可用性。当然,您可以让它更加安全但它也会降低可用性;或者,你可以让它更加实用,但反过来也会降低安全性。