【Linux】第十九章 管理SELinux安全性
1. SELinux是如何保护资源的?
SELinux 通过 强制访问控制(MAC) 和 安全上下文 的机制,在操作系统级别提供了细粒度的安全控制。它通过定义进程和资源之间的访问策略,阻止未经授权的进程访问敏感数据或执行恶意操作。SELinux 的引入使得 Linux 系统在面对恶意攻击和漏洞时更加坚固,能有效保护系统免受未经授权的访问和操作。
SELinux 有三种模式:
- Enforcing:SELinux 强制执行访问控制规则,机器通常在该模式下运行
- Permissive:SELinux 处于活动状态,但并不强制执行访问控制规则, 而是记录违反规则的日志,该模式主要用于测试和故障排除
- Disabled:SELinux 完全关闭(需要系统重启)
自 RHEL9 起,只能通过在启动时使用 selinux=0 内核参数来完全禁用 SELinux。RHEL 不再支持在 /etc/selinux/config 文件中设置 SELINUX=disabled 选项。
2. 什么是自由决定的访问控制(DAC)?它有什么特点?
自由决定的访问控制(DAC)即大多数 Linux 管理都熟悉的标准的用户、组和全局文件权限安全模型,它的特点是资源的拥有者可以随意修改或授予此资源相应的权限。
3. 什么是强制访问控制(MAC)?它有什么特点?
强制访问控制(MAC)通过强制实施访问控制策略来提高系统的安全性。与自由决定的访问控制(DAC)不同,MAC 不允许用户随意更改访问权限,而是基于系统定义的策略进行访问控制。虽然它更安全,但也更复杂,需要精确配置和管理。MAC 在高安全性环境中非常重要,能够有效防止数据泄漏、滥用和恶意攻击。
4. 什么是SELinux上下文?
在运行SELinux的系统上,每个资源实体(如文件、进程、目录或端口)都有一个标签,代表了与安全有关的信息,称为 SELinux上下文 ,上下文标签与定义的SELinux策略规则匹配,以允许进程访问带有这些标签的资源。
SELinux 标签具有 user、role、type、security level字段,RHEL中默认启用的目标策略使用type上下文定义规则,该上下文名称通常以 _t 结尾。
5. setenforce 0命令的作用是什么?
setenforce 0 命令将SELinux设为许可模式,即SELinux处于活跃状态,但并不强制执行访问控制规则,而是记录违反规则的警告。即Permissive模式。
6. 定义一条SELinux 文件上下文规则,以便将 /custom 目录及目录中所有文件的上下文类型设置 为httpd_sys_content_t。
semanage fcontext命令可显示和修改文件默认 context 规则:
- a,--add 添加指定对象类型的记录
- d,--delete 删除指定对象类型的记录
- l,--list 列出指定对象类型的记录
semanage fcontext -a -t httpd_sys_content_t ‘/custom(/.*)’ 。该命令声明了上下文规则,然后使用 restorecon -Rv /custom 命令将上下文应用于文件。(/.*)?:表示“可递归匹配后跟任何数量字符的 / ”。
chcon命令更改 SELinux context,但它不会将context更改保存到 SELinux context 数据库中,运行 restorecon 后会还原。