SELinux策略如何管理
导读:SELinux策略管理实战指南 一 基础与运行模式 查看状态与模式 查看当前模式:getenforce(返回 Enforcing/Permissive/Disabled) 查看详细状态:sestatus(含策略类型、策略版本、挂载点等)...
SELinux策略管理实战指南
一 基础与运行模式
- 查看状态与模式
- 查看当前模式:getenforce(返回 Enforcing/Permissive/Disabled)
- 查看详细状态:sestatus(含策略类型、策略版本、挂载点等)
- 临时切换模式(立即生效,重启失效)
- 设为宽容模式:setenforce 0 或 setenforce Permissive
- 设为强制模式:setenforce 1 或 setenforce Enforcing
- 永久配置
- 配置文件:/etc/selinux/config
- 关键项:SELINUX=enforcing|permissive|disabled,SELINUXTYPE=targeted|mls|minimum
- 注意:在 RHEL 9 及以上版本,若要完全禁用 SELinux,需在引导参数中使用 selinux=0;仅修改 /etc/selinux/config 不再生效。恢复启用可用 grubby --update-kernel ALL --remove-args selinux。
二 安全上下文与标签管理
- 查看标签
- 文件/目录:ls -Z
- 进程:ps -eZ
- 网络连接:ss -tulpnZ
- 修改与恢复
- 临时修改标签:chcon -t 类型 路径(如:chcon -t httpd_sys_content_t /var/www/html/index.html)
- 恢复默认标签:restorecon -Rv 路径(如:restorecon -Rv /var/www/html)
- 永久修改默认标签规则
- 文件/目录默认上下文:semanage fcontext -a -t 类型 “路径(/.*)?”;随后执行 restorecon -Rv 路径 使规则生效
- 端口与类型映射:semanage port -a -t 类型 -p 协议 端口(如:semanage port -a -t http_port_t -p tcp 8080;查看映射:semanage port -l | grep http)
- 常用类型示例
- Web 内容:httpd_sys_content_t
- Web 端口:http_port_t(常见:80, 443, 8080 等)
三 策略规则与布尔值
- 策略模块管理
- 从拒绝日志生成模块:grep nginx /var/log/audit/audit.log | audit2allow -M nginx
- 编译并加载模块:semodule -i nginx.pp
- 策略查询与分析
- 安装工具集:setools-console
- 查看策略元素:seinfo -t | grep 关键字(类型/域等)
- 搜索规则:sesearch -A -s 源域 -t 目标类型(分析 allow/deny 等)
- 布尔值开关
- 查看:getsebool 布尔名
- 修改:setsebool 布尔名 on|off;持久化:setsebool -P 布尔名 on|off
- 示例:setsebool -P ftpd_full_access on(按需开启 FTP 相关策略)
四 故障排查与Ubuntu启用
- 故障排查流程
- 查看最近 AVC 拒绝:ausearch -m avc -ts recent
- 生成报告:aureport -m avc
- 图形化辅助:sealert -a /var/log/audit/audit.log
- 在 Ubuntu 启用 SELinux
- 安装组件:sudo apt update & & sudo apt install selinux-basics selinux-policy-default
- 启用:sudo setenforce 1;永久:/etc/selinux/config 中设 SELINUX=enforcing 并重启
- 注意:部分文档提到 Ubuntu 默认未安装/未启用 SELinux,启用前请评估对现有服务的影响
五 生产环境建议
- 变更前在测试环境验证,遵循“最小权限”原则,优先用 semanage fcontext/port 做永久配置,避免长期停留在 Permissive 模式
- 对复杂问题,结合 ausearch/aureport/sealert 精确定位,再用 audit2allow/semodule 生成最小必要模块
- 在 RHEL 9+ 如需彻底禁用,使用 grubby 设置内核参数;其他场景建议保持 Enforcing 并持续审计优化策略
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: SELinux策略如何管理
本文地址: https://pptw.com/jishu/754962.html
