如何通过 TLS 通信 graylog 和 rsyslog

问题描述

这里是新手。我一直在寻找有关如何通过 TLS 与 rsyslog 客户端和 Graylog 进行通信的信息,但无论我做什么或阅读什么,我都做不到。 这是非常令人沮丧的 :sleepy: ... 我的问题是我无法从远程应用程序获取日志以使用 TLS 登录到 Graylog 输入。在我尝试使用自签名证书启用 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

之后,我通过以下步骤对每个服务器(graylog 和客户端)执行相同的操作:

openssl genrsa -out myIpAddress.key 2048
openssl req -new -key myIpAddress.key -out myIpAddress.csr

我把 IP 作为通用名称放在最后一行的地方。

然后,我执行以下操作:

`openssl x509 -req -in myIpAddress.csr -CA rootCA.crt -CAkey rootCA.key -CAcreateserial -out myIpAddress.crt -days 500 -sha256`

所以,完成后我得到了这些文件

rsyslog-server.crt  rsyslog-server.csr  rsyslog-server.key  
graylog-server.crt  graylog-server.csr  graylog-server.key  
rootCA.crt  rootCA.key  rootCA.srl

我以如下方式配置了 rsyslog.conf:

$DefaultNetstreamDriver gtls

$DefaultNetstreamDriverCAFile /etc/ssl/rsyslog/rootCA.crt
$DefaultNetstreamDriverCertFile /etc/ssl/rsyslog/rsyslog-server.crt
$DefaultNetstreamDriverKeyFile /etc/ssl/rsyslog/rsyslog-server.key
$ActionSendStreamDriverAuthMode anon
$ActionSendStreamDriverMode 1
# run driver in TLS-only mode
#$ActionSendStreamDriverPermittedPeer graylog.name.com

*.* @@graylogIPaddress:5140;RSYSLOG_SyslogProtocol23Format

在 Graylog 中我配置了 server.conf 文件

# The X.509 certificate chain file in PEM format to use for securing the HTTP interface.
http_tls_cert_file = /etc/ssl/graylog/graylog-server.csr # I tried with rootCA.crt file too

# The PKCS#8 private key file in PEM format to use for securing the HTTP interface.
http_tls_key_file = /etc/ssl/graylog/graylog-server.key

# The password to unlock the private key used for securing the HTTP interface.
http_tls_key_password = pass of certificate

并启用所有 tls 选项。

我已经创建了一个 cacert.jks 文件,如文档所述。

在 /etc/default/graylog-server 中,我在 GRAYLOG_SERVER_JAVA_OPTS 行中添加 -Djavax.net.ssl.trustStore=/etc/ssl/graylog/cacerts.jks。

我的 cert 文件夹中有以下文件: cacerts.jks graylog-server.crt graylog-server.csr graylog-server.key rooCA.crt

还有我的输入:

* allow_override_date: true
* bind_address: 0.0.0.0
* expand_structured_data: false
* force_rdns: false
* max_message_size: 2097152
* number_worker_threads: 2
* port: 5140
* tcp_keepalive: false
* tls_cert_file: /etc/ssl/graylog/rootCA.crt
* tls_client_auth: optional
* tls_client_auth_cert_file: /etc/ssl/graylog/
* tls_enable: true
* tls_key_file: /etc/ssl/graylog/graylog-server.key
* tls_key_password: ********
* use_null_delimiter: false

谁能告诉我我应该如何处理这些文件

我已经阅读了这些文章,但不幸的是:

https://docs.graylog.org/en/3.0/pages/secure/sec_graylog_beats.html

我还查看了这些链接,以便在客户端的 rsyslog 上启用 TLS。我没有将服务器配置应用到 rsyslog 配置文件,因为我没想到需要它(如果我错了,请更正):

`https://www.rsyslog.com/doc/v8-stable/tutorials/tls.html`

感谢任何帮助或建议。谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)