Моя проблема в том, что я не могу получить журналы из моего удаленного приложения для входа на вход Graylog2 с использованием TLS.Удаленное приложение хорошо регистрировалось, прежде чем я попытался включить TLS с самозаверяющими сертификатами, поэтому я почти уверен, что у меня просто проблема с конфигурацией
Вот некоторые сведения.Сначала я создал несколько самозаверяющих сертификатов, выполнив следующие действия:
$ openssl genrsa -out CA.key 2048
$ openssl req -x509 -new -nodes -key CA.key -sha256 -days 3650 -out rootCA.crt
$ openssl genrsa -out graylog-server.key 2048
$ openssl req -new -key graylog-server.key -out graylog-server.csr
$ openssl x509 -req -in graylog-server.csr -CA rootCA.crt -CAkey CA.key -CAcreateserial -out graylog-server.crt -days 3640 -sha256
source: https://gist.github.com/fntlnz/cf14feb5a46b2eda428e000157447309
Где я заполнил DNS-имя для серого журнала на сервере graylog.crt
Затем я импортировал файл rootCA.crt в хранилище ключей на сервере Graylog:
$ keytool -importcert -keystore ./graylog-cacerts -alias graylogRootCaCert -file rootCa.crt
Затем я захожу в веб-интерфейс Graylog и перенастраиваю поля ввода для этого:
port: 51xx
TLS Cert File: /path/to/certs/graylog-server.csr
TLS Private Key File: /path/to/certs/graylog-server.key
Enable TLS: True
TLS Client authentication: Optional
TLS Client Auth Trusted Certs: /path/to/certs*
все созданные сертификаты находятся в каталоге /path/to/certs/
, который принадлежит Graylog.Все ключи только для чтения.
Удаленное приложение, работающее в Ubuntu 16.04, имеет конфигурацию rsyslog, которая выглядит следующим образом:
$ cat 60-remote-rsyslog.conf
$DefaultNetstreamDriver gtls
$DefaultNetstreamDriverCAFile /etc/ssl/graylog/rootCA.pem
$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1 # run driver in TLS-only mode
#$ActionSendStreamDriverPermittedPeer graylog.name.com
. @@graylog.name.com:51XX;RSYSLOG_SyslogProtocol23Format
Что касается rsyslog.conf на сервере, он использует все значения по умолчанию.Я видел решение, в котором TLS настраивается через rsyslog напрямую, а затем Graylog берет журналы оттуда, но это не идеально для моего приложения.Нам нужно использовать входы.Это решение здесь: https://serverfault.com/questions/807651/forwarding-logs-from-rsyslog-to-graylog-over-tls
Я пытался выполнить действия, указанные в этих ссылках, но оно все еще не работает: https://community.graylog.org/t/rsyslog-over-tls/263/4 https://community.graylog.org/t/encrypt-traffic-from-rsyslog/5649
Я ожидаю, чтологи будут приходить с клиентского TLS, защищенного на настроенный вход.Что происходит, так это то, что журналы не поступают на вход, а журналы серого журнала не содержат ошибок, о которых можно говорить.
Любая помощь или предложения приветствуются.Спасибо.