广告

CentOS 上使用 Filebeat 实现日志传输加密的完整配置与验证指南

1. 环境与目标 - 1.1 背景与需求

CentOS 环境下实现 文件日志传输的整条通道加密,可以有效防止在传输过程中的日志内容被窃听或篡改。本指南聚焦 Filebeat 的配置、证书管理与完整的验证步骤,提供一个端到端的 日志传输加密 实践方案。通过遵循本指南,您将获得一个可在生产环境落地的、可审计的 TLS 加密传输链路。

目标要点包括:搭建安全的 TLS 通道、使用受信任的证书链、在 Elaticsearch/Logstash 端启用 TLS 验证,并提供可重复的验证流程。此处的要点都与 日志传输安全性密钥与证书管理紧密相关。

2. 在 CentOS 上安装 Filebeat - 2.1 基础安装与准备

开始前,请确保 CentOS 服务器具备外网访问、必要权限以及 SELinux/防火墙配置的适配能力。接下来通过官方仓库安装 Filebeat,这是实现 日志传输 的第一步。注意版本匹配:Filebeat 版本应与后端 Elastic Stack 版本兼容,避免出现兼容性问题。

要点提醒:为确保软件包来源可信,请导入 Elastic GPG 公钥并添加 Elastic 官方仓库。随后安装、启用并启动 Filebeat 服务。安装完成后,确保文件和证书目录具有合理权限,避免非授权访问。

# 安装 Elastic 官方仓库与 JKS 公钥
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
sudo tee /etc/yum.repos.d/elastic.repo << 'EOF'
[elastic-7.x]
name=Elastic repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
EOF# 安装 Filebeat
sudo yum install -y filebeat# 启用并启动 Filebeat 服务
sudo systemctl enable --now filebeat

3. 配置 Filebeat 实现日志传输加密 - 3.1 TLS 配置核心要点

要实现 传输加密,需要在 Filebeat 配置中开启 TLS/SSL,并提供证书链、客户端证书和私钥。核心要素包括:CA 证书、客户端证书、客户端私钥、服务端地址与端口,以及可选的 证书逐条校验策略。以下示例展示了基于 Elasticsearch 端的 TLS 配置,以及若改为 Logstash 端的相应参数。请将示例中的域名、端口、证书路径替换成实际环境中的值。

实现要点:1) 使用 https 协议传输,2) 指定 CA 证书以建立信任链,3) 提供客户端证书与私钥用于双向 TLS(mTLS)验证,4) 设置验证模式为 full 以获得严格校验。

# Filebeat 配置片段,示例使用 Elasticsearch 作为日志接收端
output.elasticsearch:hosts: ["https://elk.example.com:9200"]ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]ssl.certificate: "/etc/filebeat/certs/filebeat.crt"ssl.key: "/etc/filebeat/certs/filebeat.key"ssl.verification_mode: full# 可选:如后端要求,请开启证书链与哈希算法等细化控制# protocol: "https"# 如使用 Logstash,请改为以下形式
# output.logstash:
#   hosts: ["https://logstash.example.com:5045"]
#   ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
#   ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
#   ssl.key: "/etc/filebeat/certs/filebeat.key"
#   ssl.verification_mode: full

补充说明:如果后端启用的是自签名证书,请确保 CA 证书可被 Filebeat 识别并放置在正确的路径下,且文件权限受限;另外,若启用双向 TLS,务必在后端也配置相应的信任链并允许客户端证书通过。

4. 证书与密钥管理最佳实践 - 4.1 证书生命周期与保护

为了长期稳定运行,建议采用受信任的 CA 签发证书体系,并对私钥进行严格保护。私钥权限通常设为 600,证书和密钥文件应归属特定用户,避免其他系统用户读取。证书有效期要在后续轮换时可控,结合自动化脚本进行续签与替换,确保传输通道始终处于信任状态。

CentOS 上使用 Filebeat 实现日志传输加密的完整配置与验证指南

证书生成步骤要点包括:建立一个私有 CA、生成客户端证书并向后端证书颁发机构申请签名,保持 CA 证书在 Filebeat 端可用。使用 OpenSSL 或企业 CA 进行签名,确保证书链完整、可验证。

# 1) 生成自签 CA(示例)
openssl req -x509 -new -nodes -days 3650 -keyout ca.key -out ca.crt -subj "/CN=Filebeat CA"# 2) 生成 Filebeat 客户端证书请求与私钥
openssl req -new -newkey rsa:2048 -nodes -keyout filebeat.key -out filebeat.csr -subj "/CN=filebeat"# 3) 使用 CA 签名客户端证书
openssl x509 -req -in filebeat.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out filebeat.crt -days 3650 -sha256# 4) 设置权限(示例路径需为实际路径)
sudo chmod 600 filebeat.key filebeat.crt
sudo chown root:root filebeat.key filebeat.crt

部署时的注意点:将 CA 证书放置在 Filebeat 能访问的目录,确保证书链没有中断;如使用系统级证书存储,请确保路径配置正确且服务允许访问。通过上述做法,可以在避免暴露明文凭书的前提下实现强安全性。

5. 验证与故障排除 - 5.1 验证路径与排错要点

完成上述配置后,进入验证阶段,确保日志能够通过 TLS 加密通道正确传输至后端服务。可通过 Filebeat 自带的校验工具和系统日志实现快速验证。验证目标包括:TLS 握手成功、日志输出稳定、以及后端接收端能看到输入数据

常用验证步骤包括:检查 Filebeat 状态、测试配置、测试输出、查看运行日志,以及对 TLS 握手进行网络层验证。

# 验证 Filebeat 配置正确性
sudo filebeat test config# 验证输出通道是否能成功连接后端
sudo filebeat test output# 启动后查看日志以确认 TLS 握手及数据传输状态
sudo systemctl status filebeat
sudo journalctl -u filebeat -f# 使用 OpenSSL 验证 TLS 握手(客户端证书、CA)
openssl s_client -connect elk.example.com:9200 \-CAfile /etc/filebeat/certs/ca.crt \-cert /etc/filebeat/certs/filebeat.crt \-key /etc/filebeat/certs/filebeat.key# 后端端点验证示例(Elasticsearch)
curl -u elastic:your_password -k https://elk.example.com:9200/_cat/indices?v

如遇到连接问题,请优先检查以下要点:证书路径与权限、CA 与服务端证书是否一致、后端端口是否对外暴露、SELinux 策略是否阻挡、以及网络防火墙是否放通。在确认 TLS 握手正常后,确保 Filebeat 正确读取日志源并将数据送达后端。若后端是 Logstash,请注意 input 端口 的配置与 TLS 参数的一致性。

以上内容构成一个完整的配置与验证指南,帮助在 CentOS 上通过 Filebeat 实现 日志传输加密,并给出可执行的证书管理与排错步骤。

广告