1. はじめに
GCPに限らずパブリッククラウドやVPSなどを利用してVMマシンを利用する場合、手元のPCから作成したVMマシン(Unix/Linux)への接続には大抵SSHを利用しています。
このSSHの通信は認証された上で通信内容は暗号化されていますが、認証情報がクラッカーの手に渡るとVMマシンを乗っ取る事も可能な為、クラッカーの攻撃対象にもなりやすいです。
そこで、最低限且つ簡単にできるセキュリティ対策として、SSHで利用するポート番号の変更を実施します。
GCP上で稼働するVMインスタンス(Linux/Unix)のSSHポート番号を変更するには、以下の3ステップを踏む必要があります。SSHの設定としては以下の「2」だけであり、「1」と「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接続が実施されます。