温馨提示×

ubuntu filebeat怎样确保数据安全

小樊
33
2025-12-13 01:04:22
栏目: 智能运维

Ubuntu 上保障 Filebeat 数据安全的可落地方案

一 传输加密与身份认证

  • 启用 TLS/SSL 对传输通道进行加密,优先采用 双向认证(mTLS):为 Elasticsearch/LogstashFilebeat 分别准备证书,服务端开启证书校验,客户端提供证书与私钥,防止中间人攻击与未授权上报。示例要点:
    • Logstash input(端口 5044)开启 SSL,设置 ssl_verify_mode: force_peer,并指定信任的 CA 与服务器证书/私钥。
    • Filebeat 输出到 Logstash 时配置 ssl.certificate_authoritiesssl.certificatessl.key;输出到 Elasticsearch 时使用 https:// 并提供 CA/客户端证书/私钥
    • 证书建议包含 SAN(IP/DNS),避免主机名不匹配导致握手失败。
    • 若使用域名的 Let’s Encrypt 证书,可直接挂载 fullchain.pemprivkey.pem 到 Filebeat 证书目录并配置路径。

二 身份与访问控制

  • Elasticsearch 侧启用 安全功能(X-Pack),为 Filebeat 创建专用用户并授予最小权限(如仅允许写入目标索引、使用 API Key基本认证),避免使用内置高权限账号。
  • 对输出目标启用 认证与授权,并在 Filebeat 配置中填写 username/passwordAPI Key,确保只有受控实例能写入。
  • 在主机与网络层面进行最小暴露:仅开放必要端口(如 5044 到 Logstash,或 9200 到 Elasticsearch),使用 UFW/iptables 限制来源网段,必要时将采集器与后端置于 隔离网络/VPC

三 运行与文件权限

  • 非 root 用户运行 Filebeat(如系统自带的 filebeat 用户或自建低权用户),并对证书、配置、日志目录设置严格权限:证书与密钥仅对 Filebeat 可读,配置 0644、日志 0640,属主属组指向运行用户。
  • 仅启用必要的 inputs/modules,禁用不需要的模块与处理器,减少攻击面与资源占用。
  • 启用 持久化队列(Persistent Queue) 提升可靠性:在重启或后端短暂不可用时降低数据丢失风险(示例:queue.type: persisted,queue.max_bytes: 1GB)。

四 运维与监控

  • 保持 Filebeat 与 Elastic Stack及时更新,及时修补安全漏洞;结合 systemd 或进程监控对服务状态与健康度进行持续观测。
  • 集中采集与审计 Filebeat 自身日志(如 /var/log/filebeat/filebeat),对异常连接、证书校验失败、频繁重启等进行告警;按需配置 logrotate 做日志轮转与留存控制。

五 最小配置示例

  • 场景:Filebeat 通过 TLS 将日志发送到 Logstash(5044),采用双向认证。
  • 生成证书(示例,生产请使用受控 CA 或 Let’s Encrypt)
    • 创建 CA 与服务器证书(Logstash 端)
      • mkdir -p /etc/filebeat/certs
      • openssl req -x509 -newkey rsa:4096 -keyout /etc/filebeat/certs/ca.key -out /etc/filebeat/certs/ca.crt -days 3650 -nodes
      • openssl req -newkey rsa:2048 -keyout /etc/filebeat/certs/logstash.key -out /etc/filebeat/certs/logstash.csr -nodes -subj “/CN=192.168.1.127
      • openssl x509 -req -in /etc/filebeat/certs/logstash.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key -CAcreateserial -out /etc/filebeat/certs/logstash.crt -days 3650
    • 生成客户端证书(Filebeat 端)
      • openssl req -newkey rsa:2048 -keyout /etc/filebeat/certs/filebeat.key -out /etc/filebeat/certs/filebeat.csr -nodes -subj “/CN=192.168.1.128
      • openssl x509 -req -in /etc/filebeat/certs/filebeat.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key -CAcreateserial -out /etc/filebeat/certs/filebeat.crt -days 3650
  • Logstash 配置片段(input)
    • input { beats { port => 5044 ssl => true ssl_certificate_authorities => [“/etc/filebeat/certs/filebeat.crt”] ssl_certificate => “/etc/filebeat/certs/logstash.crt” ssl_key => “/etc/filebeat/certs/logstash.key” ssl_verify_mode => “force_peer” } }
  • Filebeat 配置片段(/etc/filebeat/filebeat.yml)
    • filebeat.inputs:
      • type: filestream enabled: true paths: [“/var/log/*.log”]
    • output.logstash:
      • hosts: [“192.168.1.127:5044”] ssl.certificate_authorities: [“/etc/filebeat/certs/ca.crt”] ssl.certificate: “/etc/filebeat/certs/filebeat.crt” ssl.key: “/etc/filebeat/certs/filebeat.key
  • 权限与生效
    • chown -R filebeat:filebeat /etc/filebeat /var/log/filebeat
    • chmod 600 /etc/filebeat/certs/*.key
    • systemctl restart filebeat && systemctl status filebeat
    • 提示:若输出到 Elasticsearch,将 output 改为 https:// 并提供 CA/客户端证书/私钥;证书建议包含 SAN;生产请使用受控 CALet’s Encrypt 证书并定期轮换。

0