解決策 1:
Linux では、last
コマンドは、成功したログイン試行を表示し、セッション情報 (pts、ソース、日付、および長さ) を表示します。
lastb
コマンドは、不正なログイン試行をすべて記録します。どちらも同じ man
を共有しています ページですが、違いは last
バイナリ /var/log/wtmp
を読み取ります ファイル、および lastb
/var/log/btmp
を読み取ります デフォルトではファイル。
これらのファイルの範囲は、ログのローテーション スケジュールによって異なりますが、数週間かかるはずです。ほとんどのディストリビューションは /var/log/wtmp
ローテーションします 毎月、通常 /var/log/wtmp.1
としてリストされている以前のレコードを読むことができます -f
でファイルを指定する パラメータ... last -f /var/log/wtmp.1
解決策 2:
質問はここでトピック外ですが、非常に短い答えです:/var/log/secure を確認するだけでよいかもしれません (例:"failed" の場合は grep)。
解決策 3:
これは古いスレッドですが、このような同様のタスクを取得したため、私の場合、これはログ エントリです
Nov 15 17:14:47 megatron sshd[4768]: Failed password for git from 192.168.122.1 port 49227 ssh2
したがって、ユーザーが静的であることが確実な場合は、このようにすることができます
#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for git"
grep -i "$MESSAGE" "$LOG
ユーザーごとにわかっている場合
#!/bin/bash
LOG=/var/log/secure
if [ -n "$1" ]
then
NEWUSER="$1"
else
NEWUSER="root"
fi
MESSAGE="Failed password for $NEWUSER"
grep -i "$MESSAGE" "$LOG"
したがって、スクリプトは次のように実行する必要があります
[[email protected] bash1]# ./failedlogin.sh git
またはより簡単なアプローチ
#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"