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