Linux で失敗したすべての SSH ログイン試行を検索する方法
SSH サーバーへのログイン試行はそれぞれ grep コマンドによって追跡され、ログ ファイルに記録されます。
Linux で失敗した SSH ログインのリストを表示するには、このガイドで説明されているいくつかのコマンドを実行します。これらのコマンドは必ず root 権限で実行してください。
失敗したすべての SSH ログインを一覧表示する最も簡単なコマンドは、以下に示すコマンドです。
# grep "Failed password" /var/log/auth.log

cat コマンドを発行しても同じ結果が得られます。
# cat /var/log/auth.log | grep "Failed password"
失敗した SSH ログインに関する追加情報を表示するには、次の例に示すコマンドを発行します。
# egrep "Failed|Failure" /var/log/auth.log

CentOS または RHEL では、失敗した SSH セッションは /var/log/secure ファイルに記録されます。このログ ファイルに対して上記のコマンドを発行して、失敗した SSH ログインを特定します。
# egrep "Failed|Failure" /var/log/secure

CentOS または RHEL で失敗した SSH ログインを表示するために上記のコマンドを少し変更したバージョンは次のとおりです。
# grep "Failed" /var/log/secure # grep "authentication failure" /var/log/secure

SSH サーバーへのログインを試行して失敗したすべての IP アドレスのリストと、各 IP アドレスの失敗した試行回数を表示するには、以下のコマンドを実行します。
# grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr

新しい Linux ディストリビューションでは、journalctl コマンドを使用して、Systemd デーモンによって維持されているランタイム ログ ファイルをクエリできます。失敗した SSH ログイン試行をすべて表示するには、以下のコマンド例に示すように、grep フィルターを介して結果をパイプする必要があります。
# journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure" # journalctl _SYSTEMD_UNIT=sshd.service | egrep "Failed|Failure" #In RHEL, CentOS

CentOS または RHEL では、以下のコマンド例に示すように、SSH デーモン ユニットを sshd.service に置き換えます。
# journalctl _SYSTEMD_UNIT=sshd.service | grep "failure" # journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed"
不審なユーザー アカウントまたは無効なユーザー アカウントでシステムにログインするために SSH サーバーに頻繁にアクセスする IP アドレスを特定したら、これらの攻撃を管理するためにシステムのファイアウォール ルールをfail2ban に更新する必要があります。