温馨提示×

Filebeat如何加密CentOS数据

小樊
44
2026-08-29 23:27:52
栏目: 网络安全

在 CentOS 上通过 Filebeat 加密数据,通常是指 三种场景之一(或组合):
✅ 传输加密(Filebeat → Elasticsearch / Logstash)
✅ 文件内容加密(本地日志文件)
✅ 磁盘 / 文件系统加密(操作系统层)

下面按 最常见、最推荐 的方式说明,基本可以覆盖 90% 的企业需求。


一、最常用:Filebeat 传输加密(TLS/SSL)

目标:防止日志在 Filebeat → Elasticsearch / Logstash 过程中被窃听或篡改。

1️⃣ 使用 Elasticsearch 官方证书(推荐)

如果你使用的是 Elasticsearch 安全功能(TLS 已开启):

Elasticsearch 侧

# 查看证书
ls /etc/elasticsearch/certs/

常见文件:

  • ca.crt
  • elasticsearch.crt
  • elasticsearch.key

Filebeat 配置(CentOS)

编辑:

vim /etc/filebeat/filebeat.yml

示例(ES 作为输出):

output.elasticsearch:
  hosts: ["https://es-node1:9200"]
  username: "filebeat"
  password: "密码"
  ssl:
    enabled: true
    certificate_authorities:
      - "/etc/filebeat/certs/ca.crt"

复制 CA 证书到 Filebeat 主机:

scp root@es-node:/etc/elasticsearch/certs/ca.crt /etc/filebeat/certs/
chmod 600 /etc/filebeat/certs/ca.crt

重启:

systemctl restart filebeat

2️⃣ Logstash + TLS(如果你用 Logstash)

Logstash 配置

input {
  beats {
    port => 5044
    ssl => true
    ssl_certificate => "/etc/logstash/certs/logstash.crt"
    ssl_key => "/etc/logstash/certs/logstash.key"
    ssl_ca => "/etc/logstash/certs/ca.crt"
  }
}

Filebeat 配置

output.logstash:
  hosts: ["logstash:5044"]
  ssl:
    enabled: true
    certificate_authorities:
      - "/etc/filebeat/certs/ca.crt"

二、Filebeat 日志文件本身是否需要加密?

✅ 一般不需要

  • Filebeat 只负责采集和转发
  • 日志文件通常是 应用明文日志
  • 不推荐 对日志文件实时加密(影响性能)

✅ 推荐做法(企业级)

场景 推荐方案
防止磁盘被窃取 LUKS / 磁盘加密
防止误操作 文件权限 600
防止敏感字段泄露 Filebeat 脱敏(processors)

三、日志脱敏(非常重要)

示例:隐藏手机号 / 身份证 / 密码

processors:
  - dissect:
      tokenizer: "%{message}"
  - script:
      lang: javascript
      source: >
        function process(event) {
          var msg = event.Get("message");
          msg = msg.replace(/\d{11}/g, "***********");
          event.Put("message", msg);
        }

四、CentOS 磁盘加密(可选)

LUKS(全盘 / 分区加密)

lsblk
cryptsetup luksFormat /dev/sdb1
cryptsetup open /dev/sdb1 secure_log
mkfs.xfs /dev/mapper/secure_log
mount /dev/mapper/secure_log /var/log

✅ 即使硬盘被拿走,数据也无法读取


五、CentOS 防火墙 + TLS 一起使用(安全最佳实践)

firewall-cmd --add-port=9200/tcp --permanent
firewall-cmd --reload

六、验证 TLS 是否生效

filebeat test output

或:

curl -X GET "https://es-node:9200" -u filebeat:密码 --cacert /etc/filebeat/certs/ca.crt

七、总结(推荐方案)

✅ 生产环境必做

  • Filebeat → ES / Logstash TLS 加密
  • 使用 Elastic 官方证书
  • 日志文件 权限 600
  • 敏感字段 脱敏

✅ 可选增强

  • CentOS 磁盘加密(LUKS)
  • 防火墙限制端口

如果你愿意,可以告诉我:

  • ✅ Filebeat → Elasticsearch 还是 Logstash?
  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 是否启用 Elastic 安全(xpack.security)

我可以给你 一份可直接用的完整配置文件。

0 踩