以下是CentOS中SELinux上下文(context)设置的最佳实践,核心围绕安全、高效和可维护性展开:
启用并验证SELinux
sestatus 查看状态,setenforce 1 临时切换(需永久修改需编辑 /etc/selinux/config)。备份策略配置
cp -R /etc/selinux /etc/selinux.bak。优先使用semanage工具(推荐)
semanage fcontext -a -t context_type "/path/to/target(/.*)?"(支持通配符)。semanage fcontext -a -t httpd_sys_content_t "/var/www/html(/.*)?"。restorecon -Rv /path/to/target 使更改生效。谨慎使用chcon命令
restorecon后失效),避免直接用于永久配置。-R 参数,如:chcon -R -t httpd_sys_content_t /var/www。利用布尔值控制服务权限
setsebool 快速调整服务访问权限,如允许FTP匿名写入:setsebool -P allow_ftpd_anon_write 1。getsebool -a,按需启用或禁用。处理拒绝日志与自定义策略
ausearch -m avc 或 aureport -m 分析日志。audit2allow 生成自定义策略模块:grep "拒绝信息" /var/log/audit/audit.log | audit2allow -M mypolicy,然后安装模块:semodule -i mypolicy.pp。最小权限原则
public_content_rw_t)。ls -Z /path/to/critical_dirs,清理冗余或错误的标签。定期更新与合规检查
yum update policycoreutils-python 保持工具和策略最新。system-config-selinux(需安装)简化上下文配置。semanage和restorecon),并纳入版本控制。关键提示:所有修改前需在测试环境验证,避免影响生产服务。优先通过semanage和restorecon实现永久、可审计的上下文管理,减少直接使用chcon的频率。