温馨提示×

centos selinux安全级别如何调整

小樊
39
2025-12-07 12:31:07
栏目: 智能运维

SELinux 的运行模式与配置文件

  • SELinux 有三种运行模式:Enforcing(强制)Permissive(宽容)Disabled(禁用)。配置文件为 /etc/selinux/config,关键项为 SELINUX=(取值 enforcing/permissive/disabled)与 SELINUXTYPE=(常见取值 targeted/minimum/mls)。查看与切换命令:getenforcesetenforce 0|1sestatus。注意:从 Enforcing ↔ Permissive 可临时切换且无需重启;涉及 Disabled 或更改 SELINUXTYPE 时必须重启系统才能生效。

调整步骤与常用命令

  • 临时切换(立即生效,重启后失效)

    • 设为宽容模式:sudo setenforce 0
    • 设为强制模式:sudo setenforce 1
    • 查看当前模式:getenforcesestatus | grep "Current mode"
  • 永久调整(修改配置文件,必要时重启)

    • 编辑配置文件:sudo vim /etc/selinux/config
    • 示例(设为强制):SELINUX=enforcing
    • 示例(设为宽容):SELINUX=permissive
    • 示例(彻底禁用):SELINUX=disabled(需重启;不建议禁用)
    • 使永久配置生效:执行 sudo reboot(或先切到 Permissive 再重启以加载新策略)
  • 策略类型选择(可选)

    • 常见为 SELINUXTYPE=targeted;如要使用 mls,需安装相应策略包(如 selinux-policy-mls),更改后需重启。

排错与验证

  • 验证模式与策略:sestatusgetenforce
  • 查看拒绝日志:sudo ausearch -m avc -ts recent 或查看 /var/log/audit/audit.log
  • 生成与加载临时策略:sudo grep "denied" /var/log/audit/audit.log | audit2allow -M mypolicy && sudo semodule -i mypolicy.pp
  • 文件/目录安全上下文
    • 查看:ls -Zls -Zd
    • 临时修正:chcon -t 类型 路径(加 -R 递归)
    • 永久修正:semanage fcontext -a -t 类型 '路径(/.*)?' && restorecon -Rv 路径
  • 端口类型(如改了 SSH 端口)
    • 添加端口到 SELinux:sudo semanage port -a -t ssh_port_t -p tcp 新端口
  • 布尔值(按需开启功能)
    • 例如:sudo setsebool -P httpd_can_network_connect 1

注意事项与建议

  • 生产环境优先使用 Enforcing;排错时临时切到 Permissive,确认无误再回到 Enforcing
  • 不建议长期 Disabled;若必须禁用,修改 /etc/selinux/configSELINUX=disabled 并重启;后续若要重新启用,需再次重启并执行 touch /.autorelabel 以修复文件标签。
  • 修改 SELINUXTYPE(如从 targeted 改为 mls)需要重启,且需确保相应策略包已安装。
  • 调整服务端口、目录映射等场景,务必同步处理 SELinux 的端口类型文件上下文,否则即使防火墙放行仍可能被 SELinux 拒绝。

0