Включить Rsyslog с TLS на Graylog2 - PullRequest
0 голосов
/ 24 мая 2019

Моя проблема в том, что я не могу получить журналы из моего удаленного приложения для входа на вход 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, защищенного на настроенный вход.Что происходит, так это то, что журналы не поступают на вход, а журналы серого журнала не содержат ошибок, о которых можно говорить.

Любая помощь или предложения приветствуются.Спасибо.

Ответы [ 2 ]

0 голосов
/ 09 июля 2019

Основной причиной этого было то, что я не установил дополнительные пакеты, необходимые для rsyslog для отправки журналов TLS. После того, как я установил их, это работало как шарм. Благодарю.

0 голосов
/ 30 мая 2019

У меня была точно такая же проблема.Отсутствие подробных журналов ошибок подключения для сконфигурированных входов TLS Graylog раздражает, когда что-то не работает ...

Помните, что Graylog нужен настроенный ключ PKCS8, так что вы можете посмотреть на проблему совместимости ключей PKCS8.Начните с plain.key для начальной настройки и устранения неполадок ...

Преобразование существующего ключа в pkcs8

sudo openssl pkcs8 -in my.key -topk8 -nocrypt -out my.key.plain.pem
sudo openssl pkcs8 -in my.key.plain.pem -topk8 -out my.key.encrypted.pem -passout pass:secret

В My Centos Box есть rsyslog и /etc/rsyslog.d/rsyslog-tls.Conf настроен следующим образом:

# certificate files
$DefaultNetstreamDriverCAFile /etc/pki/tls/certs/my-CA.pem
$DefaultNetstreamDriverCertFile /etc/pki/tls/certs/server-01.domain.com.crt.pem
$DefaultNetstreamDriverKeyFile /etc/pki/tls/certs/server-01.domain.com.key.plain.pem
# set up the action
$DefaultNetstreamDriver gtls
$ActionSendStreamDriverMode 1
$ActionSendStreamDriverAuthMode x509/name
$ActionSendStreamDriverPermittedPeer *.domain.com
*.* @@(o)graylog.domain.com:6514

Мой вход Graylog SyslogTCP (TLS)

tls_cert_file: /etc/graylog/ssl/shadowCA/graylog.domain.com/graylog.domain.com.crt.pem
tls_client_auth: optional
tls_client_auth_cert_file: <empty>
tls_enable: true
tls_key_file: /etc/graylog/ssl/shadowCA/graylog.domain.com/graylog.domain.com.key.plain.pem

Устранение неполадок TLS с OpenSSL S_CLIENT

PS.Полезный шаг по устранению неполадок состоит в том, чтобы убедиться, что вход правильно сконфигурирован для TLS, LISTENING, ANSWERING и ACCEPTING MESSAGES

openssl s_client -connect localhost:1514 -tls1_2 -tlsextdebug

-tlsextdebug позволяет вводить тестовые сообщения в Graylog по TLS.

...