温馨提示×

如何利用Filebeat进行CentOS系统的安全审计

小樊
38
2025-12-27 07:21:24
栏目: 智能运维

利用 Filebeat 在 CentOS 上开展安全审计

一 架构与准备

  • 组件选型:在受控的 Elastic Stack 中,使用 Filebeat 采集 CentOS 安全相关日志,发送至 Elasticsearch 存储与检索,通过 Kibana 进行审计分析与可视化。
  • 采集范围:优先覆盖认证与系统关键事件,包括 /var/log/secure(SSH 登录、sudo 等)与 /var/log/messages(系统级安全事件)。
  • 版本建议:选择与 Elasticsearch/Kibana 版本一致的 Filebeat,避免兼容性问题;本文示例以 7.x 配置为例,8.x 在模块与安全配置上名称略有差异但思路一致。

二 安装与最小化采集配置

  • 安装 Filebeat(YUM 或 RPM):
    • YUM 安装:sudo yum install -y filebeat
    • RPM 安装:wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-7.14.0-x86_64.rpm && sudo rpm -ivh filebeat-7.14.0-x86_64.rpm
  • 编辑主配置 /etc/filebeat/filebeat.yml,仅采集安全相关日志并添加审计标识字段:
    • 最小化输入配置: filebeat.inputs:
      • type: log enabled: true paths:
        • /var/log/secure
        • /var/log/messages exclude_lines: [“DBG”] exclude_files: [“.gz”] fields: type: “system_audit” log_topic: “security” fields_under_root: true
    • 输出到 Elasticsearch(测试环境示例): output.elasticsearch: hosts: [“localhost:9200”] index: “system-audit-%{yyyy.MM.dd}”
    • 生产环境启用认证(如启用 X-Pack 安全): output.elasticsearch: hosts: [“https://elasticsearch-host:9200”] username: “elastic” password: “your_password”
  • 启动与验证:
    • 启动服务:sudo systemctl daemon-reload && sudo systemctl enable --now filebeat
    • 查看自身日志:tail -f /var/log/filebeat/filebeat,出现 “Successfully sent log lines” 或 “Publish event” 表示已成功发送。

三 启用模块与日志解析增强

  • 启用系统与安全模块(推荐):
    • 系统模块:sudo filebeat modules enable system
    • 审计模块:sudo filebeat modules enable auditd
    • 按需调整模块配置(/etc/filebeat/modules.d/system.yml、/etc/filebeat/modules.d/auditd.yml),例如仅采集与安全相关的事件子集。
  • 解析与丰富处理(processors):
    • 结构化解析示例(对 secure 日志进行字段拆解,便于检索与聚合): filebeat.inputs:
      • type: log paths: [“/var/log/secure”] processors:
        • dissect: tokenizer: “%{timestamp} %{host} %{process}[%{pid}]: %{message}” field: “message” target_prefix: “”
    • 可结合 grok、rename、drop_fields 等处理器,提取 user、ip、tty、sudo 等关键字段,降低噪音、提升检索效率。

四 输出到 Elasticsearch 与 Kibana 审计分析

  • 索引与权限:
    • 使用按日滚动索引(如 system-audit-%{yyyy.MM.dd}),便于生命周期管理与合规留存。
    • 为 Filebeat 创建 最小权限 专用用户与角色(仅授予目标索引的读权限与元数据查看权限),遵循最小权限原则。
  • Kibana 侧配置:
    • 创建索引模式:Stack Management > Index Patterns > 新建 system-audit-*。
    • 构建审计仪表盘与可视化:如 “SSH 登录失败次数”“sudo 使用频率”“关键服务异常告警趋势”等;在 Discover 中使用关键词过滤(如 Failed password、sudo、invalid user)快速定位安全事件。

五 安全加固与运维要点

  • 运行身份与文件权限:
    • 以非特权用户运行:创建 elkuser 等专用用户,并在 systemd 单元中设置 User/Group;配置文件 /etc/filebeat/filebeat.yml 权限设为 600,日志与数据目录(如 /var/log/filebeat、/var/lib/filebeat)权限设为 750 并归属运行用户。
  • 传输加密与认证:
    • 启用 TLS/SSL:在 Filebeat 输出中配置 ssl.enabled: true、证书路径与 ssl.verification_mode(建议 certificate 或 full),确保与 Elasticsearch/Logstash 之间的链路加密与证书校验。
  • 网络与最小采集面:
    • 通过 firewalld 仅允许可信网段访问下游端口(如 9200/5044);采集侧仅启用必要日志路径与模块,避免采集无关数据扩大攻击面。
  • 高可用与监控:
    • 配置 Elasticsearch 集群与副本分片,保障审计数据可靠性;启用 Filebeat Monitoring 或外部告警,对进程异常、连接失败、队列积压等进行及时处置。
  • 持续更新与基线核查:
    • 定期执行 yum update filebeat 获取安全补丁;结合基线检查与审计规则定期复盘,持续优化检测与告警策略。

0