ここの初心者。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
その後、次の手順ですべてのサーバー (グレーログとクライアント) に対して同じことを行います。
openssl genrsa -out myIpAddress.key 2048
openssl req -new -key myIpAddress.key -out myIpAddress.csr
最後の行にIPをCommon Nameとして配置しました。
次に、次のことを行います。
`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 を追加します。
私の証明書フォルダーには次のファイルがあります: 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`
ヘルプや提案をいただければ幸いです。ありがとう。