我正在尝试使用各种教程在rsyslog服务器上设置TLS,包括rsyslog的官方文档:http://www.rsyslog.com/doc/v8-stable/tutorials/tls.html。
我正在运行rsyslog-8.33.1以及相同版本的rsyslog-gnutls。 OS是ec2上的amazon linux v2017.09。
由于我使用的特定系统日志客户端无法使用自签名证书,因此我正在使用我们域名的CA进行签名。我已经设置了密钥,证书并抓住了CA链(因为有根证书的中间证书)并设置rsyslog.conf就像很多教程告诉我的那样:
# RsyslogGnuTLS
$DefaultNetstreamDriver gtls
$DefaultNetstreamDriverCAFile /etc/pki/tls/CA-chain.crt
$DefaultNetstreamDriverCertFile /etc/pki/tls/<hostname>.crt
$DefaultNetstreamDriverKeyFile /etc/pki/tls/<hostname>.key
$ActionSendStreamDriverMode 1 # TLS mode only
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *
$InputTCPServerRun 6514
让rsyslog开始没有抱怨(经过一些kerjigering)。
这是一个ec2主机,端口6514向全世界开放。现在,我正在使用openssl s_client进行测试,我无法从机器上获取证书。
[me@my_host ~]$ openssl s_client -connect ec2-<ip>.us-west-2.compute.amazonaws.com:6514
CONNECTED(00000003)
(hangs)
...并且它永远空白地挂起,直到我杀死了rsyslog服务器,此时它错误地显示“没有可用的对等证书”。
我知道rsyslog服务器有效。当双方都关闭TLS时,它从syslog客户端获取6514的日志。
我已经在rsyslog.conf中尝试了几乎所有变量的组合,而且我的智慧结束了。我也尝试使用机器附带的/ etc / pki / tls / certs中的cert / key / CA软件包,没有骰子。
答案 0 :(得分:0)
想出来,我使用了错误的变量 - 客户端变量而不是服务器端变量,它们在结尾看起来很相似。我应该一直在使用
$InputTCPServerStreamDriverAuthMode x509/name
$InputTCPServerStreamDriverPermittedPeer *
$InputTCPServerStreamDriverMode 1
在服务器上而不是
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *
$ActionSendStreamDriverMode 1.
只需要用新鲜的眼睛看它。