温馨提示×

如何确保Ubuntu Filebeat安全运行

小樊
37
2025-12-07 01:56:58
栏目: 智能运维

Ubuntu 上安全运行 Filebeat 的实用清单

一 身份与权限最小化

  • 创建专用系统用户并加入 adm 组,便于读取系统日志,同时避免以 root 运行:
    sudo useradd --system --no-create-home --ingroup adm filebeat
    sudo chown -R filebeat:adm /etc/filebeat /var/log/filebeat
  • 通过 systemd 强制以非特权用户运行:
    sudo systemctl edit filebeat
    写入:
    [Service]
    User=filebeat
    Group=adm
    然后:sudo systemctl daemon-reload && sudo systemctl restart filebeat
  • 严格管控文件与目录权限:
    sudo chmod 600 /etc/filebeat/filebeat.yml
    sudo chmod 700 /etc/filebeat/certs
    sudo chmod 640 /var/log/filebeat/.log && sudo chown filebeat:adm /var/log/filebeat/.log
  • 将明文密码移入 Filebeat keystore,避免硬编码:
    sudo filebeat keystore create
    sudo filebeat keystore add ES_PASSWORD
    在 filebeat.yml 中使用:output.elasticsearch.password: “${ES_PASSWORD}”。

二 传输加密与身份认证

  • 启用 TLS/SSL 加密传输(Elasticsearch 示例):
    output.elasticsearch:
    hosts: [“https://elasticsearch.example.com:9200”]
    ssl.certificate_authorities: [“/etc/filebeat/certs/ca.crt”]
    ssl.certificate: “/etc/filebeat/certs/client.crt”
    ssl.key: “/etc/filebeat/certs/client.key”
    ssl.verification_mode: certificate
    证书可用 OpenSSL 生成并分发给客户端与服务端,生产环境建议使用有效 CA 或 Let’s Encrypt
  • 启用 X-Pack 安全 并使用专用账号:
    Elasticsearch 端创建最小权限角色与用户(示例仅授予读取与监控所需权限),Filebeat 侧配置 basic_auth
    output.elasticsearch:
    hosts: [“https://elasticsearch.example.com:9200”]
    username: “filebeat_user”
    password: “${ES_PASSWORD}”
    如需双向 TLS(mTLS),在 Filebeat 配置客户端证书,在 ES 端配置对应信任链与客户端证书校验。

三 输入与采集最小化

  • 仅启用必要的输入与模块,禁用未使用的模块(如 mysql、docker 等),减少攻击面与噪声数据。
  • 明确采集路径与过滤规则,避免收集敏感信息:
    filebeat.inputs:
    • type: log
      enabled: true
      paths:
      • /var/log/auth.log
      • /var/log/syslog
        exclude_lines: [“DEBUG”, “TRACE”]
        ignore_older: 72h
  • 如需采集受保护文件,确保 filebeat 用户具备相应读取权限,或通过权限下放与审计策略控制风险。

四 系统与网络安全

  • 启用 seccomp 限制系统调用,遵循最小特权原则;在部分旧版本(如 7.10.2)遇到 glibc ≥ 2.35 缺少 rseq 导致的崩溃时,应优先升级到包含修复的版本(如 ≥7.17.2),而非长期关闭 seccomp。
  • 使用 UFW 或云安全组限制访问:仅允许来自受控网段的 5044/TCP(Logstash)9200/TCP(Elasticsearch) 等必要通信;必要时将采集器与后端分置不同网络/安全域,减少暴露面。
  • 将 Filebeat 纳入 logrotate 与日志审计:
    • 配置 /etc/logrotate.d/filebeat 定期轮转与压缩,保留合理天数;
    • 启用 Filebeat 自身日志并限制权限:
      logging.level: info
      logging.to_files: true
      logging.files:
      path: /var/log/filebeat
      name: filebeat
      keepfiles: 7
      permissions: 0640

五 更新、配置审计与合规

  • 保持 Filebeat 与依赖 的及时更新,及时获取安全补丁:
    sudo apt-get update && sudo apt-get upgrade filebeat
  • /etc/filebeat/filebeat.yml 实施变更审计(如 Git 管理),保留历史与责任人;定期审查采集范围、认证凭据、TLS 证书有效期与防火墙规则。
  • 建立运行监控与告警:持续观察 Filebeat 服务状态与日志,关注认证失败、连接异常、配置重载失败等安全事件,并结合 Elasticsearch/Kibana 的监控能力进行可视化与告警。

0