返回

Filebeat 和 Logstash SSL 证书:强健通信的加密手段

后端

无论是在本地还是在云端,确保数据在传输过程中受到保护至关重要。在日志采集过程中,Filebeat 和 Logstash 是两个常用的工具,它们可以将日志数据从各种来源收集并发送到 Elasticsearch 中。然而,在默认情况下,Filebeat 和 Logstash 之间的通信是不安全的,这可能会导致数据泄露或篡改。

为了解决这个问题,我们可以使用 OpenSSL 为 Filebeat 和 Logstash 之间的通信设置 SSL 证书。SSL 证书是一种数字证书,它可以对通信过程进行加密,从而确保数据的安全。

设置 SSL 证书的步骤

  1. 生成证书颁发机构 (CA) 证书和私钥

    首先,我们需要生成一个 CA 证书和私钥。CA 证书将用于签发 Filebeat 和 Logstash 的证书,而私钥则用于对 CA 证书进行签名。

    openssl genrsa -out ca.key 2048
    openssl req -x509 -new -nodes -key ca.key -sha256 -days 3650 -out ca.crt
    
  2. 生成 Filebeat 证书和私钥

    接下来,我们需要生成 Filebeat 的证书和私钥。

    openssl genrsa -out filebeat.key 2048
    openssl req -new -key filebeat.key -out filebeat.csr
    openssl x509 -req -in filebeat.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out filebeat.crt -days 3650
    
  3. 生成 Logstash 证书和私钥

    最后,我们需要生成 Logstash 的证书和私钥。

    openssl genrsa -out logstash.key 2048
    openssl req -new -key logstash.key -out logstash.csr
    openssl x509 -req -in logstash.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out logstash.crt -days 3650
    

配置 Filebeat 和 Logstash

在生成完证书和私钥之后,我们需要配置 Filebeat 和 Logstash 以便使用这些证书。

Filebeat 配置

在 Filebeat 的配置文件中,添加以下内容:

output.logstash:
  hosts: ["logstash:5044"]
  ssl.certificate: "/path/to/filebeat.crt"
  ssl.key: "/path/to/filebeat.key"
  ssl.ca: "/path/to/ca.crt"

Logstash 配置

在 Logstash 的配置文件中,添加以下内容:

input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/path/to/logstash.crt"
    ssl_key => "/path/to/logstash.key"
    ssl_ca => "/path/to/ca.crt"
  }
}

验证 SSL 证书设置

配置好 Filebeat 和 Logstash 之后,我们可以通过以下步骤验证 SSL 证书设置是否正确:

  1. 启动 Filebeat 和 Logstash。
  2. 在 Logstash 中,检查日志是否有错误消息。如果没有错误消息,则说明 SSL 证书设置正确。
  3. 使用 tcpdump 等工具抓取 Filebeat 和 Logstash 之间的通信数据。
  4. 检查抓取到的数据是否经过加密。如果数据经过加密,则说明 SSL 证书设置正确。

总结

通过使用 OpenSSL 为 Filebeat 和 Logstash 之间的通信设置 SSL 证书,我们可以确保通信过程的安全,防止数据被未经授权的人员截获或篡改。这对于保护敏感数据非常重要。