我喜欢将数据从多个来源传输到一个目标收集服务器,但我不确定如何同时确保:
- 数据已加密,即无需信任网络
- 数据已签名,即目标可以信任源
- 没有来源与其他来源共享凭据
但是,在network
插件中,到目前为止,我只找到了值sign
或encrypt
for SecurityLevel
,但没有找到两者。看来,对于不同的来源,我不能拥有不同的凭据 ( Username
+ )。Password
也许我只是误解了collectd?
我喜欢将数据从多个来源传输到一个目标收集服务器,但我不确定如何同时确保:
但是,在network
插件中,到目前为止,我只找到了值sign
或encrypt
for SecurityLevel
,但没有找到两者。看来,对于不同的来源,我不能拥有不同的凭据 ( Username
+ )。Password
也许我只是误解了collectd?
有2个问题。
1) 加密与签名
SecurityLevel "sign"
提供发件人验证。SecurityLevel "encrypt"
提供加密和发件人验证。在私钥/公钥方案中,签名和加密是分开的:您可以在不加密的情况下进行签名,或者在不签名的情况下进行加密。然而,collectd 使用共享密钥方案:加密和签名都保证发送者知道共享密钥:发送者总是得到验证。
2) 多个凭证
您可以为不同的来源拥有不同的凭据。请参阅以下示例配置。
<Plugin "network">
<Listen "192.168.0.1">
SecurityLevel "Encrypt"
AuthFile "/etc/collectd/auth_file"
</Listen>
</Plugin>
其中/etc/collectd/auth_file
包含使用以下格式的凭据。
user1: password1
user2: password2
参考资料:https ://collectd.org/wiki/index.php?title=Networking_introduction