如何利用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 模块 的结构化字段(如登录事件、命令执行、文件修改)快速搭建面向合规与威胁狩猎的视图。
通过可视化与告警,将“采集到的审计事件”转化为“可行动的情报”,缩短检测与响应时间。