温馨提示×

CentOS上Filebeat安全设置有哪些

小樊
45
2025-12-23 10:08:54
栏目: 智能运维

CentOS上Filebeat安全设置清单

一 身份与权限最小化

  • 使用专用的非特权系统用户运行Filebeat,禁止以root直接运行,降低被提权风险。创建用户示例:sudo useradd filebeat -r -M -s /sbin/nologin
  • 收紧关键文件与目录权限:配置文件**/etc/filebeat/filebeat.yml建议权限为640并属主filebeat:filebeat**;日志目录**/var/log/filebeat属主filebeat:filebeat**,避免其他用户读取敏感日志或配置。
  • 如系统启用SELinux,应为Filebeat访问的日志路径设置正确的SELinux上下文,或按需调整策略;不建议直接永久关闭SELinux,以免影响整体系统安全基线。
  • 在systemd服务单元中,确保以非特权用户启动(如通过服务文件配置User=filebeat),并限制不必要的系统权限。

二 传输加密与认证

  • 对输出到Elasticsearch的链路启用TLS/SSL:设置ssl.enabled: true,提供CA证书客户端证书私钥,并开启证书校验(如ssl.verification_mode: certificate),防止明文传输与中间人攻击。
  • 启用Elasticsearch X-Pack Security时,配置用户名/密码或API Key进行身份认证;若Elasticsearch同时启用了传输层与HTTP层SSL,Filebeat侧需对应配置xpack.security.transport.sslxpack.security.http.ssl相关项(如keystore/truststore路径)。
  • 若经由Logstash转发,建议在Logstash输入与输出双向启用TLS,避免明文通道;证书与密钥集中存放于受控目录并设置最小权限。

三 网络与防火墙隔离

  • 仅开放必需端口:到Elasticsearch使用9200/TCP(HTTPS),到Logstash使用5044/TCP(Beats协议);使用firewalld精细化放行,例如:sudo firewall-cmd --permanent --zone=public --add-port=9200/tcpsudo firewall-cmd --permanent --zone=public --add-port=5044/tcp,随后firewall-cmd --reload
  • 将日志收集网段与服务网段进行网络隔离/VPC划分,仅允许Filebeat主机对受控的Elasticsearch/Logstash端点发起连接,减少攻击面。

四 配置与运行安全

  • 以最小功能集运行:仅启用必要的inputs/modules,禁用不需要的模块与功能,减少潜在攻击向量与资源占用。
  • 保护敏感凭据:避免在配置中明文写入密码,优先使用安全的凭据存储或API Key;对配置文件与密钥文件设置600/640权限并限制属主为filebeat
  • 开启监控与日志:启用Filebeat自身监控(如xpack.monitoring.collection.enabled: true)并输出到受控的监控集群;持续审计Filebeat运行日志(如**/var/log/filebeat/filebeat**)与系统日志,及时发现异常。
  • 保持版本更新:定期升级Filebeat至包含最新安全补丁的版本,降低已知漏洞风险。

五 最小化配置示例

  • 目标:输出到启用安全特性的Elasticsearch,使用证书与账号认证,最小权限运行。
  • 参考片段:
    • filebeat.yml(节选)
      filebeat.inputs:
      - type: log
        enabled: true
        paths:
          - /var/log/*.log
      
      output.elasticsearch:
        hosts: ["https://es.example.com:9200"]
        ssl.enabled: true
        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"
        username: "filebeat_writer"
        password: "YOUR_SECURE_PASSWORD"
      
      xpack.monitoring.collection.enabled: true
      xpack.monitoring.elasticsearch.hosts: ["https://es.example.com:9200"]
      
    • 权限与用户
      sudo useradd -r -M -s /sbin/nologin filebeat
      sudo chown filebeat:filebeat /etc/filebeat/filebeat.yml
      sudo chmod 640 /etc/filebeat/filebeat.yml
      sudo chown -R filebeat:filebeat /var/log/filebeat
      
    • 防火墙
      sudo firewall-cmd --permanent --add-port=9200/tcp
      sudo firewall-cmd --reload
      
    说明:证书与密钥需提前准备并受控分发;生产环境不建议关闭SELinux或防火墙。

0