ログインプロンプトには 4 回のログイン失敗が報告されますが、ログには 1 つのエントリしか表示されません

ログインプロンプトには 4 回のログイン失敗が報告されますが、ログには 1 つのエントリしか表示されません

小さなホームサーバーにログインしたところ、次のメッセージが表示されました。

Last failed login: Sun Jan 14 17:08:42 CET 2024 from 192.168.1.111 on ssh:notty
There were 4 failed login attempts since the last successful login.

私はルートユーザーに切り替えて実行しました

root@homeserver ~]# egrep "Failed|Failure" /var/log/secure
Jan 14 17:08:42 homeserver sshd[4906]: Failed password for invalid user podman from 192.168.1.111 port 59183 ssh2

最初のプロンプトでは 4 回のログイン失敗が報告されているのに、egrep コマンドではsecureログから 1 つのエントリしか返されないのはなぜですか? 別の何かを grep する必要がありますか?

答え1

ログイン成功後のログの行と を検査したという事実から/var/log/secure、マシン上で Redhat/CentOS を実行していると推測します。実際、質問で言及した最初のプロンプトは、おそらく の出力でありpam_lastlog、そのマニュアル ページには次のように書かれています。

PAM_LASTLOG(8)

... (omitted for brevity)

OPTIONS

       ... (omitted for brevity)

       showfailed
           Display number of failed login attempts and the date of the last failed attempt from btmp. The date is not displayed when nodate is specified.

       ... (omitted for brevity)

マニュアルページには、この数字はbtmp、つまり/var/log/btmp失敗したログインを記録する別のログファイルから取得されることが明記されていることに注意してください。残念ながら、これはバイナリファイルなので、コマンドcatgrepコマンドを使用して調べることはできません。回避策として、last -f /var/log/btmpコマンドを使用してファイルに記録されている内容を確認できます。この答え

ちなみに、のmanページを確認すると役立つかもしれませんpam_lastlogこの質問さらに読むには。

関連情報