阅读量:64
CentOS中修复SELinux漏洞的核心步骤如下:
-
查看状态与日志
- 用
sestatus确认SELinux是否启用及模式(Enforcing/Permissive/Disabled)。 - 通过
sudo ausearch -m avc -ts recent查看/var/log/audit/audit.log,定位被拦截的操作及原因。
- 用
-
临时规避(调试用)
- 用
sudo setenforce 0将模式设为Permissive(仅记录违规,不拦截),重启后恢复默认。
- 用
-
修复策略问题
- 修改文件上下文:
- 临时修复:
sudo chcon -t 目标类型 /path/to/file(如httpd_sys_content_t)。 - 永久修复:
sudo semanage fcontext -a -t 目标类型 "/path/to/file(/.*)?",再执行sudo restorecon -Rv /path/to/file。
- 临时修复:
- 生成自定义策略模块:
用audit2allow工具根据日志生成模块:
sudo ausearch -c '命令' --raw | audit2allow -M 模块名,然后sudo semodule -i 模块名.pp。
- 修改文件上下文:
-
更新系统策略
- 用
sudo yum update selinux-policy*更新策略包,确保规则为最新。 - 用
sudo restorecon -Rv /重新加载文件上下文。
- 用
-
永久模式调整(谨慎操作)
- 编辑
/etc/selinux/config,将SELINUX=enforcing改为permissive或disabled,重启生效。 - 注意:Disabled模式会完全关闭SELinux,仅建议在测试环境使用。
- 编辑
关键提醒:操作前备份重要数据,优先在测试环境验证策略修改,避免误操作导致系统不稳定。如需进一步帮助,可参考SELinux官方文档或社区论坛。