td-agent 共享密钥在服务器之间不匹配

td-agent 共享密钥在服务器之间不匹配

我正在尝试使用 td-agent 在两台机器之间设置加密日志。我按照 fluentd 官方文档中的示例进行操作,但我陷入了一个非常奇怪的境地。由于 shared_key 不匹配,客户端和服务器拒绝协商。

两个服务器上的关键词都是正确的,但是客户端和服务器都指出密钥不匹配。

以下是客户端配置(省略文本):

<match uwsgi.**>
 type copy
<store>
    type secure_forward
    shared_key hello  
    send_timeout 30s
    self_hostname client.example.net

    <server>

            name server.example.net
            host server.example.net
            port 24225
    </server>
</store> 
</match>

以下是服务器配置:

<source>
  type secure_forward
  shared_key    hello
  self_hostname server.example.net
  bind 0.0.0.0
  port 24225
  secure true
  ca_cert_path /etc/td-agent/mycert.crt
  ca_private_key_path /etc/td-agent/mykey.key
  ca_private_key_passphrase ""

我不断从服务器收到这些错误消息:

Shared key mismatch from 'client.example.net'

客户也一样:

[warn]: dead connection found: server.example.net, reconnecting...  
[warn]: connection refused to server.example.net:authentication failed: shared_key mismatch

有任何想法吗?

答案1

事实证明,td-agent的secure_forward插件有不同的版本。

更详细地说,相关插件的最新版本 (0.4.5) 使用“nonce”对密码进行“加盐”,而之前的版本则没有。因此,一个密码最终会得到不同的 SHA 和。

两个解决方案:
1. 更新两端的 secure_forward 插件
2. 删除代码中的摘要过程。

答案2

<match uwsgi.**>
 type copy
<store>
    type secure_forward
    
    send_timeout 30s
    self_hostname client.example.net

    <server>
      shared_key hello  # put the same shared key
      name server.example.net
      host server.example.net
      port 24225
    </server>
</store> 
</match>

相关内容