在 CentOS 上,用 Filebeat 做安全审计的核心思路是:采集关键安全日志,启用内置安全模块,必要时与 Elasticsearch/Kibana 联动做检测与可视化。
一、架构与组件选择
- 采集侧:在 CentOS 上安装 Filebeat,用于读取本地日志文件并输出到 Elasticsearch 或 Logstash。
- 存储与分析侧:Elasticsearch 存储与检索,Kibana 做仪表盘与告警可视化。
- 审计范围:系统认证与授权(如 /var/log/secure)、命令执行与特权操作(配合 auditd)、以及应用或网络设备的 JSON 日志(如 Suricata eve.json)。
- 版本建议:保持 Elastic Stack 各组件版本一致,避免兼容性问题(如 7.3.x 系列)。
二、安装与快速落地配置
- 安装 Filebeat(CentOS 7/8 常用方式)
- 使用 YUM 安装:sudo yum install -y filebeat
- 或下载 RPM 安装:wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat--x86_64.rpm && sudo rpm -ivh filebeat--x86_64.rpm
- 采集系统安全日志(认证/授权事件)
- 编辑 /etc/filebeat/filebeat.yml:
- filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/secure
- /var/log/messages
fields:
type: system_security
- output.elasticsearch:
- hosts: [“elasticsearch:9200”]
- index: “centos-security-%{+yyyy.MM.dd}”
- 启动与验证
- sudo systemctl start filebeat && sudo systemctl enable filebeat
- sudo systemctl status filebeat
- Kibana 访问:http://:5601,创建索引模式并查看数据
- 说明
- 在 RHEL/CentOS 上,认证日志通常为 /var/log/secure;在 Debian/Ubuntu 上为 /var/log/auth.log,跨发行版采集时需注意路径差异。
三、启用内置安全模块与解析增强
- 启用 auditd 模块(采集内核/系统调用级审计日志)
- 启用模块:filebeat modules enable auditd
- 查看模块:filebeat modules list
- 说明:Filebeat 的 auditd 模块可直接读取并解析 /var/log/audit/audit.log,适合做细粒度行为审计(如文件访问、权限变更、命令执行等)。
- 解析与安全增强
- 使用 processors(如 dissect、grok)对半结构化日志进行字段化,便于检索与聚合。
- 示例(dissect 解析 key=value 日志):
- processors:
- dissect:
tokenizer: “%{timestamp} %{level} %{message}”
field: “message”
- 输出到 Elasticsearch 时可按日期创建索引,便于生命周期管理。
四、与 Elasticsearch/Kibana 集成与可视化
- 输出到 Elasticsearch(基础)
- output.elasticsearch.hosts: [“elasticsearch:9200”]
- 建议开启索引生命周期管理(ILM)与模板,控制热/温/冷与保留周期。
- 安全传输与认证(生产必备)
- 启用 TLS/SSL:配置 ssl.enabled、ssl.certificate_authorities、ssl.certificate、ssl.key
- 启用 X-Pack 安全:配置 xpack.security.enabled、transport 与 http ssl、证书库路径等
- Kibana 可视化
- 访问 http://:5601,创建索引模式(如 centos-security-*),使用 Discover/Visualize/Dashboard 构建登录失败、sudo 提权、异常命令等审计面板。
- 扩展场景
- 采集 Suricata eve.json:Filebeat 解析并输出到 ES,Kibana 加载 Suricata 仪表盘,实现网络威胁可视化。
五、加固与运维要点
- 传输与访问控制
- 全链路启用 TLS/SSL,并为 Elasticsearch/Kibana/Filebeat 配置基于角色的访问控制(RBAC)。
- 仅开放必要端口(如 9200/9300/5601),并通过防火墙限制来源网段。
- 运行与合规
- 以 非 root 用户运行 Filebeat,最小化权限;定期更新版本获取安全补丁。
- 为审计数据配置 索引生命周期策略 与 备份,满足保留与取证需求。
- 审计深度建议
- 对关键主机启用 auditd 并调优规则(如监控 /etc/passwd、/etc/shadow、sudo 等),再用 Filebeat 模块采集,提升审计覆盖度与可溯源性。