在CentOS系统下,要实现Filebeat的安全传输,可以采取以下几种方法:
Filebeat支持通过TLS/SSL加密数据传输到Elasticsearch或Logstash。以下是配置步骤:
编辑/etc/filebeat/filebeat.yml文件,添加或修改以下内容:
filebeat.inputs:
- type: log
enabled: true
paths:
- /var/log/*.log
output.elasticsearch:
hosts: ["https://your_elasticsearch_host:9200"]
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
确保Elasticsearch已经配置了TLS/SSL,并且证书和密钥文件路径正确。
配置CentOS的防火墙(如firewalld)来限制对Filebeat和Elasticsearch端口的访问。
# 允许Filebeat到Elasticsearch的流量
firewall-cmd --permanent --zone=trusted --add-source=your_filebeat_ip
firewall-cmd --permanent --zone=trusted --add-service=https
firewall-cmd --reload
# 允许Elasticsearch的HTTPS端口
firewall-cmd --permanent --zone=trusted --add-port=9200/tcp
firewall-cmd --reload
在Elasticsearch的配置文件elasticsearch.yml中,设置IP白名单来限制哪些IP可以访问Elasticsearch。
xpack.security.http.ssl.allow_originating_ips: ["your_filebeat_ip"]
启用Elasticsearch的X-Pack安全功能,配置用户认证和授权。
使用Kibana的Dev Tools或Elasticsearch的REST API创建一个新用户,并分配适当的角色。
PUT /_security/user/filebeat_user
{
"password" : "your_password",
"roles" : [ "filebeat_user" ],
"full_name" : "Filebeat User"
}
编辑/etc/filebeat/filebeat.yml文件,添加以下内容:
output.elasticsearch:
hosts: ["https://your_elasticsearch_host:9200"]
ssl.verification_mode: certificate
ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
ssl.certificate: "/etc/filebeat/certs/filebeat.crt"
ssl.key: "/etc/filebeat/certs/filebeat.key"
basic_auth:
users:
- name: "filebeat_user"
password: "your_password"
roles: ["filebeat_user"]
org: "default"
定期更新Filebeat、Elasticsearch和相关的安全补丁,并定期审计日志以确保没有未授权的访问。
通过以上步骤,可以在CentOS系统下实现Filebeat的安全传输,确保数据在传输过程中的机密性和完整性。