安全 增强 式 Linux
![本页使用了标题或全文手工转换](https://upload.wikimedia.org/wikipedia/commons/thumb/c/cd/Zh_conversion_icon_m.svg/35px-Zh_conversion_icon_m.svg.png)
![]() | |
![]() | |
NSA | |
Red Hat | |
1998 | |
| |
编程语言 | C |
Linux | |
类型 | |
许可协议 | GNU GPL |
网站 | SELinuxProject.org/page/Main Page |
SELinux
概 览
[编辑]
安全 增強 式 Linux是 一 組 給 Linux核心 的 修補 程 式 ,並 提供 一 些更強 、更 安全 的 強制 存 取 控 制 架 構來和 核心 的 主要 子 系統 共同 運 作 。基 於機密 及完整 性 原則 ,它提供 一個架構來強制資訊的分離,以對付 入 侵 的 威 脅 或 任 何 企圖 略 過 安全 架 構的應用 程 式 。藉此限 制 惡意 或 設計 不良 的 程 式 可能 造成 的 破壞 。它包含 一 組 安全 性 原則 組 態 設定 檔的範 本 以符合 一般 的 安全 性 目標
“
纯粹
历史
[编辑]SELinux
SELinux
SELinux实现
用 户、策略 和 安全 上下 文
[编辑]SELinuxruncon
bin_t
(显示/binpostgresql_port_t
(PostgreSQL
SELinux给Shellls
、ps
-Z
开关
一个典型的策略包含了一个映射文件(标记)audit2allow
特性
[编辑]SELinux
在 执行情 况下将 策略 完全 分 离定 义充分 的 策略 界面 支持 问询策略 并执行 访问控 制 的 应用程 序 (例 如Cron在 正 确的上下 文 环境中 运行工作 )独立 于特定 政策 和 策略 语言独立 于特定 安全 标签格式 与 内容 - 对内
核 目 标和服 务的独立 标记 支持 策略 更改 分 离保护系统完整 性 (域 名 类)和 数 据 保 密 (多 层安全 )的 措施- 灵活
的 策略 控 制 进程初 始 化 与 继承和 程 序 执行控 制 文 件 系 统、目 录、文 件 和 开放性 文 件 描述符 控 制 套接字 、信 息 和 网络界面 控 制 使用 “容量 ”(Capabilities)在 访问决定中通 过访问向 量 缓存(Access Vector Cache, AVC)预缓存 信 息 [7]
实现
[编辑]SELinux
SELinux
使用 情 形
[编辑]SELinux
chcon
,[15]
restorecon
,[16]
restorecond
,[17]
runcon
,[18]
secon
,[19]
fixfiles
,[20]
setfiles
,[21]
load_policy
,[22]
booleans
,[23]
getsebool
,[24]
setsebool
,[25]
togglesebool
[26]
setenforce
,
semodule
,
postfix-nochroot
,
check-selinux-installation
,
semodule_package
,
checkmodule
,
selinux-config-enforcing
,[27]
selinuxenabled
,[28]
及 selinux-policy-upgrade
[29]
示 例
[编辑]$ sudo setenforce 1
查询SELinux
$ getenforce
与 AppArmor的 对比
[编辑]SELinux
它们
- 一个重要的区别是,AppArmor
通 过路径 名 而非inode识别目 标文件 。这意味 着 在 AppArmor下 ,一个不可访问的文件可以通过创建硬链接得以访问(此时文 件 路 径 产生变化,而inode不 变);而在SELinux下 ,即 使 通 过创建 了 硬 链接改 变文件 路 径 ,访问也会被 阻止 。- 结果,AppArmor
可 被 称 为不是 一 个类型强制 系 统,因 为文件 并没有 被 分配 类型;相反 ,它们仅仅在 配置 文 件 中 被 引用 。
- 结果,AppArmor
- SELinux
和 AppArmor在 管理 和 整合 系 统的方面 存在 着 极大的 不同 。[30] 由 于其寻求使用 强制 访问控 制 级执行来 重 建 传统的 自主 访问控 制 ,AppArmor的 一系列操作也认为比大多数SELinux实现要 小 得 多 。例 如,AppArmor的 一 系列 操作 包含 了 :读、写 、附加 、执行、锁定和 链接。[31]大 多数 的 SELinux实现将 支持 一系列多于其的操作序列。比 如,SELinux通常 支持 相 同 权限,但 同 时对于mknod包含 了 控 制 、绑定到 网络包 、隐性使用 POSIX的 能力 、加 载并卸 载内核 模 块和多 种访问共享 内 存 的 方法 等 。- AppArmor
没 有能 明 确限制 POSIX功 能 的 控 制 项。由 于当前 功 能 实现的 方法 不 包含 操作 主 题的概念 (只 有 执行者 和 操作 本身 ),防止 执行者 外的 强制 控 制 领域(即 沙 箱 )授权文 件 操作 通常 由 MAC层完成 。AppArmor可 以防止 其策略 被 更改 和文 件 系 统被挂载/卸 载,但 不能 防止 用 户踏出 他 们的控 制 域 。例 如,人 们通常 认为桌面员工更改 他 们所不 拥有的 特定 文 件 (例 如:部 门文件 共 享 )的 所有 权或权限是 有益 的 。你绝对不会 想 给用户机器 的 root权限,所以 你会给他们CAP_FOWNER
或 CAP_DAC_OVERRIDE
。在 SELinux下 ,管理 员或平台 供 应商可 以通过配置 SELinux禁止 所有 其他未 受限用 户的能力 ,然 后 新建 一个给员工的受限域以在登陆后进行过渡。这种情 况可以给员工修 改 权限的 能力 ,但 仅限于合适类型 的 文 件 。
- AppArmor
没 有 多 层安全的 概念 ,因 此也没 有 硬性 的 贝尔-拉 帕杜拉 模型 或 比 巴 模型 强制 执行。 - AppArmor
的 配置 通 过唯一常规平面文件完成。SELinux(在 大 多数 实现中 为默认)则使用 平面 文 件 组合(在 编译前 由 管理 员和开发者 编写人 类可读的策略 )和 扩展属性 完成 。 - SELinux
支持 作 为策略 配置 替 代 源 的 "远程策略 服 务器"概念 (可 在 /etc/selinux/semanage.conf中 配置 )。AppArmor的 中心 化 管理 通常 十 分 复杂,这是因 为管理 员必须决定 策略 部署 工具 以root权限运行(以允许策略 更新 )或 在 每 台 服 务器上手 动配置 。
相似 系 统
[编辑]参 见
[编辑]参考 文献
[编辑]- ^ Release 3.7. 2024
年 6月 26日 [2024年 7月 15日 ]. - ^ Lawrence, Steve. Release. selinux. SELinux Project. 2022-05-18 [2022-05-18]. (
原始 内容 存 档于2021-01-06). - ^ SELinux Frequently Asked Questions (FAQ) - NSA/CSS. National Security Agency. [2013-02-06]. (
原始 内容 存 档于2018-09-18). - ^ Loscocco, Peter; Smalley, Stephen. Integrating Flexible Support for Security Policies into the Linux Operating System (PDF). February 2001 [2018-02-19]. (
原始 内容 存 档 (PDF)于2018-09-18). - ^ Security-Enhanced Linux - NSA/CSS. National Security Agency. 2009-01-15 [2013-02-06]. (
原始 内容 存 档于2019-07-19). - ^
比 较 National Security Agency Shares Security Enhancements to Linux. NSA Press Release. Fort George G. Meade, Maryland: National Security Agency Central Security Service. 2001-01-02 [2011-11-17]. (原始 内容 存 档于2018-02-20).The NSA is pleased to announce that it has developed, and is making available to the public, a prototype version of a security-enhanced Linux operating system.
- ^ Fedora Documentation Project. Fedora 13 Security-Enhanced Linux User Guide. Fultus Corporation. 2010: 18 [2012-02-22]. ISBN 978-1-59682-215-3. (
原始 内容 存 档于2020-06-08).SELinux decisions, such as allowing or disallowing access, are cached. This cache is known as the Access Vector Cache (AVC). Caching decisions decreases how often SELinux rules need to checked, which increases performance.
- ^ Security-Enhanced Linux in Android. Android Open Source Project. [2016-01-31]. (
原始 内容 存 档于2018-01-04). - ^ SELinux. debian.org. [2018-02-19]. (
原始 内容 存 档于2020-08-13). - ^ How To Install SELinux on Ubuntu 8.04 "Hardy Heron". Ubuntu Tutorials. [2018-02-19]. (
原始 内容 存 档于2017-07-05). - ^ openSUSE News. openSUSE News. [2018-02-19]. (
原始 内容 存 档于2020-09-28). - ^ Release Notes for SUSE Linux Enterprise Desktop 11. Novell. [2013-02-06]. (
原始 内容 存 档于2016-03-13). - ^ SELinux on CoreOS. CoreOS Docs. [2018-02-19]. (
原始 内容 存 档于2018-09-26). - ^ SELinux/Commands - FedoraProject. [2015-11-25]. (
原始 内容 存 档于2020-10-24). - ^ chcon. Linuxcommand.org. [2013-02-06]. (
原始 内容 存 档于2004-10-24). - ^ restorecon(8) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2021-02-27). - ^ restorecond(8) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2017-08-27). - ^ runcon(1) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2020-05-01). - ^ secon(1) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2019-10-26). - ^ fixfiles(8): fix file SELinux security contexts - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2020-05-03). - ^ setfiles(8): set file SELinux security contexts - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2020-05-01). - ^ load_policy(8) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2019-10-26). - ^ booleans(8) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2020-06-03). - ^ getsebool(8): SELinux boolean value - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2020-06-03). - ^ setsebool(8): set SELinux boolean value - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2019-10-26). - ^ togglesebool(8) - Linux man page. Linux.die.net. [2013-02-06]. (
原始 内容 存 档于2020-08-26). - ^ Ubuntu Manpage: selinux-config-enforcing - change /etc/selinux/config to set enforcing. Canonical. [2013-02-06]. (
原始 内容 存 档于2012-12-20). - ^ Ubuntu Manpage: selinuxenabled - tool to be used within shell scripts to determine if. Canonical. [2013-02-06]. (
原始 内容 存 档于2013-02-09). - ^ Ubuntu Manpage: selinux-policy-upgrade - upgrade the modules in the SE Linux policy. Canonical. [2013-02-06]. (
原始 内容 存 档于2012-04-04). - ^ SELinux backgrounds. SELinux. Security Guide. SUSE. [2018-02-19]. (
原始 内容 存 档于2016-07-01). - ^ apparmor.d - syntax of security profiles for AppArmor. [2018-02-19]. (
原始 内容 存 档于2013-10-17). - ^ Rainbow. laptop.org. [2018-02-19]. (
原始 内容 存 档于2020-12-25). - ^ SELinux Related Work. NSA.gov. [2018-02-19]. (
原始 内容 存 档于2018-02-20).
外部 链接
[编辑]官 方 网站- NSA:
- Security-Enhanced Linux (页面
存 档备份,存 于互联网档案 馆) at NSA - Mailing list (页面
存 档备份,存 于互联网档案 馆) - NSA shares security enhancements to Linux. Press release. Jan 2, 2001 [2018-02-19]. (
原始 内容 存 档于2018-02-20).
- Security-Enhanced Linux (页面
- GitHub
上 的 SELinux - Walsh, Daniel J. Visual how-to guide for SELinux policy enforcement. Opensource.com. 13 Nov 2013 [2018-02-19]. (
原始 内容 存 档于2017-07-07).
|
|
|