在 Ubuntu 上保障 Filebeat 日志传输安全
一 传输加密与身份认证
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["https://es.example.com:9200"]
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/client.crt"
ssl.key: "/etc/filebeat/certs/client.key"
示例配置(Logstash 侧启用 Beats 输入 SSL):input {
beats {
port => 5443
ssl => true
ssl_certificate => "/etc/logstash/ssl/logstash-forwarder.crt"
ssl_key => "/etc/logstash/ssl/logstash-forwarder.key"
}
}
上述做法分别展示了 Filebeat 与 ES 的 TLS 证书校验 和 Logstash 的 Beats SSL 输入 配置要点。二 证书与密钥管理
mkdir -p /etc/filebeat/certs
# CA
openssl req -x509 -newkey rsa:4096 -keyout /etc/filebeat/certs/ca.key -out /etc/filebeat/certs/ca.crt -days 3650 -nodes -subj "/CN=MyCA"
# ES 服务器证书(示例)
openssl req -newkey rsa:4096 -keyout /etc/filebeat/certs/server.key -out /etc/filebeat/certs/server.csr -nodes -subj "/CN=es.example.com"
openssl x509 -req -in /etc/filebeat/certs/server.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key -CAcreateserial -out /etc/filebeat/certs/server.crt -days 3650
# Filebeat 客户端证书(示例)
openssl req -newkey rsa:4096 -keyout /etc/filebeat/certs/client.key -out /etc/filebeat/certs/client.csr -nodes -subj "/CN=filebeat_client"
openssl x509 -req -in /etc/filebeat/certs/client.csr -CA /etc/filebeat/certs/ca.crt -CAkey /etc/filebeat/certs/ca.key -CAcreateserial -out /etc/filebeat/certs/client.crt -days 3650
chmod 600 /etc/filebeat/certs/*.key
chown root:root /etc/filebeat/certs/*.key
三 运行与访问控制
四 最小化采集与内容安全
五 运维与监控