syslog-ng EC2 TLS

syslog-ng EC2 TLS

我正在尝试为在 AWS EC2 实例上运行的 syslog-ng 服务添加 TLS 支持(日志正在发送到 loggly)。没有 TLS 的基本配置可以正常工作,但是当我将配置中的目标替换为:

destination d_loggly {
    tcp("logs-01.loggly.com" port(6514) 
    tls(peer-verify(required-untrusted) ca_dir('/opt/syslog-ng/keys/ca.d/'))
    template(LogglyFormat));
};

当我重新启动 syslog-ng 服务时出现以下错误:

[ec2-user@ip-10-0-1-123 syslog-ng]$ sudo /etc/init.d/syslog-ng restart
Stopping syslog-ng: [ OK ]
Error parsing afsocket, syntax error, unexpected LL_IDENTIFIER, expecting ')' in /etc/syslog-ng/syslog-ng.conf at line 74, column 5:

tls(peer-verify(required-untrusted) ca_dir('/opt/syslog-ng/keys/ca.d/'))
^^^

syslog-ng documentation: http://www.balabit.com/support/documentation/?product=syslog-ng
mailing list: https://lists.balabit.hu/mailman/listinfo/syslog-ng

我可以确认证书位于 /opt/syslog-ng/keys/ca.d/:

[ec2-user@ip-10-0-1-123 /]$ ls -l /opt/syslog-ng/keys/ca.d/
total 16
-rw-r--r-- 1 root root 1968 Jul 18 11:39 loggly.com.crt
-rw-r--r-- 1 root root 5241 Jul 18 11:39 loggly_full.crt
-rw-r--r-- 1 root root 3273 Jul 18 11:39 sf_bundle.crt

如能得到任何有助于使 TLS 支持正常运行的帮助,我们将不胜感激。

答案1

经过几个小时的搜索,我在这里找到了答案:

http://www.syslog.org/forum/syslog-ng/tls-configuration-syntax-problem/

这是 RHEL/EPEL 中 syslog-ng 软件包的一个限制:syslog-ng 位于 /sbin 中,而 openssl 库安装在 /usr/lib 下。由于 /usr 可能是在早期启动期间不可用的单独分区,因此无法在 RHEL 软件包中启用加密支持。

由于 AWS Linux 基于 RHEL,因此这里也存在同样的限制。

我使用以下指南从源代码编译 syslog-ng,现在一切都按预期工作:

https://www.balabit.com/sites/default/files/documents/syslog-ng-ose-latest-guides/en/syslog-ng-ose-guide-admin/html/compiling-syslog-ng.html

https://czanik.blogs.balabit.com/2011/06/compiling-syslog-ng-with-database-support-for-centos-5-co/

http://www.packetwatch.net/documents/guides/2007062002.php

相关内容