温馨提示×

如何通过Filebeat在CentOS上进行日志审计

小樊
55
2025-09-22 04:35:56
栏目: 智能运维

如何通过Filebeat在CentOS上进行日志审计

1. 安装Filebeat

在CentOS系统上,可通过包管理器(推荐)或手动下载RPM包安装Filebeat:

  • 包管理器安装(适用于CentOS 7/8及以上):
    sudo yum install -y filebeat
    
  • 手动安装(适用于自定义版本):
    从Elastic官网下载对应版本的RPM包(如filebeat-7.14.0-x86_64.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
    

2. 配置Filebeat核心参数

编辑/etc/filebeat/filebeat.yml(主配置文件),重点设置以下模块:

  • 输入源定义:指定要监控的日志文件路径(安全审计需覆盖认证、系统、应用日志)。
    示例配置(监控系统认证日志、安全事件日志及应用日志):
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/secure       # CentOS认证日志(SSH登录、sudo使用等)
        - /var/log/messages     # 系统级日志(内核、服务消息)
        - /var/log/*.log        # 应用层通用日志
      exclude_lines: ["DBG"]    # 排除调试信息(减少噪音)
      exclude_files: [".gz"]    # 忽略压缩归档文件
    
  • 输出目标配置:将日志发送至Elasticsearch(需替换为实际地址及认证信息)。
    示例(Elasticsearch本地实例,带用户名密码认证):
    output.elasticsearch:
      hosts: ["localhost:9200"]               # Elasticsearch地址
      username: "elastic"                     # 认证用户名(默认elastic)
      password: "your_password"               # 认证密码
      index: "centos-audit-logs-%{+yyyy.MM.dd}"  # 索引命名规则(按日期分割)
    
  • 可选:启用处理器增强日志(如解析时间戳、提取关键字段)。
    示例(使用dissect处理器解析/var/log/secure中的SSH登录日志):
    filebeat.inputs:
    - type: log
      paths: ["/var/log/secure"]
      processors:
        - dissect:
            tokenizer: "%{timestamp} %{loglevel} %{message}"
            field: "message"
            target_prefix: ""
    

3. 启动与启用Filebeat服务

配置完成后,启动Filebeat并设置为开机自启:

sudo systemctl daemon-reload          # 重新加载系统服务配置
sudo systemctl start filebeat         # 启动Filebeat服务
sudo systemctl enable filebeat        # 设置开机自启

4. 验证Filebeat运行状态

  • 检查服务状态:确认Filebeat是否正常运行。
    sudo systemctl status filebeat
    
    若输出显示Active: active (running),则表示服务已启动。
  • 查看Filebeat日志:排查配置错误或运行异常。
    sudo tail -f /var/log/filebeat/filebeat
    
  • 确认日志发送:通过Elasticsearch的_cat/indices API查看是否生成对应的索引(如centos-audit-logs-2025.09.22)。

5. 安全加固措施

  • 限制访问权限
    • 为Filebeat创建专用低权限用户(如elkuser),避免使用root运行。
    • 配置日志文件权限,确保只有授权用户可读:
      sudo chown -R elkuser:elkgroup /var/log/secure /var/log/messages
      sudo chmod -R 640 /var/log/secure /var/log/messages
      
  • 加密传输
    若Elasticsearch启用X-Pack安全特性,需在output.elasticsearch中配置ssl.certificate_authorities(指定CA证书路径),并使用https协议。
  • 禁用不必要的模块
    若无需监控所有输入源,关闭未使用的模块以减少资源消耗。

6. 日志分析与可视化(可选)

  • 安装Kibana:通过Kibana可视化分析日志数据(需提前安装并配置Kibana与Elasticsearch通信)。
  • 创建索引模式:在Kibana中进入“Stack Management > Index Patterns”,创建centos-audit-logs-*索引模式。
  • 构建仪表板:通过“Visualize Library”创建可视化组件(如登录失败次数折线图、异常登录IP热力图),添加至仪表板以实时监控安全事件。

7. 扩展:使用Filebeat模块简化审计配置

Filebeat内置auditd模块(针对Linux审计框架)、system模块(针对系统日志)等,可简化安全审计配置:

  • 启用system模块(监控系统日志):
    sudo filebeat modules enable system
    
  • 自定义模块配置:修改/etc/filebeat/modules.d/system.yml,调整监控的日志文件及字段映射。
  • 加载模块索引模板
    sudo filebeat setup --index-management
    
    此命令会自动创建适合系统日志的索引模板,优化日志存储与查询性能。

通过以上步骤,即可在CentOS上通过Filebeat实现日志审计,收集、传输并分析系统安全日志,为安全事件排查提供数据支持。

0