温馨提示×

如何用Filebeat进行日志加密

小樊
49
2025-07-30 01:58:46
栏目: 网络安全

使用Filebeat进行日志加密可以通过以下两种主要方法实现:

使用Filebeat的加密功能(自6.0版本起支持)

  1. 生成密钥对
  • 使用OpenSSL或其他工具生成一个公钥和私钥对。例如:
    openssl genrsa -out private_key.pem 2048
    openssl rsa -pubout -in private_key.pem -out public_key.pem
    
  1. 配置Filebeat
  • 编辑Filebeat配置文件(通常位于 /etc/filebeat/filebeat.yml),并添加以下内容:
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /path/to/your/log/files/*.log
    processors:
    - encrypt:
        fields:
          - private_key_path: "/path/to/your/private_key.pem"
          - public_key_path: "/path/to/your/public_key.pem"
          - field: "your_field_to_encrypt"
            method: "AES"
            options:
              key: "your_encryption_key"
              cipher: "GCM"
              tag: "your_tag_for_encrypted_field"
    
  1. 重启Filebeat
  • 保存配置文件并重启Filebeat服务以应用更改:
    sudo systemctl restart filebeat
    

使用TLS/SSL加密进行数据传输

  1. 生成证书和密钥
  • 使用OpenSSL工具为Filebeat和目标服务器(例如Elasticsearch)生成一个SSL证书和相应的私钥。例如:
    mkdir -p /etc/filebeat/pki/tls/certs
    mkdir -p /etc/filebeat/pki/tls/private
    openssl req -subj '/CN=filebeat.example.com/' -x509 -days 365 -batch -nodes -newkey rsa:2048 -keyout /etc/filebeat/pki/tls/private/filebeat.key -out /etc/filebeat/pki/tls/certs/filebeat.crt
    
  1. 配置Filebeat
  • 在Filebeat的配置文件中,指定SSL证书和密钥的位置,以及目标服务器的地址和端口。例如:
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /path/to/your/log/*.log
    output.elasticsearch:
      hosts: ["https://your-elasticsearch-server:9200"]
      ssl.certificate_authorities: ["/etc/filebeat/pki/tls/certs/ca.crt"]
      ssl.certificate: "/etc/filebeat/pki/tls/certs/filebeat.crt"
      ssl.key: "/etc/filebeat/pki/tls/private/filebeat.key"
    
  1. 重启Filebeat
  • 保存配置文件后,重启Filebeat以使更改生效:
    sudo systemctl restart filebeat
    

0