温馨提示×

centos selinux安全级别调整

小樊
34
2025-11-15 19:19:43
栏目: 智能运维

SELinux 的运行模式与配置文件

  • SELinux 有三种运行模式:Enforcing(强制执行策略并记录/阻断违规)、Permissive(仅记录不阻断,便于排障)、Disabled(完全禁用,内核不加载 SELinux)。配置文件为 /etc/selinux/config,其中关键项为 SELINUX=(取值 enforcing/permissive/disabled)与 SELINUXTYPE=(常见取值 targetedmls)。此外,/etc/sysconfig/selinux 通常为指向 /etc/selinux/config 的符号链接。修改永久配置后需重启生效;在 EnforcingPermissive 之间可用 setenforce 即时切换。

查看当前状态

  • 查看即时运行模式:getenforce(返回 Enforcing/Permissive/Disabled)。
  • 查看详细状态:/usr/sbin/sestatus -v(含“Current mode”“Policy from config file”“Loaded policy name”等)。示例:
    • SELinux status: enabled
    • Current mode: enforcing
    • Policy from config file: targeted
  • 也可通过内核伪文件系统查看:cat /sys/fs/selinux/enforce(返回 1 表示 enforcing,0 表示 permissive)。

临时切换运行模式

  • EnforcingPermissive 间即时切换(无需重启):
    • 切换为宽容模式:sudo setenforce 0
    • 切换为强制模式:sudo setenforce 1
  • 用途与限制:用于快速验证是否为 SELinux 导致服务异常;若 setenforce 0 后问题依旧,通常不是 SELinux 引起。注意:处于 Disabled 状态时,setenforce 无法切换模式,必须改配置并重启。

永久调整与生效方式

  • 编辑配置文件:sudo vi /etc/selinux/config,设置 SELINUX= 为所需模式(如 enforcing/permissive/disabled),常见 SELINUXTYPE=targeted。示例:
    • 强制模式:SELINUX=enforcing
    • 宽容模式:SELINUX=permissive
    • 禁用模式:SELINUX=disabled
  • 使配置生效:
    • Permissive/Disabled → Enforcing 或反向切换时,需重启系统;若从 Disabled 改为 Enforcing/Permissive,还需为文件系统重新打安全标签:sudo touch /.autorelabel && sudo reboot
    • 仅从 Enforcing ↔ Permissive 切换,可直接 setenforce 即时生效,重启后按配置文件恢复。
  • 风险提示:生产环境不建议长期设为 Disabled,会降低系统安全基线。

故障排查与策略调整建议

  • 排障首选:将模式临时设为 Permissive 验证问题是否消失;若消失,说明与 SELinux 策略相关。
  • 查看拒绝日志:/var/log/audit/audit.log(若未安装审计服务,可查看 /var/log/messages 中与 SELinux 相关的拒绝记录),依据 AVC 拒绝信息定位问题。
  • 常见修复:
    • 恢复默认文件上下文:sudo restorecon -Rv /path
    • 管理布尔值:getsebool -a 查看;sudo setsebool -P <name> on/off 持久化开启/关闭某功能(如 httpd_can_network_connect)。
    • 管理文件/目录类型上下文:sudo semanage fcontext -a -t <type> "/path(/.*)?"restorecon -Rv /path
  • 策略类型:targeted 为默认并推荐;mls 适用于更严格的场景,改动需充分评估。

0