15.5. TLS 暗号化リモートロギングの設定
デフォルトでは、Rsyslog はプレーンテキスト形式でリモートロギング通信を送信します。シナリオでこの通信チャネルのセキュリティーを確保する必要がある場合は、TLS を使用して暗号化できます。
TLS を介した暗号化されたトランスポートを使用するには、サーバーとクライアントの両方を設定します。サーバーは、クライアントシステムにより送信されたログを収集し、分析します。
ossl
ネットワークストリームドライバー (OpenSSL) または gtls
ストリームドライバー (GnuTLS) のいずれかを使用できます。
ネットワークに接続されていない、厳格な認可を受けているなど、セキュリティーが強化された別のシステムがある場合は、その別のシステムを認証局 (CA) として使用します。
前提条件
-
クライアントシステムとサーバーシステムの両方に
root
にアクセスできる。 -
rsyslog
パッケージおよびrsyslog-openssl
パッケージは、サーバーおよびクライアントシステムにインストールされている。 -
gtls
ネットワークストリームドライバーを使用する場合は、rsyslog-openssl
の代わりにrsyslog-gnutls
をインストールしてください。 -
certtool
を使用して証明書を生成する場合は、gnutls-utils
をインストールします。 ログサーバーの
/etc/pki/ca-trust/source/anchors/
ディレクトリーには、次の証明書があり、update-ca-trust
コマンドを使用してシステム設定を更新します。-
ca-cert.pem
- ログサーバーとクライアントで鍵と証明書を検証できる CA 証明書。 -
server-cert.pem
- ロギングサーバーの公開鍵。 -
server-key.pem
- ロギングサーバーの秘密鍵。
-
ログクライアントでは、次の証明書が
/etc/pki/ca-trust/source/anchors/
ディレクトリーにあり、update-ca-trust
を使用してシステム設定を更新します。-
ca-cert.pem
- ログサーバーとクライアントで鍵と証明書を検証できる CA 証明書。 -
client-cert.pem
- クライアントの公開鍵。 -
client-key.pem
- クライアントの秘密鍵。
-
手順
クライアントシステムから暗号化したログを受信するようにサーバーを設定します。
-
/etc/rsyslog.d/
ディレクトリーに、新規ファイル (securelogser.conf
など) を作成します。 通信を暗号化するには、設定ファイルに、サーバーの証明書ファイルへのパス、選択した認証方法、および TLS 暗号化に対応するストリームドライバーが含まれている必要があります。
/etc/rsyslog.d/securelogser.conf
に以下の行を追加します。# Set certificate files global( DefaultNetstreamDriverCAFile="/etc/pki/ca-trust/source/anchors/ca-cert.pem" DefaultNetstreamDriverCertFile="/etc/pki/ca-trust/source/anchors/server-cert.pem" DefaultNetstreamDriverKeyFile="/etc/pki/ca-trust/source/anchors/server-key.pem" ) # TCP listener module( load="imtcp" PermittedPeer=["client1.example.com", "client2.example.com"] StreamDriver.AuthMode="x509/name" StreamDriver.Mode="1" StreamDriver.Name="ossl" ) # Start up listener at port 514 input( type="imtcp" port="514" )
注記GnuTLS ドライバーが必要な場合は、
StreamDriver.Name="gtls"
設定オプションを使用します。x509/name
よりも厳密ではない認証モードの詳細は、rsyslog-doc
にインストールされているドキュメントを参照してください。-
変更を
/etc/rsyslog.d/securelogser.conf
ファイルに保存します。 /etc/rsyslog.conf
ファイルの構文と/etc/rsyslog.d/
ディレクトリー内のすべてのファイルを確認します。# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)... rsyslogd: End of config validation run. Bye.
Rsyslog
サービスがロギングサーバーで実行中で、有効になっていることを確認します。# systemctl status rsyslog
rsyslog
サービスを再起動します。# systemctl restart rsyslog
オプション:rsyslog が有効になっていない場合は、再起動後に
rsyslog
サービスが自動的に起動するようにします。# systemctl enable rsyslog
-
暗号化したログをサーバーに送信するようにクライアントを設定するには、以下のコマンドを実行します。
-
クライアントシステムで、
/etc/rsyslog.d/
ディレクトリーに、新規ファイル (securelogcli.conf
など) を作成します。 /etc/rsyslog.d/securelogcli.conf
に以下の行を追加します。# Set certificate files global( DefaultNetstreamDriverCAFile="/etc/pki/ca-trust/source/anchors/ca-cert.pem" DefaultNetstreamDriverCertFile="/etc/pki/ca-trust/source/anchors/client-cert.pem" DefaultNetstreamDriverKeyFile="/etc/pki/ca-trust/source/anchors/client-key.pem" ) # Set up the action for all messages *.* action( type="omfwd" StreamDriver="ossl" StreamDriverMode="1" StreamDriverPermittedPeers="server.example.com" StreamDriverAuthMode="x509/name" target="server.example.com" port="514" protocol="tcp" )
注記GnuTLS ドライバーが必要な場合は、
StreamDriver.Name="gtls"
設定オプションを使用します。-
変更を
/etc/rsyslog.d/securelogser.conf
ファイルに保存します。 /etc/rsyslog.conf
ファイルの構文と/etc/rsyslog.d/
ディレクトリー内のその他のファイルを確認します。# rsyslogd -N 1 rsyslogd: version 8.1911.0-2.el8, config validation run (level 1)... rsyslogd: End of config validation run. Bye.
Rsyslog
サービスがロギングサーバーで実行中で、有効になっていることを確認します。# systemctl status rsyslog
rsyslog
サービスを再起動します。# systemctl restart rsyslog
オプション:rsyslog が有効になっていない場合は、再起動後に
rsyslog
サービスが自動的に起動するようにします。# systemctl enable rsyslog
-
クライアントシステムで、
検証
クライアントシステムがサーバーにメッセージを送信することを確認するには、以下の手順に従います。
クライアントシステムで、テストメッセージを送信します。
# logger test
サーバーシステムで、
/var/log/messages
ログを表示します。以下に例を示します。# cat /var/log/remote/msg/hostname/root.log Feb 25 03:53:17 hostname root[6064]: test
hostname
はクライアントシステムのホスト名に置き換えます。ログには、logger コマンドを入力したユーザーのユーザー名 (この場合はroot
) が含まれていることに注意してください。
関連情報
-
man ページの
certtool(1)
、openssl(1)
、update-ca-trust(8)
、rsyslogd(8)
、およびrsyslog.conf(5)
。 -
/usr/share/doc/rsyslog/html/index.html
にrsyslog-doc
パッケージでインストールされたドキュメント。 - Using the Logging System Role