ユーザー名/パスワードの不一致が原因で失敗した最新のログイン試行を報告するログファイルまたはサービスを探しています。CentOSで使用できるそのようなユーティリティはありますか?(組み込みが推奨されます)
2番目の質問、より一般的には、サーバーへの侵入試行のログファイルが必要です。理想的には、このログには、ログイン、httpdアクティビティ、およびその他の従来のオープンポートを含むすべての試行が含まれている必要があります。
ユーザー名/パスワードの不一致が原因で失敗した最新のログイン試行を報告するログファイルまたはサービスを探しています。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
lastb
これは古いスレッドですが、私はこのような同様のタスクを得たので、私の場合、これはログエントリです
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"