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

相关推荐

  • 如何快速掌握Perl脚本?

    #!/usr/bin/perl 是Perl脚本的标准shebang行,用于Unix-like系统,它指定系统使用/usr/bin/perl解释器执行脚本,使文件可直接运行,无需手动调用Perl命令,提升脚本的便携性和易用性。

    2025年7月4日
    3400
  • kail linux如何u盘启动

    U盘插入电脑,在Kali Linux系统中用启动盘制作工具(

    2025年8月15日
    1400
  • 如何在Ubuntu/Debian安装字体管理工具?

    在Linux环境下添加字体可以通过多种方法实现,以下为详细步骤(适用于主流发行版如Ubuntu、Fedora、Debian等),操作前请确保字体文件(.ttf/.otf)来源合法且安全:图形界面安装(推荐桌面用户)下载字体文件从可信来源(如Google Fonts、字体厂商官网)下载.ttf或.otf格式的字体……

    2025年8月4日
    2100
  • Linux如何禁用Nginx/Apache的302重定向?

    理解302重定向302是HTTP状态码,表示资源临时重定向到新URL,取消它的核心是定位并修改触发重定向的配置,常见来源:Web服务器配置文件(Nginx/Apache)网站程序代码(如PHP、Python).htaccess文件(Apache)反向代理或CDN设置操作步骤:定位并取消302重定向检查Web服务……

    2025年6月23日
    3300
  • Linux后台命令状态如何监控?

    为什么需要查看后台命令?实时监控:确保任务按预期执行(如备份脚本、服务进程),故障排查:捕获错误日志(如Python脚本崩溃),资源管理:避免僵尸进程占用CPU/内存,4种核心查看方法jobs 命令(当前终端有效)适用场景:临时任务(如 python3 script.py &),操作:jobs -l……

    2025年7月31日
    2100

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信