OpenSSH debug2ハンドシェイクログがすべてのログインではなく特定のログインにのみ記録されるのはなぜですか?

OpenSSH debug2ハンドシェイクログがすべてのログインではなく特定のログインにのみ記録されるのはなぜですか?

openssh-server 7.6p1-4ubuntu0.5パッケージを使用したUbuntu 18.04.1 LTSの実行

/etc/ssh/sshd_config設定されましたLogLevel DEBUG2

部分ハンドシェイクを提供するクライアントMACのdebug2ログメッセージを受信しました。

May 3 18:51:05 10.10.10.10 sshd[14300]: debug2: MACs ctos: hmac-sha1,hmac-sha1-96,hmac-md5 [preauth]

その後、同じ秒以内に同じsshd PIDを使用してIP 1.2.3.4でログインしているユーザー「abc」のログインログエントリがあるため、このログインメッセージは最初のdebug2ログエントリに属しているようです。

May 3 18:51:05 10.10.10.10 sshd[14300]: Accepted password for abc from 1.2.3.4 port 51294 ssh2

しかし、対応する(同じPID、ほぼ同じ秒数)debug2ハンドシェイクログエントリが表示されます。すべて Accepted passwordログエントリは、ログインの小さなサブセットでのみ使用できます。

たとえば、1日に2,525回ログインしているユーザーを観察しましたが、そのログインのdebug2: MACs ctos:155回(同じPID、ほぼ同じ時間)の対応するログエントリのみを表示できました。

これはすべてのユーザーログインに対して発生するため、ユーザーごとに変わりません。

これはバグか機能ですか?ログインするたびにハンドシェイク全体が完了(または記録)されないように、いくつかのハンドシェイク情報キャッシュがありますか?私はこれをどうすることができますか?すべてログインdebug2ハンドシェイクログエントリが作成されましたか?

ベストアンサー1

これは systemd-journald メッセージ RateLimit 効果です。

sshd はログに表示されないほど多くのメッセージを記録します。

systemctl status systemd-journald

May 11 19:02:50 myserver systemd-journald[303]: Suppressed 19842 messages from sshd.service
May 11 19:03:03 myserver systemd-journald[303]: Suppressed 85 messages from ssh.service
May 11 19:03:20 myserver systemd-journald[303]: Suppressed 25865 messages from sshd.service
May 11 19:03:50 myserver systemd-journald[303]: Suppressed 15138 messages from sshd.service
May 11 19:04:03 myserver systemd-journald[303]: Suppressed 148 messages from sshd.service
May 11 19:04:20 myserver systemd-journald[303]: Suppressed 31797 messages from sshd.service

解決策:

/etc/systemd/journald.confライン変更中

#RateLimitBurst=1000

到着

RateLimitBurst=50000

フィルタリングされたデバッグログメッセージは常に期待どおりにsyslog-ngに表示されます。

おすすめ記事