18.4.规划安全配置¶
在实施任何 MAC 策略之前,建议实行一个规划阶段。在规划阶段,管理员应考虑实现要求和目标,例如:
如何对目标系统上可用的信息和资源进行分类。
要限制访问的信息或资源以及应用的限制类型。
需要哪些 MAC 模块来实现此目标。
在生产系统上使用 MAC 实现 之前,应该对可信系统及其配置进行试运行。由于不同的环境有不同的需求和要求,因此在系统上线后,安全配置文件的建立和完善将会降低修改的必要性。
请考虑 MAC 框架如何增强整个系统的安全性。MAC 框架提供的各种安全策略模块可用于保护网络和文件系统,或阻止用户访问某些端口和套接字。或许策略模块的最佳用途是一次加载多个安全策略模块,以便提供 MLS 环境。此方法与加固策略不同,强化策略通常会加固系统中仅用于特定目的的元素。MLS 的缺点是增加管理开销。
与一个框架的持久效果相比,这种开销微乎其微,该框架提供了挑选特定配置所需政策的能力,并使性能开销降低。减少对不需要的策略的支持可以提高系统的整体性能,并提高选择的灵活性。一个好的实现将考虑总体安全要求,并有效地实现框架提供的各种安全策略模块。
使用 MAC 的系统保证不允许用户随意更改安全属性。所有用户实用程序、程序和脚本都必须在所选安全策略模块提供的访问规则的约束下工作,并且 MAC 访问规则的控制权掌握在系统管理员手中。
仔细选择正确的安全策略模块是系统管理员的职责。对于需要限制网络访问控制的环境,mac_portacl(4)、mac_ifoff(4) 和 mac_biba(4) 策略模块是很好的选择。对于需要文件系统客体严格保密的环境,请考虑 mac_bsdextended(4) 和 mac_mls(4) 策略模块。
可以根据网络配置做出策略决策。如果只允许某些用户访问 ssh(1),那么 mac_portacl(4)策略模块是一个不错的选择。对于文件系统,对客体的访问对某些用户可能加密,但对其他用户则不然。例如,大型开发团队可能会拆分为较小的项目,其中可能不允许项目 A 中的开发人员访问项目 B 中开发人员编写的客体。然而,这两个项目都可能需要访问开发人员在项目 C 中创建的客体。使用 MAC 框架提供的不同安全策略模块,可以将用户分为这些组,然后获得对相应客体的访问权限。
每个安全策略模块都有处理系统整体安全性的独特方法。模块的选择应基于深思熟虑的安全策略,这可能需要修订和重新实现。了解 MAC 框架提供的不同安全策略模块将有助于管理员选择适合其情况的最佳策略。
本章的其余部分介绍可用的模块,说明了它们的使用和配置,并在某些情况下提供有关适用情况的见解。
当心
MAC 的实现与防火墙的实现非常相似,都必须注意防止完全被锁定在系统之外。应考虑还原到原先配置的能力,并且在通过远程连接实现 MAC 时应尤为慎重。