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

相关推荐

  • linux虚拟机如何更改ip

    Linux虚拟机中,可通过修改网络配置文件或使用命令(如ip addr)来

    2025年8月16日
    20400
  • Linux系统如何搭建SSH实现动态密码登录的配置方法?

    在Linux系统中搭建SSH动态密码登录,通常指通过集成动态密码(如一次性密码OTP)增强SSH登录安全性,防止密码泄露或暴力破解,以下是详细搭建步骤,以Google Authenticator(基于TOTP算法)为例,实现静态密码+动态密码的双因素认证(2FA),安装必要软件首先需安装Google Authe……

    2025年9月30日
    23900
  • llinux系统如何编辑脚本?

    在Linux系统中,脚本编辑是自动化任务、简化重复操作的核心技能,无论是系统管理员还是开发者,都需要掌握脚本的创建、编辑与执行方法,本文将从基础概念出发,逐步介绍Linux脚本的编辑工具、语法结构、执行流程及调试技巧,帮助读者全面掌握脚本编辑的完整流程,Linux脚本的基础概念Linux脚本通常指Shell脚本……

    2025年9月16日
    23300
  • 为什么Linux所有文件夹都从根目录开始?

    Linux文件夹的存储规则根目录()所有文件夹的起点,类似Windows的C:\,/home:存储用户个人文件夹(如/home/username)/etc:存放系统配置文件/var:存储日志、缓存等动态数据绝对路径 vs 相对路径绝对路径:从根目录开始的完整路径(如/usr/local/bin)相对路径:基于当……

    2025年6月19日
    27300
  • 1个月真能打牢基础?

    Linux操作系统核心命令行精通:掌握grep/awk/sed文本处理,进程管理(ps/top),网络调试(netstat/tcpdump)系统编程:学习文件I/O、进程间通信(管道/信号/共享内存)、多线程(pthread)推荐资源:《Linux命令行与shell脚本编程大全》(ISBN 978-111898……

    2025年7月21日
    27300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信