返回
Filebeat 和 Logstash SSL 证书:强健通信的加密手段
后端
2023-12-01 08:56:28
无论是在本地还是在云端,确保数据在传输过程中受到保护至关重要。在日志采集过程中,Filebeat 和 Logstash 是两个常用的工具,它们可以将日志数据从各种来源收集并发送到 Elasticsearch 中。然而,在默认情况下,Filebeat 和 Logstash 之间的通信是不安全的,这可能会导致数据泄露或篡改。
为了解决这个问题,我们可以使用 OpenSSL 为 Filebeat 和 Logstash 之间的通信设置 SSL 证书。SSL 证书是一种数字证书,它可以对通信过程进行加密,从而确保数据的安全。
设置 SSL 证书的步骤
-
生成证书颁发机构 (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
-
生成 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
-
生成 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 证书设置是否正确:
- 启动 Filebeat 和 Logstash。
- 在 Logstash 中,检查日志是否有错误消息。如果没有错误消息,则说明 SSL 证书设置正确。
- 使用 tcpdump 等工具抓取 Filebeat 和 Logstash 之间的通信数据。
- 检查抓取到的数据是否经过加密。如果数据经过加密,则说明 SSL 证书设置正确。
总结
通过使用 OpenSSL 为 Filebeat 和 Logstash 之间的通信设置 SSL 证书,我们可以确保通信过程的安全,防止数据被未经授权的人员截获或篡改。这对于保护敏感数据非常重要。