首页主机资讯ubuntu selinux如何检查漏洞

ubuntu selinux如何检查漏洞

时间2026-01-21 22:49:03发布访客分类主机资讯浏览1275
导读:Ubuntu 上 SELinux 漏洞检查与风险排查 一 前置说明 Ubuntu 默认不启用 SELinux,常见的是 AppArmor。如你的系统已手动启用 SELinux,请按下列步骤检查其安全状态与潜在“可被利用的薄弱点”。SELi...

Ubuntu 上 SELinux 漏洞检查与风险排查

一 前置说明

  • Ubuntu 默认不启用 SELinux,常见的是 AppArmor。如你的系统已手动启用 SELinux,请按下列步骤检查其安全状态与潜在“可被利用的薄弱点”。SELinux 的风险通常来自:处于 Permissive/Disabled 模式、策略过于宽松(如大量布尔值开启)、关键文件/进程上下文错误、以及被 dontaudit 隐藏的拒绝事件未被发现。

二 快速检查清单

  • 检查运行状态与策略
    • 查看整体状态:sestatus(关注 SELinux status/Current mode/Loaded policy name
    • 快速模式:getenforce(返回 Enforcing/Permissive/Disabled
    • 配置文件:cat /etc/selinux/config(查看 SELINUX= 的设定)
  • 检查策略开关与行为
    • 列出布尔值:sestatus -bgetsebool -a | grep < 服务名>
  • 检查拒绝日志与告警
    • 审计日志:ausearch -m avc -ts recentaureport -m avc
    • 系统日志:grep -i "denied" /var/log/audit/audit.logjournalctl | grep AVC
  • 检查文件与进程上下文
    • 文件/目录:ls -Z /path
    • 进程:ps -eZ | grep < 进程名>
  • 检查审计服务
    • 状态:systemctl status auditd;必要时 sudo systemctl start auditd & & sudo systemctl enable auditd
  • 辅助定位工具
    • 图形/分析:sealert -a /var/log/audit/audit.log(需安装 setroubleshoot)
      以上命令覆盖了“是否启用—是否强制—策略开关—是否有拒绝—上下文是否正确—日志是否完备”的关键环节。

三 判定是否存在可被利用的薄弱点

  • 高风险信号
    • 当前模式为 Permissive/Disabled(策略未强制执行或完全关闭)。
    • 配置为 Enforcing,但存在大量 AVC denied 且业务受影响(可能通过宽松布尔值、错误上下文或缺失规则“被放过”)。
    • 关键目录/二进制使用了过于宽泛的上下文(如 unconfined_t 或错误的 httpd_sys_content_t 等),或存在大量 dontaudit 导致拒绝未被记录。
  • 快速验证方法(仅用于排查,验证完务必恢复)
    • 临时切到宽容模式:sudo setenforce 0(重启后失效),观察问题是否消失;若消失,多半是 SELinux 策略问题。排查后改回 sudo setenforce 1
    • 发现被 dontaudit 隐藏时,可短时执行:sudo semodule -DB(临时禁用 dontaudit),复现问题并用 ausearch/aureport 观察,确认后再 sudo semodule -B 恢复。

四 修复与加固建议

  • 将模式恢复/保持为 Enforcingsudo setenforce 1 并确保 /etc/selinux/configSELINUX=enforcing
  • 修正文件/目录上下文(示例)
    • 设定自定义目录为 httpd 可读内容:sudo semanage fcontext -a -t httpd_sys_content_t "/data/www(/.*)?"
    • 应用:sudo restorecon -R -v /data/www
  • 按需调整布尔值(最小化原则)
    • 查看与切换:getsebool < name> / sudo setsebool < name> on|off(如需持久加 -P
  • 基于日志生成最小可用策略模块(示例)
    • ausearch -c 'httpd' --raw | audit2allow -M my-httpd
    • 加载:sudo semodule -i my-httpd.pp
  • 保障日志完整
    • 确保 auditd 运行并持久化:sudo systemctl enable --now auditd
      以上操作遵循“最小权限”和“可审计”的原则,优先修正上下文与规则,其次才考虑放宽布尔值。

五 持续监控与告警

  • 使用 Node Exporter 的 SELinux collector 暴露关键指标,便于在 Prometheus/Grafana 中统一监控与告警:
    • 指标含义:node_selinux_enabled(是否启用)、node_selinux_config_mode(配置模式)、node_selinux_current_mode(当前模式)
    • 建议告警:
      • node_selinux_enabled == 0(SELinux 被禁用)
      • node_selinux_current_mode == -1(处于宽容模式)
      • node_selinux_config_mode != node_selinux_current_mode(配置与实际不一致)
        该方案适合生产环境持续观测 SELinux 状态,及时发现模式被意外更改或策略执行中断的风险。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu selinux如何检查漏洞
本文地址: https://pptw.com/jishu/789199.html
Ubuntu Golang编译速度慢怎么加速 ubuntu selinux版本如何升级

游客 回复需填写必要信息