SELinux(Security-Enhanced Linux)是 Linux 系统的一个强制访问控制(MAC, Mandatory Access Control)安全模块,由美国国家安全局(NSA)主导开发,旨在通过更细粒度的权限控制提升系统安全性。
与传统Linux的区别:
rwx)。工作模式:
关键组件:
targeted策略保护常见服务)。user:role:type),例如:bash
-rw-r--r--. 1 root root system_u:object_r:httpd_sys_content_t /var/www/html/index.html限制服务权限:
httpd_sys_content_t的文件,即使配置文件权限为777也会被拒绝。保护系统进程:
合规性要求:
| 功能 | 命令示例 |
|---|---|
| 查看状态 | sestatus 或 getenforce |
| 临时切换模式 | setenforce 0(Permissive)或 setenforce 1(Enforcing) |
| 修改文件上下文 | chcon -t httpd_sys_content_t /path/to/file |
| 恢复默认上下文 | restorecon -Rv /path |
| 分析日志 | ausearch -m AVC -ts recent 或 sealert -a /var/log/audit/audit.log |
权限被拒绝时:
/var/log/audit/audit.log 或 journalctl -xe。bash
setenforce 0
# 测试功能
setenforce 1bash
audit2allow -a # 根据日志生成允许规则自定义策略模块:
grep "avc:" /var/log/audit/audit.log | audit2allow -M mypolicy
semodule -i mypolicy.pp
semodule -B)。container_t)。通过合理配置,SELinux能显著减少漏洞利用风险,是Linux系统安全的强力加固层。