本文部分内容参考:
SELinux - ArchWiki
SELinux_百度百科
一、SELinux介绍
1. SELinux简介
SELinux(Security-Enhanced Linux,安全增强型Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在Fedora和Red Hat Enterprise Linux上,也可以作为其它发行版上容易安装的包得到。
SELinux是一种提供各种安全策略的Linux功能,包括U.S。通过在Linux内核中使用Linux安全模块(LSM),实现了国防部风格的强制访问控制(MAC)。它不是一个Linux发行版,而是一组可以应用于类Unix操作系统(如Linux和BSD)的修改。
在Linux发行版上运行SELinux需要三个条件:启用SELinux的内核、SELinux用户空间工具和库、以及SELinux策略(通常基于参考策略)。
2. GitHub地址
SELinux的GitHub主页链接如下:
https://github.com/SELinuxProject
主页面如下:
二、refpolicy介绍
1. SELinux参考策略项目概述
SELinux参考策略项目(refpolicy)是一套完整的SELinux策略,可以用作各种系统的系统策略,也可以用作创建其它策略的基础。参考策略最初基于美国国家安全局的示例策略,但旨在实现许多其它目标。
参考策略的当前版本可从以下页面获得:
DownloadRelease · SELinuxProject/refpolicy Wiki · GitHub
该项目一直在寻找有兴趣参与的策略开发者。有关编写参考策略模块的详细信息,请参阅以下指南:
https://github.com/SELinuxProject/refpolicy/wiki/GettingStarted
关于参考策略概念的深入讨论,请参阅2006年SELinux研讨会上发表的论文:http://selinuxsymposium.org/2006/papers/05-refpol.pdf
2. 项目目标
安全性是SELinux策略存在的原因,因此其必须始终是第一要务。将安全性视为二进制状态(安全或不安全)的共识并不是开发SELinux策略的充分目标。在现实中,不同的系统有不同的要求和目的,在安全的意义(目标)上存在有相应的差异。一个系统上的基本安全缺(漏洞)可能是可以接受的,甚至是另一个系统的主要功能。系统策略面临的挑战是尽可能多地支持这些不同的安全目标。为了实现这一目标,参考策略提供:
- 强模块性(Strong Modularity)
策略设计的核心是严格的模块化。对资源的访问是抽象的,实现细节被封装在模块中。
- 安全目标(Security Goals)
将为策略的每个组成部分提供明确的安全目标。这将允许策略开发人员确定给定组件是否满足他们的安全需求。
- 文档(Documentation)
创建SELinux策略的难度和复杂性已经成为采用SELinux的头号障碍。它还可能降低策略的安全性:过于复杂而难以理解的策略很难确保安全。参考策略将通过将模块及其接口的文档作为基础设施的关键部分,在这一领域做出积极改进。有关详细信息,请参阅页面:https://github.com/SELinuxProject/refpolicy/wiki/Documentation。
- 开发工具支持(Development Tool Support)
除了文档之外,参考策略还旨在改进这一领域,通过添加可用于调试和图形开发工具的接口回调,使策略更易于开发、理解、分析和验证。
- 前瞻性(Forward Looking)
参考策略旨在支持各种策略配置和格式,包括标准源策略、MLS策略和可加载策略模块,所有这些都来自同一源树。这是通过添加基础设施来实现的,该基础设施用于自动处理基于源和可加载模块的策略之间的差异,并为包括上下文的所有策略语句添加额外的MLS字段。
- 可配置性(Configurability)
配置工具,其使策略开发人员能够做出重要的安全决策,包括定义角色、配置网络和利用遗留兼容性来提高安全性。
- 灵活的基本策略(Flexible Base Policy)
一个保护基本操作系统并作为策略其余部分基础的基本策略。这个基本策略应该能够支持具有不同安全目标的各种应用程序策略。
- 应用程序策略变体(Application Policy Variations)
进行不同安全权衡的应用程序策略变体。例如,可能会创建两个Apache策略,一个用于提供严格限制的只读静态内容,另一个适用于动态内容。
- 多级安全(Multi-Level Security)
MLS是开箱即用的,无需对策略进行破坏性更改。通过切换配置选项,可以从相同的策略文件编译MLS和非MLS策略。
3. 贡献
如果您想做出贡献,请参阅:
https://github.com/SELinuxProject/refpolicy/wiki/HowToContribute