如何快速检查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

相关推荐

  • 如何添加一行将域名指向本地或服务器IP?

    在Linux系统中绑定域名是将域名指向服务器IP地址的关键步骤,确保用户通过域名访问网站,以下是详细操作指南,涵盖主流Web服务器配置和注意事项:绑定域名前的准备工作域名与DNS解析在域名注册商(如阿里云、GoDaddy)后台添加 A记录,将域名指向服务器公网IP(example.com → 192.0.2.1……

    2025年7月7日
    5100
  • 为什么90%的人早餐都吃错了?

    在Qt中执行Linux命令是开发跨平台应用时的常见需求,尤其在自动化脚本调用、系统管理或硬件交互等场景中,Qt提供了QProcess类作为核心解决方案,它安全、灵活且符合Linux权限管理规范,以下是详细实现方法:核心方法:使用QProcess类QProcess 是Qt中专门用于启动外部进程的类,支持同步/异步……

    2025年8月7日
    4600
  • Linux如何设置子目录权限

    在Linux系统中,目录权限管理是保障系统安全与文件共享的核心环节,尤其对于多用户或多项目环境,合理设置子目录权限能有效避免数据泄露或误操作,本文将详细讲解Linux中设置子目录权限的方法,涵盖基础命令、高级技巧及常见场景,帮助用户全面掌握权限管理技能,Linux权限基础:理解用户、组与权限位Linux权限管理……

    2025年9月26日
    2100
  • Linux如何查看系统是32位还是64位?

    在Linux系统中,系统位数(32位或64位)是指CPU架构和操作系统支持的数据处理宽度,直接影响内存寻址能力、软件兼容性和系统性能,正确查看系统位数对安装软件、编译程序或排查问题至关重要,以下是Linux中查看系统位数的多种方法,涵盖命令行工具、系统文件及包管理器等场景,结合原理、操作步骤和示例说明,使用un……

    2025年9月28日
    2200
  • linux如何从硬盘启动项

    Linux 系统中,可通过设置 BIOS/UEFI 启动顺序,将硬盘设为首选

    2025年8月10日
    3600

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信