ユーザー名とパスワードの不一致が原因で失敗した最新のログイン試行を報告するログファイルまたはサービスを探しています。 CentOSで利用できるそのようなユーティリティはありますか? (組み込みが望ましい)
2番目の質問、より一般的には、サーバーへの侵入の試みのログファイルが必要です。理想的には、このログには、ログイン、httpdアクティビティ、その他の従来のオープンポートを含むすべての試行が含まれている必要があります。
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
質問はここではトピック外ですが、非常に短い答えです:たぶん、/ var/log/secureを確認する必要があります(たとえば、「失敗」のgrepなど)。
これは古いスレッドですが、私はこのような同様のタスクを得たので、私の場合、これはログエントリです
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"
したがって、スクリプトは次のように実行する必要があります
[root@megatron bash1]# ./failedlogin.sh git
またはより簡単なアプローチ
#!/bin/bash
LOG=/var/log/secure
MESSAGE="Failed password for"
grep -i "$MESSAGE" "$LOG"