web-dev-qa-db-ja.com

CentOSサーバーへの最新の成功したログインと失敗した試行を見つける

ユーザー名とパスワードの不一致が原因で失敗した最新のログイン試行を報告するログファイルまたはサービスを探しています。 CentOSで利用できるそのようなユーティリティはありますか? (組み込みが望ましい)

2番目の質問、より一般的には、サーバーへの侵入の試みのログファイルが必要です。理想的には、このログには、ログイン、httpdアクティビティ、その他の従来のオープンポートを含むすべての試行が含まれている必要があります。

31
lashgar

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

63
ewwhite

質問はここではトピック外ですが、非常に短い答えです:たぶん、/ var/log/secureを確認する必要があります(たとえば、「失敗」のgrepなど)。

14
flolo

これは古いスレッドですが、私はこのような同様のタスクを得たので、私の場合、これはログエントリです

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"
1