Condividi tramite


Il firewall del sistema operativo guest della macchina virtuale di Azure blocca il traffico in ingresso

Si applica a: ✔️ macchine virtuali di Windows

Questo articolo illustra come risolvere il problema di connessione RDP (Remote Desktop Protocol) che si verifica se il firewall del sistema operativo guest blocca il traffico in ingresso.

Sintomi

Non è possibile stabilire una connessione RDP a una macchina virtuale di Azure. Dalla diagnostica di avvio -> Screenshot che mostra che il sistema operativo è completamente caricato nella schermata iniziale (CTRL+ALT+CANC).

Causa

Causa 1

La regola RDP non è configurata per consentire il traffico RDP.

Causa 2

I profili firewall del sistema guest sono configurati in modo da bloccare tutte le connessioni in ingresso, incluso il traffico RDP.

Screenshot dell'opzione Blocca tutte le connessioni in ingresso nella scheda Profilo di dominio della finestra delle impostazioni del firewall.

Soluzione

Prima di seguire questa procedura, creare uno snapshot del disco di sistema della macchina virtuale interessata come backup. Per altre informazioni, vedere Creare uno snapshot di un disco.

Per risolvere il problema, usare uno dei metodi descritti in Usare gli strumenti remoti per risolvere i problemi delle macchine virtuali di Azure per connettersi in remoto alla macchina virtuale e quindi modificare le regole del firewall del sistema operativo guest per consentire il traffico RDP.

Risoluzione dei problemi in modalità online

Connettersi alla console seriale e quindi aprire un'istanza di PowerShell. Se la console seriale non è abilitata sulla macchina virtuale, passare a Riparare la macchina virtuale in modalità offline.

Mitigazione 1

  1. Se l'agente di Azure è installato e funziona correttamente nella macchina virtuale, è possibile usare l'opzione "Reimposta solo configurazione" in Help Reset password (Reimposta>password) nel menu della macchina virtuale.

  2. Questa opzione di ripristino esegue le operazioni seguenti:

    • Abilita un componente RDP se è disabilitato.

    • Abilita tutti i profili di Windows Firewall.

    • Verificare che in Windows Firewall sia attivata la regola RDP.

    • Se i passaggi precedenti non funzionano, reimpostare manualmente la regola del firewall. A tale scopo, eseguire una query su tutte le regole che contengono il nome "Desktop remoto" eseguendo il comando seguente:

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

      Se come porta RDP è stata impostata una porta diversa dalla 3389, è necessario trovare un'eventuale regola personalizzata creata e impostata su tale porta. Per eseguire una query per tutte le regole in ingresso che contengono una porta personalizzata, usare il comando seguente:

      netsh advfirewall firewall show rule dir=in name=all | select-string -pattern "(LocalPort.*<CUSTOM PORT>)" -context 9,4 | more
      
  3. Se si nota che la regola è disabilitata, abilitarla. Per aprire un intero gruppo, ad esempio il gruppo Remote Desktop predefinito, eseguire il comando seguente:

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

    In caso contrario, per aprire la regola specifica di Desktop remoto (TCP-In), eseguire il comando seguente:

    netsh advfirewall firewall set rule name="<CUSTOM RULE NAME>" new enable=yes
    
  4. Per risolvere il problema, è possibile impostare i profili firewall su OFF:

    netsh advfirewall set allprofiles state off
    

    Dopo aver completato la procedura di risoluzione dei problemi e impostato il firewall in modo corretto, riabilitare il firewall.

    Nota

    Non è necessario riavviare la macchina virtuale per applicare queste modifiche.

  5. Provare a stabilire una connessione RDP per accedere alla macchina virtuale.

Mitigazione 2

  1. Eseguire una query sui profili firewall per determinare se i criteri del firewall in ingresso sono impostati su BlockInboundAlways:

    netsh advfirewall show allprofiles | more
    

    Screenshot del risultato della query dei profili firewall in ingresso che contiene BlockInboundAlways.

    Nota

    Le linee guida seguenti si applicano ai criteri del firewall, a seconda della modalità di configurazione:

    • BlockInbound: tutto il traffico in ingresso verrà bloccato, a meno che non sia attiva una regola per consentire il traffico.
    • BlockInboundAlways: tutte le regole del firewall verranno ignorate e tutto il traffico verrà bloccato.
  2. Impostare DefaultInboundAction su non sempre bloccato il traffico. A tale scopo, usare il comando seguente:

    netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound
    
  3. Eseguire di nuovo una query sui profili per verificare che la modifica sia stata applicata. A tale scopo, usare il comando seguente:

    netsh advfirewall show allprofiles | more
    

    Nota

    Non è necessario riavviare la macchina virtuale per applicare le modifiche.

  4. Assicurarsi di aggiungere la regola in ingresso per la connessione RDP.

  5. Provare di nuovo ad accedere alla macchina virtuale tramite RDP.

Procedure di mitigazione offline

  1. Collegare il disco di sistema a una macchina virtuale di ripristino.

  2. Avviare una connessione Desktop remoto alla macchina virtuale di ripristino.

  3. Verificare che il disco sia contrassegnato come Online nella console di Gestione disco. Prendere nota della lettera di unità assegnata al disco di sistema collegato.

Mitigazione 1

Vedere How to Enable-Disable a Firewall rule on a Guest OS (Come abilitare la disabilitazione di una regola del firewall in un sistema operativo guest).

Mitigazione 2

  1. Collegare il disco di sistema a una macchina virtuale di ripristino.

  2. Avviare una connessione Desktop remoto alla macchina virtuale di ripristino.

  3. Dopo che il disco di sistema è collegato alla macchina virtuale di ripristino, assicurarsi che il disco sia contrassegnato come Online nella console di Gestione disco. Prendere nota della lettera di unità assegnata al disco del sistema operativo collegato.

  4. Aprire un'istanza PowerShell con privilegi elevati ed eseguire il seguente script:

    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. Scollegare il disco di sistema e creare di nuovo la macchina virtuale.

  6. Controllare se il problema è stato risolto.

Contattaci per ricevere assistenza

In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.