「白も黒もありません。灰色の色合いしかありません。それが良いか悪いかはわかりません。」
また、灰色の色合いを掘り下げて、問題が発生する前に探す必要がある場合もあります。これらのチェックの1つは、失敗したSSHログイン試行の検索である可能性があります。幸い、Ubuntuには、誰かが弱いパスワードやブルートフォース攻撃を起こさせたほとんどのケースを検出するのに十分シンプルで強力なソリューションが1つ付属しています。
SSHサーバーにログインしようとするたびに、rsyslogデーモンによって/var/log/auth.logにあるauth.logという名前のファイルに記録されます。
管理者はログを調べて、奇妙な着信トラフィックがあるかどうかを確認できます。ログファイルにはプレーンテキストで多くの情報が含まれていますが、すべての出力を読み取るのは簡単ではありません。 grepを使用してログファイルを検索する方法を学ぶ必要があります。この例では、失敗した試行に焦点を当てます。
OpenSSHのインストール
OpenSSHは、アプリケーション層プロトコルの形式でシステムへの安全なリモートアクセスを提供するサービスであり、scpコマンドラインプログラムも含まれています。 rootユーザーとしてログインするか、sudo権限を持つユーザーに切り替えてから、以下のコマンドを使用してOpenSSHをインストールします。
sudo apt-get update
sudo apt-get install openssh-server -y
このコマンドは、OpenSSHとその依存関係をインストールする必要があります。 OpenSSHが正しく動作するにはかなりの数が必要なため、追加のパッケージもインストールされていることがわかります。
インストール後、ターミナルウィンドウで次のコマンドを入力してsshを有効にできます。
sudo systemctl enable ssh
コマンドが成功した場合、ターミナルウィンドウに以下の画像のような出力が表示されます。
次のコマンドを使用して、UbuntuマシンでSSHを無効にしたい場合に、SSHを停止できます。
sudo systemctl stop ssh
次のコマンドを実行すると、再開できます:
sudo systemctl start ssh
SSHサーバーが実行されているかどうかを確認するには、次のコマンドを使用できます。
sudo systemctl status ssh
端末に同様の出力が表示されるはずです:
上のスクリーンショットでは、SSHサーバーがすでに実行されて有効になっていることがわかります。つまり、起動時に実行されます。
ログイン試行の失敗は、自動ログインの悪用だけでなく、さまざまな理由で発生する可能性があります。ログイン試行の失敗は、次の場合に発生する可能性があります。
- ユーザーが自分のパスワードを誤って入力する可能性があります。
- 間違ったパスワードを使用してログインしようとしています。
- サーバーはブルートフォース攻撃を受けており、ハッカーは自動化されたスクリプトを使用してパスワードを推測しようとしています。
失敗したSSHログイン試行をすべて一覧表示する最も簡単な方法は、次のコマンドを使用することです。
grep "Failed password" /var/log/auth.log
端末に同様の出力が表示されるはずです:
次のコマンドを使用して、上記のコマンドのわずかに変更されたバージョンで、CentOSまたはRHELで失敗したSSHログインを表示できます。
grep "Failed" /var/log/secure
grep "authentication failure" /var/log/secure
または、journalctlコマンドでSystemdデーモンを使用してログを表示することもできます。
journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure"
失敗したSSHログイン試行の原因となっているすべてのIPアドレスのリストを、その横に試行回数とともに表示するには、次のコマンドを使用できます。
grep "Failed password" /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr
ログイン試行の失敗が時々発生することは避けられません。ただし、サーバーへの失敗したログインを特定することは依然として重要です。 SSHサーバーに頻繁にアクセスするIPアドレスを特定し、必要なアクションを実行することが重要です。
このガイドでは、Linuxマシンで失敗したSSHログイン試行を見つける方法について説明しました。また、journalctlコマンドの使用を含む別のアプローチも学びました。この記事がお役に立てば幸いです。コメントセクションでフィードバックや質問をお気軽に提供してください。