【Azure/Virtual Machines】インターネット接続を拒否する方法

こんにちは、Aireです。

今回はAzure VMのインターネット接続を拒否する方法を紹介します。

Azureでは、ユーザ側でパブリックIPアドレスやNAT Gatewayを用意しなくても、Azureの既定の設定により、Azure VMからインターネットへのアウトバウンド接続が可能です。セキュリティ上の理由でインターネット接続設定を変更する場合は、本記事を参考にしてみてください。

目次

Azureの既定の設定とAzure VMのインターネット接続

VNetにAzure VMをデプロイした場合、Azure VMにパブリックIPアドレスが割り当てられていない、またはNAT Gatewayと関連付けられたサブネットにAzure VMがデプロイされていない場合でも、Azure VMのインターネット接続(アウトバウンド)は許可された状態になります。

これは、明示的な送信接続が定義されていないVNet内のAzure VMには、リージョン内の既定の送信パブリックIPアドレスが割り当てられ、そのパブリックIPアドレスを使用してSNAT(送信元ネットワークアドレス変換)が行われることで、Azure VMのプライベートIPアドレスがパブリックIPアドレスに変換され、Azure VMからインターネットへの送信接続が可能になるためです。

以下、明示的な送信接続の例を示します。

  • Azure VMにパブリックIPアドレスが割り当てられている。
  • Azure VMがデプロイされたサブネットにNAT Gatewayが関連付けられている。
  • Azure VMがロードバランサーのバックエンドプール内にデプロイされている。

詳細および公式情報については以下のドキュメントを参照してください。

インターネット接続を拒否する方法

Azure VMのインターネット接続(アウトバウンド)を拒否する方法は以下の2通りです。以降、それぞれの手順について紹介します。

  • Network Security Group(NSG)でインターネット接続を拒否する
  • ルートテーブルでインターネット接続を拒否する

Network Security Group(NSG)でインターネット接続を拒否する

NSGでインターネット接続を拒否する場合、以下の手順でNSGの設定を変更します。

  1. Azure Portalのサービス検索欄で「NSG」を検索後、NSG画面に移動し、対象のNSGを選択します。
  2. 左側のウィンドウ画面から[設定]-[送信セキュリティ規則]を選択し、[追加]をクリックします。
  3. 各入力欄を以下の表のように設定し、インターネットへの送信接続を拒否するセキュリティ規則を追加します。
設定項目設定値
ソースAny
ソースポート範囲*
宛先Service Tag
宛先サービスタグInternet
サービスCustom
宛先ポート範囲*
プロトコルAny
アクション拒否
優先度任意の値(100〜4096)
名前任意の名前
送信セキュリティ規則:インターネット送信接続を拒否

ルートテーブルでインターネット接続を拒否する

ルートテーブルでインターネット接続を拒否する場合、以下の手順でルートテーブルの設定を変更します。

  1. Azure Portalのサービス検索欄で「ルートテーブル」を検索後、ルートテーブル画面に移動し、新規にルートテーブルを作成します。(本ステップではリソースグループやリージョンを選択するだけなので設定項目の説明は割愛)(*1)
  2. 作成したルートテーブル画面に移動後、左側のウィンドウ画面から[設定]-[ルート]を選択し、[追加]をクリックします。
  3. 各入力欄を以下の表のように設定し、インターネットへルーティングされないようにするルートを追加します。
設定項目設定値
ルート名任意の名前
アドレスプレフィックス送信先IPアドレス
宛先IPアドレス/CIDR範囲0.0.0.0/0
ネクストホップの種類なし
ネクストホップアドレスー(設定不可)
  1. 左側のウィンドウ画面から[設定]-[サブネット]を選択し、[関連付け]をクリックします。
  2. インターネット接続を禁止するサブネットを選択します。

(*1)サブネット作成時に自動的に関連付けられる既定のルートテーブル(システムルート)は、直接設定変更することができないため、新規に作成したカスタムルートをサブネットに関連付けることで、システムルートの設定をオーバーライドする必要があります。

ルートテーブルでインターネット接続を拒否した場合、そのルートテーブルが関連付けられたサブネット内のAzure VMにパブリックIPアドレスが割り当てられていても、インターネットからそのVMにアクセスすることはできなくなるため注意が必要です。

【参考】Azure VMのインターネット接続を確認する方法

ここまででインターネット接続を拒否する設定が完了しました。ここでは、実際にインターネットに接続されていないかどうか確認する方法についてお話しします。

Azure VMにパブリックIPアドレスが割り当てられていない場合、Azure既定のSNATによってインターネットへの送信接続が行われるのですが、ICMPによる通信は許可されません。つまり、お馴染みのpingによる接続テストはできないということです。

pingの代替ツールはいくつかありますが、ここでは「hping3」を使用した方法を紹介しておきます。hping3は任意のTCP/IPパケットを送信し、ターゲットからの応答をpingのように表示できるネットワークツール(コマンド)です。

hping3を使用すると、以下のようにTCP/UCPのポート番号を指定したpingが可能になります。

hping3のインストール方法や使い方は以下の記事を参考にしてください。

この記事を書いた人

目次