本文部分内容参考:

SELinux - ArchWiki

SELinux_百度百科

一、SELinux介绍

1. SELinux简介

SELinux(Security-Enhanced Linux,安全增强型Linux)是美国国家安全局(NSA)对于强制访问控制的实现,是 Linux历史上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在FedoraRed 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

主页面如下:

SELinux refpolicy详解(1)-LMLPHP

SELinux refpolicy详解(1)-LMLPHP

二、refpolicy介绍

1. SELinux参考策略项目概述

SELinux参考策略项目(refpolicy)是一套完整的SELinux策略,可以用作各种系统的系统策略,也可以用作创建其它策略的基础。参考策略最初基于美国国家安全局的示例策略,但旨在实现许多其它目标。

参考策略的当前版本可从以下页面获得:

DownloadRelease · SELinuxProject/refpolicy Wiki · GitHub

SELinux refpolicy详解(1)-LMLPHP

该项目一直在寻找有兴趣参与的策略开发者。有关编写参考策略模块的详细信息,请参阅以下指南:

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

11-23 11:52