このステップでは、後のステップでパスワードクラッキングの対象となるローカル SSH サーバーを構築します。これにより、制御された環境でペネトレーションテストの技術を練習できます。SSH(Secure Shell)は、コンピュータ間で安全にリモートログインするためのプロトコルですが、ここでは学習のためにあえて脆弱な設定で構築します。
-
まず、デフォルトの作業ディレクトリにいることを確認してください。実験に関連するファイルを 1 か所にまとめて管理することが重要です。
cd ~/project
-
OpenSSH サーバーパッケージをインストールします。このソフトウェアを導入することで、マシンがリモート接続を受け入れる SSH サーバーとして機能するようになります。
sudo apt install -y openssh-server
-
デモンストレーション用に、脆弱なパスワードを持つテスト用ユーザーアカウントを作成します。現実のシナリオでは、このような弱いパスワードこそが攻撃者の格好の標的となります。
sudo useradd -m testuser
echo "testuser:password123" | sudo chpasswd
-
SSH でパスワード認証を許可するように設定します(この実験のための一時的な設定です)。デフォルトでは、セキュリティ上の理由から多くのシステムでパスワード認証が制限されていますが、ここではブルートフォース攻撃の仕組みを理解するために有効化します。
sudo sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config
-
設定を反映させるために SSH サービスを再起動します。設定ファイルを変更した後は、通常、サービスの再起動が必要になります。
sudo service ssh restart
-
SSH サーバーが動作しているか確認します。このコマンドで、SSH サーバーが正しくアクティブになり、接続を待ち受けている状態かどうかをチェックします。
sudo service ssh status
サービスが active (running) と表示されていれば成功です。そうでない場合は、これまでのステップでエラーが発生していないか確認する必要があります。
-
ローカルで SSH 接続をテストします。攻撃フェーズに進む前に、すべてが正常に動作しているか最終確認を行います。
ssh testuser@localhost -o StrictHostKeyChecking=no
パスワードを求められたら password123 と入力してください。ログインに成功したら、exit と入力して元のセッションに戻ります。-o StrictHostKeyChecking=no オプションは、サーバーのフィンガープリントの確認をスキップするためのもので、この実験環境では安全に使用できます。