Answers:
您是否尝试过syslog-ng和stunnel?
注意:
Stunnel(http://www.stunnel.org)是一个程序,可让您加密Unix和Windows上可用的SSL(安全套接字层)内的任意TCP连接。通过让Stunnel提供加密,无需更改守护程序的代码,Stunnel可以允许您保护不支持SSL的守护程序和协议(例如POP,IMAP,LDAP等)的安全。
简短答案:VPN
可能看起来有些矫kill过正,但这是正确的答案,并且设置起来并不那么复杂。
您也可以查看免费的Kiwi安全隧道 http://www.solarwinds.com/products/kiwi_syslog_server/related_tools.aspx
使用syslog-ng或其他支持TCP的syslog守护程序。
通过加密的隧道发送数据。不要使用ssh隧道,这太麻烦了。
UDP syslog是一个历史悠久的破坏性协议,应该早就取消。如果您的供应商默认提供它,请依靠他们。
如果您的供应商未提供在发送每个消息之前对其进行签名的系统日志解决方案,请依靠它们。
软件简单,算法简单。默认情况下安装它的策略不是。
首先,我可能不会通过Internet发送日志数据,而是在需要的位置安装集中式日志主机。
这些天,我更喜欢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:
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/"))
);
};