温馨提示×

centos selinux如何防止误操作

小樊
37
2025-11-23 18:13:01
栏目: 智能运维

总体思路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 <type> /path
    • 持久修正:semanage fcontext -a -t <type> "/path(/.*)?" 后执行 restorecon -R /path
  • 服务开关与特性
    • 通过 setsebool -P <boolean> on/off 控制细粒度行为(如 FTP 家目录写入、NFS 导出等),变更前评估影响并尽量使用持久化 -P 参数

故障排查与回退

  • 发现被拒访问时,先定位 AVC 拒绝事件:ausearch -m avc -ts recentaureport -a
  • 判定是否为合理访问:使用 audit2why 解释拒绝原因,必要时用 audit2allow -M <modname> 生成最小化自定义模块并通过 semodule -i <modname>.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 日志与策略效果,保持策略与业务演进同步更新

0