次の方法で共有


Azure VM のゲスト OS のファイアウォールがインバウンド トラフィックをブロックしている

この記事では、ゲスト オペレーティング システムのファイアウォールによりインバウンド トラフィックがブロックされた場合に発生するリモート デスクトップ ポータル (RDP) の問題を修正する方法を説明します。

現象

Azure 仮想マシン (VM) に接続するための RDP 接続を利用できません。 [ブート 診断 ] -> [ようこそ] 画面 (Ctrl + Alt + Del) でオペレーティング システムが完全に読み込まれたことを示すスクリーンショット。

原因

原因 1

RDP 規則が RDP トラフィックを許可する設定になっていません。

原因 2

ゲスト システムのファイアウォール プロファイルが、RDP トラフィックを含めたすべてのインバウンド接続をブロックする設定になっています。

ファイアウォール設定ウィンドウの [ドメイン プロファイル] タブにある [すべてのインバウンド接続をブロックする] オプションのスクリーンショット。

ソリューション

これらの手順を行う前に、バックアップとして、影響を受ける VM のシステム ディスクのスナップショットを取得します。 詳細については、「ディスクのスナップショット」を参照してください。

この問題を解決するには、リモート ツールを使用して Azure VM に関する問題のトラブルシューティングを行う方法に関する記事で紹介されている方法のいずれかを使用して VM にリモート接続したうえで、ゲスト オペレーティング システムのファイアウォール規則を、RDP トラフィックを許可するように編集します。

オンライン トラブルシューティング

シリアル コンソールに接続し、PowerShell インスタンスを開きます。 VM でシリアル コンソールが有効になっていない場合は、「VM をオフライン修復する」をご覧ください。

対応策 1

  1. Azure エージェントが VM にインストールされ、正しく動作している場合には、VM メニューの [ヘルプ] > [パスワードのリセット] で [構成のみのリセット] オプションを利用できます。

  2. この回復オプションで行われることは、次のとおりです。

    • RDP コンポーネントが無効になっている場合に有効にします。

    • Windows ファイアウォール プロファイルを有効にします。

    • Windows ファイアウォールで RDP 規則がオンになっていることを確認します。

    • 前の手順が機能しない場合は、ファイアウォール規則を手動でリセットします。 これを行うには、次のコマンドを実行して、"リモート デスクトップ" という名前を含むすべてのルールに対してクエリを実行します。

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(Name.*Remote Desktop)" -context 9,4 | more
      

      RDP ポートが 3389 以外のポートに設定されていた場合には、作成されてこのポートに設定されている可能性があるカスタム規則を探す必要があります。 カスタム ポートが設定されているインバウンド規則をすべて表示するクエリを実行するには、次のコマンドを実行します。

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(LocalPort.*<CUSTOM PORT>)" -context 9,4 | more
      
  3. 規則が無効になっている場合には、有効にします。 組み込みのリモート デスクトップ グループなど、グループ全体を開くには、次のコマンドを実行します。

    netsh advfirewall firewall set rule group="Remote Desktop" new enable=yes
    

    それ以外の場合は、特定のリモート デスクトップ (TCP-In) 規則を開くには、次のコマンドを実行します。

    netsh advfirewall firewall set rule name="<CUSTOM RULE NAME>" new enable=yes
    
  4. トラブルシューティングのために、ファイアウォール プロファイルをオフにすることができます。

    netsh advfirewall set allprofiles state off
    

    トラブルシューティングが完了し、ファイアウォールを正しく設定した後は、ファイアウォールをもう一度有効にします。

    注:

    変更を適用するために VM を再起動する必要はありません。

  5. RDP 接続を使って VM にアクセスしてみます。

軽減策 2

  1. ファイアウォール プロファイルを表示するクエリを実行し、インバウンド ファイアウォール ポリシーが "BlockInboundAlways" に設定されているかどうかを確認します。

    netsh advfirewall show allprofiles | more
    

    BlockInboundAlways を含むインバウンド ファイアウォール プロファイルのクエリ結果のスクリーンショット。

    注:

    ファイアウォール ポリシーの設定方法に応じて、次のガイドラインが適用されます。

    • BlockInbound: 受信トラフィックを許可する規則が有効になっていないと、受信トラフィックがすべてブロックされます。
    • BlockInboundAlways: ファイアウォール規則がすべて無視され、トラフィックがすべてブロックされます。
  2. DefaultInboundAction を、常にトラフィックをブロックするとは限らないように設定します。 そのためには、次のコマンドを実行します。

    netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
    
  3. プロファイルを表示するクエリをもう一度実行し、変更が正常にできていることを確認します。 このためには、次のコマンドを実行します。

    netsh advfirewall show allprofiles | more
    

    注:

    変更を適用するために VM を再起動する必要はありません。

  4. RDP 接続のインバウンド規則を追加していることを確認します。

  5. RDP を使用して VM にもう一度アクセスしてみます。

オフラインの対応策

  1. 復旧 VM にシステム ディスクを取り付ける

  2. 復旧 VM へのリモート デスクトップ接続を開始します。

  3. ディスクが [ディスクの管理] コンソールで [オンライン] になっていることを確認します。 アタッチしたシステム ディスクに割り当てられているドライブ文字をメモします。

対応策 1

「ゲスト OS でファイアウォール規則を Enable-Disable する方法」を参照してください。

軽減策 2

  1. 復旧 VM にシステム ディスクを取り付ける

  2. 復旧 VM へのリモート デスクトップ接続を開始します。

  3. システム ディスクを復旧 VM に接続したら、[ディスクの管理] コンソールでそのディスクが [オンライン] になっていることを確認します。 接続された OS ディスクに割り当てられたドライブ文字をメモします。

  4. 管理者特権の PowerShell インスタンスを開き、次のスクリプトを実行します。

    REM Backup the registry prior doing any change
    robocopy f:\windows\system32\config f:\windows\system32\config.BACK /MT
    
    REM Mount the hive
    reg load HKLM\BROKENSYSTEM f:\windows\system32\config\SYSTEM
    
    REM Delete the keys to block all inbound connection scenario
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet001\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile" /v DoNotAllowExceptions
    REG DELETE "HKLM\BROKENSYSTEM\ControlSet002\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile" /v DoNotAllowExceptions
    
    REM Unmount the hive
    reg unload HKLM\BROKENSYSTEM
    
  5. システム ディスクをデタッチし、VM を再作成します

  6. 問題が解決しているかどうかを確認します。

お問い合わせはこちらから

質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。