SELinux(Security-Enhanced Linux)是 Linux 操作系统中的一种安全模块,旨在提供更细粒度的访问控制。它最初由美国国家安全局(NSA)开发,目的是增强 Linux 系统的安全性。SELinux 通过强制访问控制(MAC, Mandatory Access Control)来补充传统的自主访问控制(DAC, Discretionary Access Control),从而限制进程和用户只能访问它们明确被允许访问的资源。
一、SELinux 的状态
SELinux 可以处于以下三种状态之一:
- Enforcing:启用并强制执行所有安全策略。任何违反策略的操作都将被阻止,并记录到日志中。
- Permissive:虽然会记录违反策略的行为,但不会阻止这些行为发生。这对于调试和测试非常有用。
- Disabled:完全禁用 SELinux。不推荐在生产环境中这样做,因为它会失去 SELinux 提供的所有保护。
二、管理 SELinux
管理 SELinux 包括配置策略、设置文件标签、调整域权限等。常用的命令和工具包括:
- sestatus:查看 SELinux 的当前状态。
- setenforce:临时切换 SELinux 的模式(从 enforcing 到 permissive 或反之)。
- getenforce:获取 SELinux 的当前模式。
- chcon:改变文件或目录的安全上下文(标签)。
- restorecon:恢复文件或目录的默认安全上下文。
- audit2allow:帮助分析日志中的拒绝事件,并生成相应的策略规则。
- semanage:管理 SELinux 策略数据库,如添加或修改类型、端口、用户等。
1、getenforce 获取 SELinux 的当前模式
g