Я пытаюсь добавить поддержку TLS в свою службу syslog-ng, работающую на экземпляре AWS EC2 (журналы отправляются в 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 будет принята с благодарностью.
После многих часов поисков я нашел здесь ответ:
http://www.syslog.org/forum/syslog-ng/tls-configuration-syntax-problem/
Это ограничение пакета syslog-ng в RHEL / EPEL: syslog-ng находится в / sbin, а библиотеки openssl установлены в / usr / lib. Поскольку / usr может быть отдельным разделом, недоступным во время ранней загрузки, поддержку шифрования нельзя включить в пакете RHEL.
А поскольку AWS Linux основан на RHEL, здесь действует то же ограничение.
Я использовал следующие руководства для компиляции syslog-ng из исходного кода, и теперь все работает, как ожидалось:
https://czanik.blogs.balabit.com/2011/06/compiling-syslog-ng-with-database-support-for-centos-5-co/