我目前正在为我的系统设置使用 graylog 的日志记录,但遇到了一个问题,即日志可能包含敏感信息。标准行为是通过 UDP 发送未加密的日志,以防止应用程序阻塞。有没有办法在保持 UDP 连接的同时保护它?如果 graylog 不是合适的工具,我很乐意切换到提供此功能的工具。您的经验是什么,如果我想维护应用程序的安全性并且不想引入通过 https 进行日志记录的延迟,我应该如何实现日志记录?
答案1
答案2
我完全同意彼得的回答,但为了稍微扩展一下,我再提出一个问题:您是否处理普通的系统日志消息,或者您的应用程序是否已经在 GELF 中发送结构化消息?
对于普通系统日志,经过验证的可靠设置是使用 rsyslog 或 syslog-ng 的中央日志服务器(两者都实现 TLS 传输,使用您的发行版默认使用的任何内容或具有更好配置语法的内容)。让它们在本地收集所有系统日志消息并通过 TLS 转发到您的中央日志服务器(可能与您的 Graylog2 服务器相同)。让日志服务器上的实例接收所有消息,可选择将它们存档到磁盘(或者如果它们包含敏感信息则决定避免该风险),最后将它们转发到您的 Graylog2 实例。
对于结构化消息,设置并不那么简单。我不确定是否有可靠的 GELF/TCP 支持。如果有,那么您可以使用 ssh 隧道或 stunnel TLS 连接来保护 TCP 传输。否则,您只能使用 UDP,因为 UDP 的隧道传输稍微困难一些,因此您可能必须设置 VPN(使用 openvpn)来保护日志传输。