新手来了 我一直在寻找有关如何通过 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 我添加 -Djavax.net.ssl.trustStore=/etc/ssl/graylog/cacerts.jks 在 GRAYLOG_SERVER_JAVA_OPTS 行。
我的证书文件夹有这个文件: 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`
任何帮助或建议表示赞赏。谢谢。