0

ここの初心者。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`

ヘルプや提案をいただければ幸いです。ありがとう。

4

0 に答える 0