配置 syslog-ng 服务器以通过 TLS 从云服务接收 syslog 消息。
syslog-ng 服务器位于 Azure 上的 Ubuntu 实例上,最新版本为 (4.5)。
这是测试实现的基本配置。我为服务器创建了一个自签名证书以供测试。
当服务器运行并让云服务发送日志时,系统日志服务器控制台上会出现此错误消息:
读取流时出现 SSL 错误;tls_error='error:1417C0C7:SSL 例程:tls_process_client_certificate:peer 未返回证书',location='/etc/syslog-ng/tls.conf:4:1'
配置文件:
@version:4.5
source demo_tls_source {
tcp(port(6514)
tls( key_file("/etc/syslog-ng/cert.d/syslog.key")
cert_file("/etc/syslog-ng/cert.d/syslog.crt")
ca_dir("/etc/syslog-ng/cert.d"))
); };
destination d_file { file("/var/log/fromnet"); };
log { source(demo_tls_source); destination(d_file); };
不确定如何解决这个问题,任何建议都会有帮助。
答案1
Syslog-ng 配置为相互身份验证,因此它需要来自客户端的证书,但云服务似乎没有发送证书。您可以:
- 配置你的云服务以发送 syslog-ng 可以验证的证书,或者
- 配置 syslog-ng 以接受没有证书的连接。有关此选项,请参阅禁用相互身份验证(该链接指向 Axosyslog 的文档,Axosyslog 是一个支持云的 syslog-ng 发行版,由 syslog-ng 的原始创建者维护)