centos context的最佳实践是什么
导读:CentOS SELinux Context 最佳实践 一 基础与运行模式 明确目标:在生产环境中将 SELinux 设为 Enforcing,仅在排障时短时切换到 Permissive;Disabled 需要重打标签并重启,风险高。 常...
CentOS SELinux Context 最佳实践
一 基础与运行模式
- 明确目标:在生产环境中将 SELinux 设为 Enforcing,仅在排障时短时切换到 Permissive;Disabled 需要重打标签并重启,风险高。
- 常用检查与切换:
- 查看状态:
sestatus、getenforce - 临时切换:
setenforce 0|1(0=Permissive,1=Enforcing) - 永久生效:编辑 /etc/selinux/config 的 SELINUX=enforcing/permissive/disabled,必要时重启
- 查看状态:
- 原则:能用精确类型与路径规则解决的,优先不改全局模式;Permissive 仅作诊断,避免长期开启以减少日志噪声与误判风险。
二 文件系统上下文管理
- 查看与验证:用
ls -Z检查文件/目录上下文,确保与预期类型一致(如 Web 内容常为 httpd_sys_content_t)。 - 永久变更优先:
- 添加默认映射:
semanage fcontext -a -t < type> "< path> (/.*)?" - 应用映射:
restorecon -Rv < path>(递归、显示过程)
- 添加默认映射:
- 临时变更慎用:
chcon -t < type> < path>仅在紧急或测试时使用,系统重标记或策略更新后可能失效。 - 典型示例:
- Web 目录:
semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?" & & restorecon -Rv /var/www/html - MySQL 数据:
semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?" & & restorecon -Rv /var/lib/mysql
- Web 目录:
- 原则:以“默认类型映射 + restorecon”为主路径,避免到处用 chcon 打散策略可预期性。
三 排障与策略优化
- 快速定位拒绝:
- 查看 AVC 拒绝:
ausearch -m avc -ts recent - 人性化分析:
sealert -a /var/log/audit/audit.log(需安装 setroubleshoot 工具)
- 查看 AVC 拒绝:
- 最小权限原则生成模块:
- 从拒绝日志生成模块:
ausearch -m avc -ts recent | audit2allow -M < name> - 加载模块:
semodule -i < name> .pp
- 从拒绝日志生成模块:
- 优先用布尔值微调:
- 查看/设置:
getsebool < name>、setsebool -P < name> on|off(持久化加 -P)
- 查看/设置:
- 原则:先判因(路径类型是否正确、端口/进程是否匹配、是否缺少布尔值),再决定是否生成策略模块,避免过度授权。
四 常见场景与端口管理
- 端口上下文:为自定义服务端口设置类型,例如将 12345/tcp 标记为 http_port_t:
semanage port -a -t http_port_t -p tcp 12345
- Web/Nginx 静态内容:
semanage fcontext -a -t httpd_sys_content_t "/usr/share/nginx/html(/.*)?" & & restorecon -Rv /usr/share/nginx/html
- 日志写入问题:若服务因上下文无法写日志,先核对日志目录类型与属主属组,再决定是否用布尔值或最小策略模块放行,避免直接放宽为 permissive。
- 原则:端口、进程、文件类型三者匹配;能用内置类型与布尔值的,不写自定义模块。
五 运维与治理
- 变更流程:
- 备份关键配置:
cp -R /etc/selinux /etc/selinux.bak,以及自定义文件上下文(如 /etc/selinux/targeted/contexts/files/file_contexts.local) - 先在测试环境验证,再上线;上线后复核
restorecon覆盖范围与影响面
- 备份关键配置:
- 规则治理:
- 列出与清理:
semanage fcontext -l定期检查,删除不再使用的规则(semanage fcontext -d -t < type> "< path> (/.*)?") - 合并同类规则,优先使用通配路径,减少碎片化规则
- 列出与清理:
- 持续维护:
- 保持系统与 SELinux 工具链更新(
yum/dnf update),定期审计 AVC 报表(aureport) - 文档化自定义路径、端口与模块,便于交接与回溯
- 保持系统与 SELinux 工具链更新(
- 原则:可重复、可回滚、可审计;变更留痕,定期收敛策略。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos context的最佳实践是什么
本文地址: https://pptw.com/jishu/785106.html
