温馨提示×

debian filebeat如何加密传输

小樊
33
2026-09-09 11:26:53
栏目: 网络安全

在 Debian 上,Filebeat 加密传输通常指两件事之一(或两者同时做):

  1. Filebeat → Elasticsearch / Logstash 的传输加密(TLS)
  2. Filebeat 输出的日志内容加密(一般不推荐,更多是传输层加密)

下面以最常见、官方推荐的方式:使用 TLS 加密 Filebeat 到 Elasticsearch / Logstash 的传输为例说明。


一、Filebeat → Elasticsearch(TLS 加密)

1. 安装 Filebeat(Debian)

sudo apt update
sudo apt install filebeat

2. 准备 TLS 证书

通常由 Elasticsearch 生成:

/usr/share/elasticsearch/bin/elasticsearch-certutil ca
/usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12

你会得到:

  • elastic-stack-ca.p12(CA)
  • elasticsearch.p12(节点证书)

CA 证书 复制到 Filebeat 所在机器:

scp elastic-stack-ca.p12 debian:/etc/filebeat/ca.p12

3. 配置 Filebeat(TLS)

编辑 /etc/filebeat/filebeat.yml

output.elasticsearch:
  hosts: ["https://es-node1:9200"]
  username: "filebeat_writer"
  password: "your_password"
  ssl:
    enabled: true
    certificate_authorities:
      - /etc/filebeat/ca.p12
    verification_mode: full

如果是 .crt 而不是 .p12,可写:

ssl.certificate_authorities: ["/etc/filebeat/ca.crt"]

4. 重启 Filebeat

sudo systemctl restart filebeat
sudo systemctl enable filebeat

二、Filebeat → Logstash(TLS 加密)

1. Logstash 端配置(beats input)

input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/etc/logstash/certs/logstash.crt"
    ssl_key => "/etc/logstash/certs/logstash.key"
    ssl_certificate_authorities => ["/etc/logstash/certs/ca.crt"]
  }
}

2. Filebeat 配置

output.logstash:
  hosts: ["logstash:5044"]
  ssl:
    enabled: true
    certificate_authorities:
      - /etc/filebeat/ca.crt
    verification_mode: full

三、可选增强(安全最佳实践)

✅ 使用 TLS 1.2+

ssl.supported_protocols: [TLSv1.2, TLSv1.3]

✅ 启用 Filebeat 自身证书(双向认证)

ssl.certificate: "/etc/filebeat/filebeat.crt"
ssl.key: "/etc/filebeat/filebeat.key"

✅ 配合 Elasticsearch Security

  • 使用非 elastic 超级用户
  • 使用 role-based access control

四、验证是否加密成功

sudo filebeat test output

或抓包确认:

sudo tcpdump -i any port 9200

应看到 TLS 握手,而非明文 JSON。


五、常见误区

❌ “Filebeat 可以加密日志文件本身”
→ 不推荐,日志通常在磁盘明文,重点是传输加密

❌ “SSL 和 TLS 不一样”
→ Filebeat 中 ssl.* 实际指 TLS


如果你能告诉我:

  • Filebeat 输出目标是 ES 还是 Logstash
  • 是否使用 Elastic Stack 安全功能(X-Pack)

我可以给你一份可直接用的完整配置示例

0