温馨提示×

centos selinux安全级别怎么选

小樊
37
2025-12-25 06:28:15
栏目: 智能运维

CentOS 中 SELinux 安全级别选择指南

一、先明确两个维度

  • 运行模式(决定拦不拦):
    • Enforcing:强制执行策略,违规访问会被拒绝并记录日志。
    • Permissive:只记录不拦截,便于排障与过渡。
    • Disabled:完全关闭 SELinux,需重启才生效,且从 disabled 切回 enforcing 也必须重启。
  • 策略类型(决定怎么拦):
    • targeted:默认策略,仅对部分关键进程做强制访问控制,其他进程多为 unconfined_t,对业务影响小、易用性高。
    • mls:多级安全策略,粒度极细但配置复杂,多用于高安全场景(如涉密),一般服务器不建议使用。

二、不同场景的选择建议

场景 运行模式 策略类型 说明
生产业务服务器 Enforcing targeted 兼顾安全与可用性,是默认且推荐的稳态选择。
新应用上线或故障排查 Permissive targeted 先放行并记录 AVC 拒绝日志,定位后再回到 Enforcing。
学习/测试、短期快速交付 可临时 Disabled targeted 为降低复杂度可临时关闭;上线前应恢复 Enforcing 或改为 Permissive 并调策略。
高安全/涉密要求 Enforcing mls 需充分评估与专人运维,准备完整的标签与策略工程。

三、快速切换与验证

  • 查看与临时切换
    • 查看状态:getenforcesestatus
    • 临时切换:setenforce 0(Permissive)、setenforce 1(Enforcing);仅能在 enforcing/permissive 间切换,不能 setenforce 到 disabled。
  • 永久生效
    • 编辑配置文件:/etc/selinux/config
      • 设置模式:SELINUX=enforcing|permissive|disabled
      • 设置策略:SELINUXTYPE=targeted|mls
    • 注意:改为 disabled 或首次启用 mls 通常需要重启;从 disabled 改回 enforcing 也需重启。
  • 变更后自检
    • 重启后用 getenforcesestatus 确认;若切到 mls,建议按引导执行文件重标记(如创建 /.autorelabel 或执行 fixfiles -F onboot)。

四、排障与策略收敛建议

  • 先看拒绝日志:ausearch -m avc -ts recentgrep denied /var/log/audit/audit.log;必要时安装 setroubleshoot 并使用 sealert -l <UUID> 获取可读化建议。
  • 宽容期收敛策略:
    • 自动生成模块:audit2allow -a -M mypolicy
    • 加载模块:semodule -i mypolicy.pp
  • 文件与端口上下文:
    • 持久化设置文件上下文:semanage fcontext -a -t <type> "/path(/.*)?"
    • 应用上下文:restorecon -R /path
    • 放通端口类型:semanage port -a -t <port_type> -p tcp <port>
  • 细粒度开关:用 getsebool -a | grep <服务名> 查看布尔值,必要时 setsebool -P <name> on/off 持久化调整。

0