Azure LB(インバウンドNAT規則)を使ってRDPのポート番号を変える
Azure上の仮想マシン(Azure VM)にインターネット経由でRDPやSSHで接続する場合、デフォルト状態では3389番ポート(RDP)や22番ポート(SSH)を利用します。
Azureで利用しているパブリックIPアドレスは公開されており、3389番ポートや22番ポートには常に悪意を持ってアクセスを試行してくる方がいます。
セキュリティ対策の1つとしてポート番号を変える事があります。
Azure ロードバランサー(Azure LB)のインバウンドNAT規則を使うと接続時のポート番号を変更する事が出来ます。
仮想マシン(Azure VM)側の設定変更する事なく出来ます。
Windowsの仮想マシン(Azure VM)を例にAzure ロードバランサー(Azure LB)のインバウンドNAT規則を使った接続ポート番号変更手順を纏めてみました。
-
- Azure ロードバランサー(Azure LB)をデプロイ
- インバウンドNAT規則を設定
- インバウンドNAT規則のフロントエンドポート番号を変更
- バックエンドプールを使ったインバウンドNAT規則作成
※Standard SKUのAzure ロードバランサー(Azure LB)を利用します。
※不正なアクセス対応は接続元のIPを絞る事が大前提になります(こちらを参照ください)。
Azure ロードバランサーのデプロイからインバウンドNAT規則作成
Azureロードバランサーをデプロイ
Azureロードバランサーのリソースをデプロイします。
パブリックIPも一緒に新規作成します。
【設定値】
タブ | 設定名 | 設定値 |
基本 | 名前 | lbe-test-01 |
地域 | Japan East(東日本) | |
SKU | Standard | |
種類 | パブリック | |
レベル | 地域 | |
フロントエンドIP | 構成名 | fip-comp-test-01 |
ゲートウェイロードバランサー | なし | |
パブリックIPアドレス名 | pip-lbe-test-01 | |
パブリックIPアドレス可用性ゾーン | ゾーンなし |
【デプロイ手順】
RDPのインバウンドNAT規則を追加
Azure ロードバランサーにリモートデスクトップ接続をトラフィック転送するインバウンドNAT規則を追加します。
リモートデスクトップ接続標準の3389番ポート番号のまま転送します。
トラフィック転送先の仮想マシン(Azure VM)が1台の場合は種類に仮想マシンを指定します。
【構成イメージ】
【設定値】
設定メニュー | 設定名 | 設定値 |
インバウンドNAT規則 | 名前 | rule-test-01 |
種類 | Azure 仮想マシン | |
ターゲット仮想マシン名 | test-vm-01 | |
フロントエンドIPアドレス | fip-comp-test-01 | |
フロントエンドポート | 3389 | |
バックエンドポート | 3389 | |
プロトコル | TCP | |
フローティングIP | 無効 |
【設定手順】
フロントエンドIPアドレスへRDP接続
インバウンドNAT規則を使って仮想マシン(Azure VM)へアクセス出来るか確認します。
フロントエンドIPアドレスにリモートデスクトップ接続します。
リモートデスクトップ接続 | |
仮想マシン(Azure VM)に接続できる事が確認出来ました。 |
仮想マシンのパブリックIPアドレス
仮想マシン(Azure VM)のパブリックIPアドレスを確認します。
フロントエンドIPアドレスが表示されています。
仮想マシンのパブリックIPアドレス | |
インバウンドNAT規則で設定したロードバランサーのパブリックIPアドレスが表示されています。 |
—広告—
インバウンドNAT規則を使ってアクセス時のポート番号を変更
公式サイトを参考に設定を進めます。
フロントエンドポート番号を変更
インバウンドNAT規則のフロントエンドポートを変える事で受信ポート変更する事が出来ます。
3389から13389へ変更します。
バックエンドポートは3389のままです。
仮想マシン(Azure VM)へリモートデスクトップ接続するポートは3389番のまま変わりません。
フロントエンドポートを変更 | |
インバウンドNAT規則を選択すると設定画面が表示されます。 フロントエンドポートを13389として保存します。 |
|
インバウンドNAT規則を確認するとフロントエンドポートが13389となっている事が確認出来ます。 |
変更後のフロントエンドポートでRDP接続
ポート番号13389を指定してリモートデスクトップ接続します。
【構成イメージ】
リモートデスクトップ接続 | |
”フロントエンドIPアドレス:ポート番号”を指定してリモートデスクトップ接続します。 |
|
※3389番ポートを使用したフロントエンドIPアドレス経由のリモートデスクトップ接続は失敗します。
※ロードバランサー(Azure LB)を経由せずに仮想マシン(Azure VM)へ直接リモートデスクトップ接続する場合は3389番ポートになります。
NSGで許可するポート番号は?
NSG(ネットワークセキュリティグループ)で許可するポート番号はバックエンドポート番号になります。
受信のセキュリティ規則で許可するポート番号は3389になります。
フロントエンドポート番号を許可する必要はありません。
受信のセキュリティ規則 | |
受信ポートの規則は3389のままで接続可能です。 |
—広告—
バックエンドプールを使って複数の仮想マシンへ
公式サイトを参考に設定を進めます。
バックエンドプールを作成
バックエンドプールを利用すると複数の仮想マシン(Azure VM)を対象としたインバウンドNAT規則を作成出来ます。
リモートデスクトップ接続する仮想マシン(test-vm-01、02)のバックエンドプールを作成します。
【設定値】
設定メニュー | 設定名 | 設定値 |
バックエンドプール | 名前 | bpool-test-01 |
ターゲット仮想マシン名 | test-vm-01 test-vm-02 |
【設定手順】
バックエンドプールを作成 | |
左側のメニューでバックエンドプールを選択します。 追加を選択します。 |
|
バックエンドプールの追加でIP構成にある追加を選択します。 バックエンドプールの対象となる仮想マシンを選択追加します。 バックエンドプール名を入力して保存します。 |
|
作成したバックエンドプールが表示されています。 |
インバウンドNAT規則を作成
バックエンドプールを指定したインバウンドNAT規則を作成します。
フロントエンドポートは範囲での指定となります。
バックエンドプール内のマシン最大数がインバウンドNAT規則の最大仮想マシン(Azure VM)数となります。
【構成イメージ】
【設定値】
設定メニュー | 設定名 | 設定値 |
インバウンドNAT規則 | 名前 | rule-test-02 |
種類 | バックエンドプール | |
ターゲットバックエンドプール | bpool-test-01 | |
フロントエンドIPアドレス | fip-comp-test-01 | |
フロントエンドポート範囲の始点 | 13389 | |
バックエンドプール内のマシン最大数 | 16 | |
バックエンドポート | 3389 | |
プロトコル | TCP | |
フローティングIP | 無効 |
※仮想マシン(Azure VM)は2台ですが拡張性を考えて最大マシン数は16としています。
【設定手順】
※単一の仮想マシンを対象としたインバウンドNAT規則(rule-test-01)は事前に削除しています。
フロントエンドポートを確認
各仮想マシン(Azure VM)へのアクセスする際に利用するフロントエンドポートはインバウンドNAT規則内のポートマッピングで確認出来ます。
ポートマッピングを確認 | |
作成したインバウンドNAT規則を選択します。 一番下にポートマッピングが表示されています。 払い出しされているフロントエンドポートが確認出来ます。 |
ポートマッピングされたフロントエンドポートでRDP接続
各仮想マシン(Azure VM)に払い出しされたフロントエンドポートを利用してリモートデスクトップ接続します。
リモートデスクトップ接続 | |
”フロントエンドIPアドレス:ポート番号”を指定してリモートデスクトップ接続します。 13389番ポートを利用した場合はtest-vm-01、13390番ポートを利用した場合はtest-vm-02にリモートデスクトップ接続している事が確認出来ます。 |
|
負荷分散規則とインバウンドNAT規則の違い
バックエンドプールを利用したトラフィック転送については負荷分散規則とインバウンドNAT規則があります。
バックエンドプール内の特定の仮想マシン(Azure VM)にトラフィック転送した場合にはインバウンドNAT規則を利用します。
-
- 負荷分散規則
- 均等にバックエンドプールの仮想マシン(Azure VM)トラフィック転送する
- インバウンドNAT規則
- 特定のポートのアクセスをバックエンドプールの仮想マシン(Azure VM)へトラフィック転送します。
- 負荷分散規則
—広告—
最後に
Azure ロードバランサーのインバウンドNAT規則を使うと、簡単に仮想マシン(Azure VM)接続時のポート番号の変更が出来る事が分かりました。
仮想マシン(Azure VM)側での設定変更は必要がなく簡単に設定出来て便利かと思いました。
リモートデスクトップ接続の手順を纏めていますが、SSHなどでも同様の設定が出来ます。
1つパブリックIPで複数台の仮想マシン(Azure VM)へのアクセス手段を提供する事も出来ます。(Azure Bastion等もあります。)
セキュリティ面としてはNSG(ネットワークセキュリティグループ)でアクセス元IPを制限する事は基本となりますが併せて使っても良いかもと思いました。
仮想マシンのネットワークセキュリティグループ設定についてはこちらでもやっています。
併せて見て頂けると大変有難いです。
複数台の仮想マシン(Azure VM)へのセキュアなアクセス手段を提供する方法としてはAzure Bastionもあります。