阅读量:2
总体思路 在 CentOS 上,将 SELinux 保持在 Enforcing 模式,以 最小权限原则约束进程与文件访问;即便 root 也要遵循 SELinux 策略,从而在误操作发生时及时阻断并告警,降低对系统的影响范围。
快速防护配置
- 确认与切换模式
- 查看状态:
getenforce(返回 Enforcing/Permissive/Disabled) - 临时切换:
setenforce 0(Permissive,仅记录不阻断)或setenforce 1(Enforcing) - 永久生效:编辑 /etc/selinux/config,设置
SELINUX=enforcing,重启后保持
- 查看状态:
- 基线加固
- 保持默认策略 targeted;避免给关键目录设置 777 权限,优先用 SELinux 与最小权限控制访问
- 对关键服务(如 httpd、mysqld、sshd)确保运行在各自的受限域(如 httpd_t),避免长期停留在 unconfined_t
- 文件与目录上下文
- 查看:
ls -Z /path - 临时修正:
chcon -R -t/path - 持久修正:
semanage fcontext -a -t后执行"/path(/.*)?" restorecon -R /path
- 查看:
- 服务开关与特性
- 通过
setsebool -P控制细粒度行为(如 FTP 家目录写入、NFS 导出等),变更前评估影响并尽量使用持久化on/off -P参数
- 通过
故障排查与回退
- 发现被拒访问时,先定位 AVC 拒绝事件:
ausearch -m avc -ts recent或aureport -a - 判定是否为合理访问:使用
audit2why解释拒绝原因,必要时用audit2allow -M生成最小化自定义模块并通过semodule -i安装.pp - 临时回退以恢复业务:
setenforce 0(进入 Permissive 模式仅告警不阻断),故障修复后再切回 Enforcing - 避免长期使用
chcon直接改标签,优先用semanage fcontext + restorecon保证重启与策略更新后的持久一致性
常见场景与命令清单
| 场景 | 关键命令 | 要点 |
|---|---|---|
| Web 目录迁移后 403 | ls -Z /var/www/html; semanage fcontext -a -t httpd_sys_content_t "/webdata(/.*)?"; restorecon -R /webdata |
让自定义目录获得 httpd 可读类型 |
| FTP 匿名写入 | setsebool -P allow_ftpd_anon_write 1 |
按需开启布尔值,变更后验证 |
| 查看进程域 | `ps auxZ | grep |
| 分析拒绝原因 | ausearch -m avc -ts recent; audit2why |
先研判再决定是否放行或写策略 |
| 临时放行排障 | setenforce 0 |
仅排障用,修复后务必恢复 Enforcing |
运维建议
- 生产环境始终启用 SELinux Enforcing,并遵循 最小权限原则;将 SELinux 作为多层防护的一环,与 firewalld/iptables、Fail2Ban、云安全组 协同使用
- 变更前在测试环境验证,变更后持续监控 AVC 日志与策略效果,保持策略与业务演进同步更新
以上就是关于“centos selinux如何防止误操作”的相关介绍,筋斗云是国内较早的云主机应用的服务商,拥有10余年行业经验,提供丰富的云服务器、租用服务器等相关产品服务。云服务器资源弹性伸缩,主机vCPU、内存性能强悍、超高I/O速度、故障秒级恢复;电子化备案,提交快速,专业团队7×24小时服务支持!
简单好用、高性价比云服务器租用链接:https://www.jindouyun.cn/product/cvm