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 1
bash
audit2allow -a # 根据日志生成允许规则
自定义策略模块:
grep "avc:" /var/log/audit/audit.log | audit2allow -M mypolicy
semodule -i mypolicy.pp
semodule -B
)。container_t
)。通过合理配置,SELinux能显著减少漏洞利用风险,是Linux系统安全的强力加固层。