JamesHannah Asked: 2009-06-06 12:52:20 +0800 CST2009-06-06 12:52:20 +0800 CST 2009-06-06 12:52:20 +0800 CST 您将如何通过公共互联网*安全地*发送系统日志? 772 所以我有几台服务器,我想集中记录,但显然我不想通过互联网不安全地传递数据。 我尝试过 syslog-ng 但无法使其以安全的方式工作,正常的ssh -L PORT:localhost:PORT user@hostSSH 隧道将无法工作,因为我相信这会使日志看起来来自本地机器,而 VPN 似乎有点矫枉过正. linux security tunneling syslog 7 个回答 Voted Best Answer KPWINC 2009-06-06T13:01:27+08:002009-06-06T13:01:27+08:00 您是否尝试过 syslog-ng 和 stunnel? 安装 Stunnel 通过 Stunnel 为 syslog-ng 创建证书文件 配置 Stunnel 以与 syslog-ng 一起使用 安装 syslog-ng 配置 syslog-ng 完毕! 笔记: Stunnel ( http://www.stunnel.org ) 是一个程序,它允许您在 Unix 和 Windows 上可用的 SSL(安全套接字层)内加密任意 TCP 连接。Stunnel 可以让您通过让 Stunnel 提供加密来保护不支持 SSL 的守护程序和协议(如 POP、IMAP、LDAP 等),而无需更改守护程序的代码。 Kevin Kuphal 2009-06-06T12:53:14+08:002009-06-06T12:53:14+08:00 简短的回答:VPN 这似乎有点矫枉过正,但它是正确的答案,而且设置起来并不复杂。 Brian De Smet 2009-06-06T13:15:11+08:002009-06-06T13:15:11+08:00 Rsyslog 可以做到这一点。使用 TLS 加密 Syslog 流量 Ken Davis 2009-06-06T13:54:10+08:002009-06-06T13:54:10+08:00 您还可以查看免费的 Kiwi 安全隧道 http://www.solarwinds.com/products/kiwi_syslog_server/related_tools.aspx carlito 2009-06-06T16:43:51+08:002009-06-06T16:43:51+08:00 使用 syslog-ng 或其他支持 TCP 的 syslog 守护程序。 通过加密隧道发送数据。不要使用 ssh 隧道,它太繁琐了。 UDP syslog 是一个历史悠久的脑残协议,早就应该被淘汰。如果您的供应商默认提供它,请依靠它们。 如果您的供应商没有提供在发送前对每条消息进行签名的系统日志解决方案,请依靠它们。 软件简单,算法简单。默认情况下安装它的政治不是。 jtimberman 2009-06-06T22:56:26+08:002009-06-06T22:56:26+08:00 我可能一开始不会通过互联网发送日志数据,而是在需要的位置安装一个集中式日志主机。 这些天来,我更喜欢 rsyslog 到 syslog-ng。它几乎是一个替代品,并且有各种论文和方法,包括一篇关于使用 TLS/SSL 发送加密数据的文章(从 v3.19.0 开始),旧版本仍然可以使用 stunnel。 根据我对 rsyslog 和 syslog-ng 的经验,rsyslog 在易于配置方面胜出,尤其是因为您可以使用现有的 syslog.conf 并添加到其中。 值得一提的是,Rsyslog 是Debian Lenny (5.0)、Ubuntu和Fedora上的默认 syslog 守护程序。 jorfus 2016-03-26T16:26:40+08:002016-03-26T16:26:40+08:00 我正在使用带有 tls 的 rsyslog。有一些超出范围的准备工作:部署本地 CA,将 CA 的证书添加到每个主机,为每个主机生成单独的证书。(现在您的所有主机都可以相互通信 ssl) 我还需要安装 rsyslog-gnutls: sudo apt-get install rsyslog-gnutls 我还限制了传出 syslog 连接(tcp 514),因此我的主机只能连接到我的 rsyslog 服务器,并在 rsyslog 服务器端创建了一个传入白名单,因此只有我的主机可以连接。 在 /etc/rsyslog.conf # make gtls driver the default $DefaultNetstreamDriver gtls # certificate files $DefaultNetstreamDriverCAFile /etc/my_keys/internal_CA.crt $DefaultNetstreamDriverCertFile /etc/my_keys/my_hostname.crt $DefaultNetstreamDriverKeyFile /etc/my_keys/my_hostname.key $ActionSendStreamDriverAuthMode x509/name $ActionSendStreamDriverPermittedPeer my_syslog_server.com $ActionSendStreamDriverMode 1 # run driver in TLS-only mode *.* @@my_syslog_server.com:514 # forward everything to remote server 看起来 syslog-ng 的配置更加简单。(虽然我没有尝试过) syslog-ng /etc/syslog-ng/conf.d/99-graylog2.conf destination remote-server { tcp ("my_syslog_server.com" port(514) tls(ca_dir("/etc/my_keys/")) ); };
您是否尝试过 syslog-ng 和 stunnel?
笔记:
Stunnel ( http://www.stunnel.org ) 是一个程序,它允许您在 Unix 和 Windows 上可用的 SSL(安全套接字层)内加密任意 TCP 连接。Stunnel 可以让您通过让 Stunnel 提供加密来保护不支持 SSL 的守护程序和协议(如 POP、IMAP、LDAP 等),而无需更改守护程序的代码。
简短的回答:VPN
这似乎有点矫枉过正,但它是正确的答案,而且设置起来并不复杂。
Rsyslog 可以做到这一点。使用 TLS 加密 Syslog 流量
您还可以查看免费的 Kiwi 安全隧道 http://www.solarwinds.com/products/kiwi_syslog_server/related_tools.aspx
使用 syslog-ng 或其他支持 TCP 的 syslog 守护程序。
通过加密隧道发送数据。不要使用 ssh 隧道,它太繁琐了。
UDP syslog 是一个历史悠久的脑残协议,早就应该被淘汰。如果您的供应商默认提供它,请依靠它们。
如果您的供应商没有提供在发送前对每条消息进行签名的系统日志解决方案,请依靠它们。
软件简单,算法简单。默认情况下安装它的政治不是。
我可能一开始不会通过互联网发送日志数据,而是在需要的位置安装一个集中式日志主机。
这些天来,我更喜欢 rsyslog 到 syslog-ng。它几乎是一个替代品,并且有各种论文和方法,包括一篇关于使用 TLS/SSL 发送加密数据的文章(从 v3.19.0 开始),旧版本仍然可以使用 stunnel。
根据我对 rsyslog 和 syslog-ng 的经验,rsyslog 在易于配置方面胜出,尤其是因为您可以使用现有的 syslog.conf 并添加到其中。
值得一提的是,Rsyslog 是Debian Lenny (5.0)、Ubuntu和Fedora上的默认 syslog 守护程序。
我正在使用带有 tls 的 rsyslog。有一些超出范围的准备工作:部署本地 CA,将 CA 的证书添加到每个主机,为每个主机生成单独的证书。(现在您的所有主机都可以相互通信 ssl)
我还需要安装 rsyslog-gnutls:
我还限制了传出 syslog 连接(tcp 514),因此我的主机只能连接到我的 rsyslog 服务器,并在 rsyslog 服务器端创建了一个传入白名单,因此只有我的主机可以连接。
在 /etc/rsyslog.conf
看起来 syslog-ng 的配置更加简单。(虽然我没有尝试过) syslog-ng /etc/syslog-ng/conf.d/99-graylog2.conf