如何快速检查SELinux安全状态?

查看 SELinux 运行状态

  1. 使用 sestatus 命令

    sestatus
    • 关键输出
      • SELinux status: enabled(已启用)或 disabled(已禁用)
      • Current mode: enforcing(强制模式)、permissive(宽容模式)或 disabled
      • Policy version: 当前策略版本(如 31
      • Policy from config file: 加载的策略名称(如 targeted
  2. 检查内核参数

    grep -E "SELINUX=|SELINUXTYPE=" /etc/selinux/config
    • 结果说明
      • SELINUX=enforcing:系统重启后将启用强制模式
      • SELINUXTYPE=targeted:默认策略类型(针对网络服务限制)

查看当前模式(无需重启)

getenforce
  • 返回结果:
    • Enforcing:强制模式(拒绝违规操作并记录日志)
    • Permissive:宽容模式(仅记录日志,不阻止操作)
    • Disabled:已禁用

查看策略详情

  1. 列出所有布尔值(动态开关)

    getsebool -a
    • 示例输出:
      httpd_can_network_connect --> off(表示 Apache 禁止联网)
    • 修改布尔值
      setsebool -P httpd_can_network_connect on  # -P 永久生效
  2. 检查文件/目录的上下文标签

    ls -Z /var/www/html
    • 输出示例
      -rw-r--r--. root root system_u:object_r:httpd_sys_content_t index.html

      • 关键字段:httpd_sys_content_t(Web 内容默认标签)
  3. 查看进程的上下文

    ps -eZ | grep nginx
    • 输出示例:
      system_u:system_r:httpd_t:s0 1234 ? nginx

      • httpd_t:Web 服务进程的默认标签

诊断 SELinux 拒绝事件

  1. 查看审计日志

    ausearch -m AVC,USER_AVC -ts today  # 查询今日的拒绝记录
    • 关键字段
      scontext=system_u:system_r:httpd_t(源上下文)
      tcontext=system_u:object_r:samba_share_t(目标上下文)
      tclass=file(操作对象类型)
  2. 使用 sealert 生成分析报告

    sealert -a /var/log/audit/audit.log
    • 该工具会提供解决方案建议(需安装 setroubleshoot 包)

常见问题排查

  • 服务无法启动
    检查日志中的 AVC denied 记录,确认是否因标签错误导致。
  • 文件访问被拒
    使用 restorecon 修复标签:

     restorecon -Rv /path/to/file  # -R 递归修复,-v 显示详情
  • 临时切换模式(调试用):
     setenforce 0  # 切换为 Permissive 模式
     setenforce 1  # 切回 Enforcing 模式

重要提示

  • 修改配置后需重启生效:reboot
  • 生产环境避免禁用 SELinux,优先调整策略或布尔值
  • 策略包更新命令:yum update selinux-policy*

引用说明
本文操作基于 CentOS/RHEL 8 及 SELinux 官方文档,参考来源:

  • Red Hat SELinux 用户手册(https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/using_selinux/index)
  • NSA SELinux 项目(https://github.com/SELinuxProject)
  • Linux 手册页(man semanage, man auditd

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/9213.html

(0)
酷番叔酷番叔
上一篇 2025年7月29日 17:20
下一篇 2025年7月29日 17:31

相关推荐

  • 如何登录root账户?

    在Linux系统中,更改root密码是系统管理的基础操作,以下是详细方法,涵盖不同场景(已知当前密码/忘记密码),请根据实际情况选择,操作涉及系统核心权限,务必谨慎执行,前提条件权限要求:方法1-2:需已知当前root密码或拥有sudo权限的用户,方法3-4:需物理接触服务器或虚拟机控制台,风险提示:误操作可能……

    2025年7月23日
    13800
  • Linux如何扩展使用大内存?

    在Linux系统中有效扩展和利用大内存(通常指64GB以上)需要从内存管理机制、内核参数调优、架构适配等多维度进行优化,以充分发挥硬件性能,避免资源浪费,以下是具体方法及实践步骤,优化内存页管理:启用Huge PagesLinux默认使用4KB的小内存页,大内存场景下页表项数量激增,不仅占用大量内存(每GB内存……

    2025年9月29日
    10500
  • Linux 如何查看系统大小端模式?

    在计算机体系结构中,字节序(Byte Order)是指多字节数据在内存中的存储顺序,主要分为大端序(Big-Endian)和小端序(Little-Endian),大端序是指高位字节存储在低地址,低位字节存储在高地址,符合人类阅读习惯(如数字“0x12345678”在内存中存储为12 34 56 78);小端序则……

    2025年10月4日
    9500
  • 在Linux操作系统中编写C语言程序代码的步骤和方法是什么?

    在Linux环境下进行C语言程序开发是许多开发者和学习者的选择,这得益于Linux强大的命令行工具、开源生态以及高效的开发流程,下面将详细介绍从环境搭建到代码编写、编译运行、调试及项目管理的完整步骤,帮助你在Linux系统中熟练进行C语言开发,开发环境搭建在开始编写C语言程序前,需要确保系统已安装必要的开发工具……

    2025年9月21日
    12000
  • 如何复制linux中的命令

    Linux 中,复制命令可先标记命令文本,然后按鼠标右键选择“复制”,

    2025年8月19日
    12700

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信