Azure LB(インバウンドNAT規則)を使ってRDPのポート番号を変える

2021-07-03Azure,Load Balancer,Virtual Machine

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アドレス可用性ゾーン ゾーンなし

【デプロイ手順】

デプロイ手順

ロードバランサーのメニューで作成を選択します。

基本タブです。
ロードバランサー名、地域、種類、SKU、レベルを設定します。

フロントエンドIP構成を追加します。
パブリックIPアドレスの新規作成を選択します。
パブリックIP名前、可用性ゾーンを設定します。
フロントエンド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 無効

【設定手順】

インバウンドNAT規則を追加

左側のメニューでインバウンドNAT規則を選択します。
追加を選択します。

インバウンドNAT規則の追加画面です。
種類はAzure 仮想マシンを選択します。
ターゲット仮想マシン、ネットワークIP構成を選択します。
接続時に使用するフロントエンドのIPアドレスを選択します。
フロントエンドポートには受信するポート、バックエンドポートには仮想マシン(Azure VM)にトラフィック転送する先のポートを指定します。

設定が終わったら追加選択します。

作成したインバウンドNAT規則が表示されています。

フロントエンドIPアドレスへRDP接続

インバウンドNAT規則を使って仮想マシン(Azure VM)へアクセス出来るか確認します。
フロントエンドIPアドレスにリモートデスクトップ接続します。

リモートデスクトップ接続
仮想マシン(Azure VM)に接続できる事が確認出来ました。

仮想マシンのパブリックIPアドレス

仮想マシン(Azure VM)のパブリックIPアドレスを確認します。
フロントエンドIPアドレスが表示されています。

仮想マシンのパブリックIPアドレス

インバウンドNAT規則で設定したロードバランサーのパブリックIPアドレスが表示されています。

—広告—

インバウンドNAT規則を使ってアクセス時のポート番号を変更

公式サイトを参考に設定を進めます。

単一 VM のインバウンド 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のままで接続可能です。

—広告—

バックエンドプールを使って複数の仮想マシンへ

公式サイトを参考に設定を進めます。

複数の VM のインバウンド NAT 規則を作成する

バックエンドプールを作成

バックエンドプールを利用すると複数の仮想マシン(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規則を選択します。
追加を選択します。
インバウンドNAT規則を追加します。
種類にはバックエンドプールを指定します。
ターゲットバックエンドプールには先ほど作成したバックエンドプールを指定します。
フロントエンドポート範囲の始点、バックエンドプール内のマシン最大数などを設定します。
追加を選択します。
作成したインバウンドNAT規則が表示されています。
フロントエンドポート範囲は13389から13404となっています。
バックエンドプール内のマシン最大数分確保されています。

※単一の仮想マシンを対象としたインバウンド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もあります。

スポンサーリンク