在 Ubuntu 上,Filebeat 的安全加固应覆盖身份、传输、配置、网络与运维四个层面,既保护日志数据在传输与落库过程中的机密性与完整性,也降低被滥用与入侵的风险。
身份与权限最小化
- 使用非 root专用系统用户运行 Filebeat(如创建系统用户并禁止登录),仅授予读取日志与必要目录的权限。
- 将配置与证书目录权限收紧:例如将 /etc/filebeat 设为仅属主可读写执行(如 750),证书私钥仅对 Filebeat 用户可读(如 600)。
- 遵循最小权限原则:仅启用需要的输入模块与处理器,禁用不必要的模块与功能,减少攻击面。
- 保持 Filebeat 与依赖组件及时更新,及时修补已知漏洞。
传输加密与认证
- 对到 Elasticsearch/Logstash 的通信启用 TLS/SSL,并开启证书校验(如 verification_mode: certificate),避免明文传输与中间人攻击。
- 为客户端与服务器端配置CA 签发的证书,在 Filebeat 配置中正确设置证书与私钥路径,确保链路双向校验。
- 若后端启用 Elasticsearch X-Pack Security,需同时配置用户名/密码或基于证书的认证,确保只有授权客户端可写入。
- 示例(Filebeat 输出到 Elasticsearch 的 TLS 片段):
- 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”
- 完成后重启服务并校验连接状态与证书有效性。
配置与文件安全
- 保护配置文件与密钥:设置 /etc/filebeat/filebeat.yml 权限为仅属主可读写执行(如 750),证书与私钥仅对 Filebeat 用户可读(如 600),避免泄露凭据。
- 禁用不必要的模块与功能(如不需要 ILM 可关闭),减少潜在漏洞与资源占用。
- 避免将敏感字段提升到根层级,谨慎使用类似 fields_under_root: true 的配置,降低日志平台侧数据暴露风险。
- 对采集行为、配置变更与运行状态进行审计与监控,配合日志轮换与留存策略,防止日志被篡改或删除。
网络与系统加固
- 使用 UFW/iptables 限制访问:仅允许来自受控网段或跳板机的 Beats 端口(默认 5044) 与必要的管理端口,默认拒绝其他来源。
- 实施网络隔离:将采集端与被采集系统/日志后端划分到受控网络或 VPC,通过安全组/ACL 限制横向移动。
- 仅采集必要的日志,减少不必要的数据外泄风险与带宽占用。
快速实施清单
- 创建专用用户与目录权限:
- sudo useradd -r -s /usr/sbin/nologin filebeat
- sudo chown -R filebeat:filebeat /etc/filebeat
- sudo chmod 750 /etc/filebeat && sudo chmod 600 /etc/filebeat/certs/*.key
- 生成并部署 CA/客户端/服务器 证书,配置 Filebeat 输出为 HTTPS + 证书校验。
- 若对接启用安全的 Elasticsearch,开启 X-Pack Security 并配置用户名/密码或证书认证。
- 配置 UFW:仅允许 5044/tcp 与必要的管理来源。
- 精简输入模块与处理器,禁用不需要的功能(如 ILM)。
- 打开本地日志与运行状态监控,设置告警;定期更新 Filebeat 与依赖组件。