no image

GCPでVMインスタンスのSSHポート番号を変更する

1. はじめに

はしへいです。GCPに限らずパブリッククラウドやVPSなどを利用してVMマシンを利用する場合、手元のPCから作成したVMマシン(Unix/Linux)への接続には大抵SSHを利用しています。

このSSHの通信は認証された上で通信内容は暗号化されていますが、認証情報がクラッカーの手に渡るとVMマシンを乗っ取る事も可能な為、クラッカーの攻撃対象にもなりやすいです。

そこで、最低限且つ簡単にできるセキュリティ対策として、SSHで利用するポート番号の変更を実施します。

GCP上で稼働するVMインスタンス(Linux/Unix)のSSHポート番号を変更するには、以下の3ステップを踏む必要があります。SSHの設定としては以下の「2」だけであり、「1」と「3」は利用環境によっては必ずしも必要なものではありません。

  1. カスタムポートで外部からVMインスタンスへ接続できるようにする。
  2. VMインスタンス側でSSHポート番号を変更する
  3. 「ブラウザウィンドウでカスタムポートを開く」から接続する。

2. カスタムポートで外部からVMインスタンスへ接続できるようにする。

先ずは外部ネットワークから接続したいカスタムポート番号を決め、VMインスタンスへの通信を許可するファイアウォールルールを設定をします。

GCPログイン後の左上のハンバーガーメニューボタン「≡」から、「VPCネットワーク」、「ファイアウォールルール」を開きます。

「ファイアウォールルールを作成」ボタンを押します。

カスタムポートでのSSHログインを許可する為のルールを作成します。
ルールの名前やログの設定は自由です。優先度、トラフィックの方向、一致したときのアクション、指定したプロトコルとポートを今回は以下のように設定します。

項目 説明
優先度 0が最優先で、65535が最も優先度が低くなる。
今回はSSHを許可するルールのため、拒否ルールの前に持ってくる必要があります。手動でファイアウォールルールを作成していない場合はデフォルト値の1000で問題ありません。
トラフィックの方向 今回は上り(手元のPCからVMインスタンス)を選択します。
一致したときのアクション 今回はカスタムポートでのSSHログインを許可したいため、「許可」を選択します。
プトロコルとポート 「指定したプロトコルとポート」を選択し、
TCP10022番をSSHに利用したい場合には、「tcp」にチェックを入れ、
横のテキストボックスに「10022」を入力します。

設定が完了すれば、「作成」を押すとファイアウォールルールが作成されます。

3. VMインスタンス側でSSHポート番号を変更する。

VMインスタンスへログインし、SSH設定ファイルの変更を実施します。

 $ sudo vi /etc/ssh/sshd_config

以下の行を追加します。(デフォルトの22番から10022番に接続ポートを変更する場合)

 Port 10022

SSHサービスを再起動し、設定ファイルを読み込みます。

 $ sudo systemctl restart sshd.service

4. 「ブラウザウィンドウでカスタムポートを開く」から接続する。

GCPログイン後の左上のハンバーガーメニューボタン「≡」から、「Compute Engine」、「VMインスタンス」を開きます。
「接続」メニューから、「ブラウザウィンドウでカスタムポートを開く」を選択します。

ファイアウォールルールを作成した際に設定したポート番号(今回の場合は10022)を入力し、「開く」を押すと、カスタムポートを利用し、SSH接続が実施されます。

これで当初の目的であった、SSHの接続ポートをカスタムポートへ変更することができました。