温馨提示×

如何利用Filebeat进行日志审计

小樊
44
2025-12-09 14:44:32
栏目: 编程语言

利用 Filebeat 进行日志审计的落地方案

一 架构与总体思路

  • 采集侧使用 Filebeat 读取操作系统与应用的审计日志,优先启用官方 模块(如 auditd) 获取结构化事件;必要时用处理器(如 dissect、grok)做字段解析与增强。
  • 传输侧建议启用 TLS/SSL 加密身份认证,避免明文传输与越权写入。
  • 存储与展示侧将事件写入 Elasticsearch 专用索引(如 security-audit-*),在 Kibana 建立索引模式与安全仪表板,配置告警规则(如短时间内多次登录失败)。
  • 运行侧以 最小权限 运行 Filebeat,开启自身运行日志,定期更新组件并审计配置与权限。
    上述做法覆盖采集、传输、存储、展示与运维的全链路,适用于 CentOS、Debian、Ubuntu 等主流发行版。

二 安装与快速验证

  • 安装(示例)
    • CentOS/RHEL:sudo yum install -y filebeat
    • Debian/Ubuntu:sudo apt-get update && sudo apt-get install -y filebeat
  • 最简配置(直接落 ES,便于验证)
    filebeat.inputs:
    • type: log enabled: true paths:
      • /var/log/auth.log # Debian/Ubuntu 认证日志
      • /var/log/secure # RHEL/CentOS 认证日志 fields: type: security_audit output.elasticsearch: hosts: [“your-es-host:9200”] index: “security-audit-%{+yyyy.MM.dd}”
  • 启动与验证
    • sudo systemctl start filebeat && sudo systemctl enable filebeat
    • sudo systemctl status filebeat
    • curl -X GET “your-es-host:9200/_cat/indices?v” | grep security-audit
      以上步骤完成安装、采集与落库验证,后续再接入 Kibana 做可视化与告警。

三 审计场景与配置要点

  • 系统认证与授权审计
    • 采集路径:Debian/Ubuntu 用 /var/log/auth.log,RHEL/CentOS 用 /var/log/secure;可直接用 log 输入或启用系统模块(如 system/secure)。
    • 精简采集:仅关注失败与特权操作,降低噪声与负载。
    • 示例(精简采集):
      filebeat.inputs:
      • type: log paths: [“/var/log/auth.log”] include_lines: [“(?i)fail|error|invalid|denied|sudo|ssh”] exclude_lines: [“dbg”, “verbose”]
  • Linux 审计框架审计(auditd 模块)
    • 启用模块:sudo filebeat modules enable auditd
    • 配置模块:编辑 /etc/filebeat/modules.d/auditd.yml,设置 var.paths: [“/var/log/audit/audit.log”]
    • 加载与重启:sudo filebeat setup --modules auditd && sudo systemctl restart filebeat
    • 价值:获得结构化的用户登录、命令执行、文件访问、权限变更等事件,便于合规审计与溯源。
  • 应用审计日志(以 MySQL 为例)
    • 若 MySQL 开启了审计插件(如企业版审计或 Percona Audit Log Plugin),将输出指向文件(如 /var/log/mysql/audit.log),用 Filebeat 采集并解析。
    • 多行日志(如堆栈)可用 multiline 合并;复杂格式用 dissect/grok 提取字段,便于检索与聚合。
      以上配置覆盖系统认证、内核/命令审计与应用审计三类常见场景,兼顾“开箱即用”的模块与“按需解析”的灵活性。

四 安全与运维加固

  • 加密与认证
    • ES 输出启用 TLS/SSL(证书与 CA 配置)与 用户名/密码 或 API Key;避免明文传输与匿名写入。
    • 为 Filebeat 创建 最小权限专用用户(仅对 security-audit-* 具备读/视图元数据权限)。
  • 权限与运行账户
    • 非 root 运行 Filebeat(如创建 elkuser 并在 systemd 单元中指定 User/Group),并收紧配置与数据目录权限。
  • 自身可观测性
    • 开启 Filebeat 内部日志:
      logging.level: info
      logging.to_files: true
      logging.files: path: /var/log/filebeat name: filebeat.log keepfiles: 7 permissions: 0640
    • 使用 sudo systemctl status filebeat 与 sudo journalctl -u filebeat -f 实时排查。
  • 持续维护
    • 定期更新 Filebeat/ES/Kibana,审计输入路径与凭据,监控安全索引的异常增长与异常模式。
      以上措施提升机密性、完整性与可用性,并降低被篡改与横向移动的风险。

五 可视化与告警落地

  • Kibana 创建索引模式(匹配 security-audit-*),构建安全仪表板:
    • 关键指标:每日登录失败次数SSH 登录来源分布sudo 使用频率关键文件变更 等。
  • 配置阈值告警(示例):1 小时内登录失败 > 5 次 触发邮件/Slack/企业微信通知。
  • 结合 auditd 模块 的结构化字段(如登录事件、命令执行、文件修改)快速搭建面向合规与威胁狩猎的视图。
    通过可视化与告警,将“采集到的审计事件”转化为“可行动的情报”,缩短检测与响应时间。

0