首页主机资讯如何配置Filebeat安全地传输日志

如何配置Filebeat安全地传输日志

时间2025-12-04 03:38:03发布访客分类主机资讯浏览1092
导读:配置 Filebeat 安全传输日志 一 安全原则与总体架构 启用传输加密:优先使用 TLS 1.2+ 对客户端与服务端之间的通信进行加密,避免明文传输。 强身份认证:对服务端进行 CA 证书校验,必要时启用 双向 TLS(mTLS);对...

配置 Filebeat 安全传输日志

一 安全原则与总体架构

  • 启用传输加密:优先使用 TLS 1.2+ 对客户端与服务端之间的通信进行加密,避免明文传输。
  • 强身份认证:对服务端进行 CA 证书校验,必要时启用 双向 TLS(mTLS);对 Elasticsearch 输出同时配置 用户名/密码或 API Key
  • 最小权限:为 Filebeat 创建 最小权限角色(仅允许写入目标索引、创建/写入 ILM 等必要操作)。
  • 机密保护:证书、密钥、凭据使用 文件权限 0600,并通过 Vault/KMS/环境变量 管理,避免硬编码。
  • 网络与系统加固:仅开放必要端口(如 5044/9200),配合 防火墙/安全组主机加固

二 证书与密钥准备

  • 推荐自建 私有 CA,为服务端签发证书,并为需要双向认证的客户端签发客户端证书。
  • 示例(OpenSSL,生成 CA 与服务器/客户端证书):
    # 1) 生成 CA
    openssl req -x509 -newkey rsa:2048 -keyout ca.key -out ca.crt -days 3650 -nodes -subj "/CN=MyRootCA"
    
    # 2) 生成服务器证书(供 ES 或 Logstash 使用)
    openssl req -newkey rsa:2048 -keyout server.key -out server.csr -nodes -subj "/CN=es.example.com"
    openssl x509 -req -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out server.crt -days 365
    
    # 3) 生成客户端证书(供 Filebeat 使用,可选 mTLS)
    openssl req -newkey rsa:2048 -keyout client.key -out client.csr -nodes -subj "/CN=filebeat-client"
    openssl x509 -req -in client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out client.crt -days 365
    
    # 4) 校验
    openssl x509 -in server.crt -noout -text
    
  • 将证书与密钥分发到目标主机,建议目录:/etc/filebeat/certs/,权限 0600,属主 root:filebeat

三 配置 Filebeat 输出加密

  • 直连 Elasticsearch(HTTPS + 基本认证 + 证书校验)
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/*.log
    
    output.elasticsearch:
      hosts: ["https://es.example.com:9200"]
      username: "filebeat_writer"
      password: "${
    FILEBEAT_PWD}
    "   # 推荐从环境变量读取
      ssl.enabled: true
      ssl.verification_mode: certificate
      ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
      # 如需 mTLS,取消下行注释
      # ssl.certificate: "/etc/filebeat/certs/client.crt"
      # ssl.key:         "/etc/filebeat/certs/client.key"
    
  • 经由 Logstash(Beats 输入启用 TLS)
    # filebeat.yml
    output.logstash:
      hosts: ["logstash.example.com:5044"]
      ssl.enabled: true
      ssl.verification_mode: certificate
      ssl.certificate_authorities: ["/etc/filebeat/certs/ca.crt"]
      # 如需 mTLS,取消下行注释
      # ssl.certificate: "/etc/filebeat/certs/client.crt"
      # ssl.key:         "/etc/filebeat/certs/client.key"
    
    # logstash.conf 片段(input)
    input {
    
      beats {
        
        port =>
         5044
        ssl =>
         true
        ssl_certificate =>
         "/etc/pki/tls/certs/server.crt"
        ssl_key         =>
         "/etc/pki/tls/certs/server.key"
        ssl_ca          =>
         "/etc/pki/tls/certs/ca.crt"
        ssl_verify_mode =>
     "force_peer"   # 强制校验证书
      }
    
    }
        
    
  • 关键参数说明
    • ssl.verification_mode:建议设为 certificate(校验证书链);不建议 none(禁用校验,仅测试用)。
    • ssl.certificate_authorities:指定 CA 证书路径,用于验证服务端。
    • ssl.certificate / ssl.key:启用 mTLS 时配置客户端证书与私钥。

四 服务端与安全策略配置

  • Elasticsearch 启用安全与 TLS(示例)
    # elasticsearch.yml
    xpack.security.enabled: true
    xpack.security.transport.ssl.enabled: true
    xpack.security.transport.ssl.verification_mode: certificate
    xpack.security.transport.ssl.keystore.path: /etc/elasticsearch/certs/elastic-certificates.p12
    xpack.security.transport.ssl.truststore.path: /etc/elasticsearch/certs/elastic-certificates.p12
    
    xpack.security.http.ssl.enabled: true
    xpack.security.http.ssl.certificate: /etc/elasticsearch/certs/server.crt
    xpack.security.http.ssl.key:         /etc/elasticsearch/certs/server.key
    
    说明:上述启用 HTTP 层 TLS 后,Filebeat 必须使用 https://证书校验 才能连接。
  • 网络与系统加固
    • 防火墙仅放行 9200(ES)/5044(Logstash) 等必要端口,限制来源网段。
    • 文件与目录权限:证书与密钥 0600,配置 0640,属主 root:filebeat
    • 凭据管理:使用 环境变量/密钥管理服务(如 Vault) 注入密码或 API Key,避免明文。

五 启动、验证与运维

  • 启动与开机自启
    systemctl enable --now filebeat
    
  • 验证连接与证书
    # 查看 Filebeat 日志
    journalctl -u filebeat -f
    
    # 如启用 Logstash,查看 Logstash 日志
    journalctl -u logstash -f
    
    # 可选:用 curl 验证 ES HTTPS 可达与证书
    curl -vk https://es.example.com:9200
    
  • 常见问题与要点
    • 出现证书不受信任:确认 ca.crt 已正确配置且链路完整(中间 CA 需一并信任)。
    • 出现 “certificate verify failed”:将 ssl.verification_modenone 改为 certificate,并提供 CA
    • 性能与稳定性:合理设置 bulk_max_sizeworkerqueue 等参数,避免丢数。
    • 合规与轮换:证书建议 ≤ 365 天,建立 轮换与吊销 流程,并保留 审计日志

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: 如何配置Filebeat安全地传输日志
本文地址: https://pptw.com/jishu/763152.html
CentOS Stream 8如何配置邮件服务器

游客 回复需填写必要信息