SELinux(安全增强型 Linux)是一个 Linux 内核模块,它提供了一种强制访问控制(MAC)机制,用于限制进程对系统资源的访问。SELinux 策略定义了进程可以访问哪些资源,以及以何种方式访问。
SELinux 策略分为两种类型:公共策略和私有策略。公共策略适用于整个系统,而私有策略仅适用于特定域或进程。了解这两种策略之间的差异对于有效管理 SELinux 非常重要。
公共策略
公共策略位于 /etc/selinux/policy/policy.conf
文件中。它定义了适用于整个系统的规则。公共策略中的规则可以分为以下几类:
- 类型转换规则:这些规则指定进程如何能够将对象从一种类型转换为另一种类型。例如,一个规则可能允许一个进程将一个文件从类型
user_home_dir
转换为类型user_tmp_t
。 - 准许规则:这些规则指定进程可以执行什么操作。例如,一个规则可能允许一个进程从类型
user_home_dir
读取文件。 - 拒绝规则:这些规则指定进程不能执行什么操作。例如,一个规则可能拒绝一个进程从类型
user_tmp_t
写入文件。
私有策略
私有策略位于 /etc/selinux/policy/private/
目录中。它们适用于特定域或进程。私有策略中的规则可以覆盖公共策略中的规则。
私有策略中可以定义以下类型的规则:
- 类型转换规则:这些规则指定进程如何能够将对象从一种类型转换为另一种类型。
- 准许规则:这些规则指定进程可以执行什么操作。
- 拒绝规则:这些规则指定进程不能执行什么操作。
公共策略和私有策略的区别
公共策略和私有策略之间的主要区别在于它们适用的范围。公共策略适用于整个系统,而私有策略仅适用于特定域或进程。这意味着私有策略中的规则可以覆盖公共策略中的规则。
下表总结了公共策略和私有策略之间的主要差异:
| 特性 | 公共策略 | 私有策略 |
|—|—|—|
| 作用域 | 整个系统 | 特定域或进程 |
| 优先级 | 低于私有策略 | 高于公共策略 |
| 位置 | /etc/selinux/policy/policy.conf
| /etc/selinux/policy/private/
|
何时使用私有策略
私有策略通常用于以下目的:
- 限制对敏感资源的访问:例如,您可以创建私有策略来限制对数据库文件的访问。
- 隔离进程:例如,您可以创建私有策略来隔离 Web 服务器进程,以防止它们访问其他系统资源。
- 实施自定义安全规则:例如,您可以创建私有策略来实施组织特定的安全规则。
结论
SELinux 公共策略和私有策略是控制进程对系统资源访问的强大工具。通过了解这两种策略之间的差异,您可以有效地管理 SELinux 以提高系统的安全性。
常见问题解答
1. 什么时候应该使用公共策略?
公共策略应用于定义适用于整个系统的规则。
2. 什么时候应该使用私有策略?
私有策略应用于定义仅适用于特定域或进程的规则。
3. 公共策略和私有策略之间的优先级如何?
私有策略优先于公共策略。这意味着私有策略中的规则可以覆盖公共策略中的规则。
4. 如何创建私有策略?
要创建私有策略,请在 /etc/selinux/policy/private/
目录中创建一个新文件。该文件应以 .te
扩展名结尾。
5. 如何编译私有策略?
要编译私有策略,请运行以下命令:
bash
make -f /etc/selinux/src/selinux.mk private-policy
原创文章,作者:王利头,如若转载,请注明出处:https://www.wanglitou.cn/article_25398.html