阅读量:3
CentOS SELinux 模块加载流程
一 前置检查与准备
- 确认 SELinux 处于可用状态:当前模式应为 Enforcing 或 Permissive,若为 Disabled 需先在配置中启用并重启。命令:
getenforce、sestatus。配置文件:/etc/selinux/config(设置 SELINUX=enforcing|permissive;策略类型 SELINUXTYPE=targeted|mls)。临时切换:sudo setenforce 1|0。若为 Disabled,需改为 Permissive 后重启,完成文件重新标记再切回 Enforcing。目标策略通常为 targeted。这些步骤确保内核与用户态工具就绪、策略存储可用。
二 模块加载的两条路径
- 预编译模块包加载(推荐)
- 获取或构建 .pp(策略包)文件后,使用
semodule -i将模块安装到当前策略存储;已存在同名模块会被升级。常用:semodule -l查看已加载模块,semodule -r卸载模块。此方式由工具自动完成校验、依赖解析与策略数据库更新,适合生产环境。
- 获取或构建 .pp(策略包)文件后,使用
- 源码模块编译加载(开发/调试)
- 编写 .te(类型强制规则)、可选的 .fc(文件上下文)、.if(接口);使用
checkmodule -M -m -o编译模块,再用.mod .te semodule_package -o打包为 .pp;最后.pp -m .mod semodule -i加载。该流程便于按需定制与迭代策略。.pp
- 编写 .te(类型强制规则)、可选的 .fc(文件上下文)、.if(接口);使用
三 加载后的生效与验证
- 生效范围:模块被加载到内核中的 策略存储(policy store) 后,对所有新创建/访问的进程与对象立即生效;已运行进程在下一次域转换或资源访问时按新策略决策。
- 快速验证:
- 查看模块是否到位:
semodule -l | grep; - 查看整体状态:
sestatus(关注 Loaded policy name、Mode、Policy from config file); - 观察拒绝事件:
sudo ausearch -m avc -ts recent或sudo cat /var/log/audit/audit.log | grep AVC | audit2why,必要时用audit2allow -M生成修复模块再加载。
- 查看模块是否到位:
四 常见注意事项
- 模式与重启:从 Disabled 改为 Enforcing/Permissive 需重启;在 Permissive 下完成文件上下文修复后再切回 Enforcing 更安全。
- 策略类型:确认 /etc/selinux/config 中 SELINUXTYPE=targeted(或所需类型)与系统实际使用的策略一致,避免模块与策略类型不匹配。
- 文件与布尔:新增文件需有正确 安全上下文(必要时
restorecon);功能开关可通过 SELinux 布尔值 调整(如setsebool -P),减少定制模块数量。on|off
以上就是关于“centos selinux模块加载流程”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm