Deaktivieren der Firewall des Gastbetriebssystems eines virtuellen Azure-Computers

Dieser Artikel enthält eine Referenz für Situationen, in denen Sie vermuten, dass die Firewall des Gastbetriebssystems teilweise oder vollständig Datenverkehr zu einem virtuellen Computer (VM) filtert. Dies kann auftreten, wenn absichtlich Änderungen an der Firewall vorgenommen wurden, die den Ausfall von RDP-Verbindungen verursacht hat.

Lösung

Der in diesem Artikel beschriebene Prozess soll als Problemumgehung verwendet werden, damit Sie sich auf Ihre eigentliche Aufgabe konzentrieren können – die richtige Einrichtung der Firewallregeln. Es ist eine bewährte Methode von Microsoft, die Windows Firewall-Komponente zu aktivieren. Wie Sie die Firewallregeln konfigurieren, hängt von der erforderlichen Zugriffsebene des virtuellen Computers ab.

Onlinelösungen

Wenn der virtuelle Computer online ist und ein anderer virtueller Computer im gleichen virtuellen Netzwerk darauf zugreifen kann, können Sie diese vorbeugenden Maßnahmen mithilfe des anderen virtuellen Computers durchführen.

Risikominderung 1: Funktion „Benutzerdefinierte Skripterweiterung“ oder „Befehl Ausführen‘“

Mit einem Azure-Agent können Sie das Feature Benutzerdefinierte Skripterweiterung oder Befehl „Ausführen“ (nur Resource Manager-VMs) verwenden, um die folgenden Skripts remote auszuführen.

Hinweis

  • Wenn die Firewall lokal eingerichtet ist, führen Sie das folgende Skript aus:

    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile' -name "EnableFirewall" -Value 0
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile' -name "EnableFirewall" -Value 0
    Set-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\Standardprofile' -name "EnableFirewall" -Value 0 
    Restart-Service -Name mpssvc
    
  • Wenn die Firewall über eine Active Directory-Richtlinie eingerichtet ist, können Sie das folgende Skript für temporären Zugriff ausführen.

    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile' -name "EnableFirewall" -Value 0
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile' -name "EnableFirewall" -Value 0
    Set-ItemProperty -Path 'HKLM:\SOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile' -name "EnableFirewall" -Value 0
    Restart-Service -Name mpssvc
    

    Sobald die Richtlinie erneut angewendet wird, werden Sie allerdings aus der Remotesitzung entfernt. Die endgültige Lösung für dieses Problem ist die Änderung der Richtlinie, die auf diesem Computer angewendet wird.

Risikominderung 2: Remote-PowerShell

  1. Stellen Sie eine Verbindung mit einem virtuellen Computer her, der sich in demselben virtuellen Netzwerk wie der virtuelle Computer befindet, den Sie mithilfe der RDP-Verbindung nicht erreichen können.

  2. Öffnen Sie ein PowerShell-Konsolenfenster.

  3. Führen Sie die folgenden Befehle aus:

    Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) 
    netsh advfirewall set allprofiles state off
    Restart-Service -Name mpssvc 
    exit
    

Hinweis

Wenn die Firewall durch ein Gruppenrichtlinienobjekt festgelegt ist, funktioniert diese Methode möglicherweise nicht, da dieser Befehl nur die Einträge in der lokalen Registrierung ändert. Wenn eine Richtlinie vorhanden ist, wird diese Änderung überschrieben.

Risikominderung 3: PSTools-Befehle

  1. Laden Sie auf den virtuellen Computer, der zur Problembehandlung dient, PSTools herunter.

  2. Öffnen Sie eine CMD-Instanz, und greifen Sie dann über deren DIP-Adresse auf den virtuellen Computer zu.

  3. Führen Sie die folgenden Befehle aus:

    psexec \\<DIP> ​-u <username> cmd
    netsh advfirewall set allprofiles state off
    psservice restart mpssvc
    

Vorbeugende Maßnahme 4: Remoteregistrierung

Gehen Sie zur Verwendung der Remoteregistrierung wie folgt vor.

  1. Starten Sie auf dem virtuellen Computer, der zur Problembehandlung dient, den Registrierungs-Editor, und wählen Sie Datei>Mit Netzwerkregistrierung verbinden aus.

  2. Öffnen Sie den Branch TARGET MACHINE\SYSTEM, und geben Sie die folgenden Werte ein:

    <TARGET MACHINE>\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile\EnableFirewall           -->        0 
    <TARGET MACHINE>\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile\EnableFirewall           -->        0 
    <TARGET MACHINE>\SYSTEM\CurrentControlSet\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile\EnableFirewall         -->        0
    
  3. Starten Sie den Dienst neu. Da dies mit der Remoteregistrierung nicht möglich ist, müssen Sie die Remotedienstkonsole verwenden.

  4. Öffnen Sie eine Instanz von Services.msc.

  5. Klicken Sie auf Dienste (lokal).

  6. Wählen Sie Verbindung mit einem anderen Computer herstellen aus.

  7. Geben Sie die Private IP-Adresse (DIP) des virtuellen Computers ein, auf dem das Problem auftritt.

  8. Starten Sie die lokale Firewallrichtlinie neu.

  9. Versuchen Sie erneut, von Ihrem lokalen Computer aus über RDP eine Verbindung mit dem virtuellen Computer herzustellen.

Offlinelösungen

Wenn Sie den virtuellen Computer mit keiner Methode erreichen können, ist die „Benutzerdefinierte Skripterweiterung“ nicht einsetzbar, und Sie müssen im OFFLINEMODUS direkt über den Betriebssystemdatenträger arbeiten. Gehen Sie dazu folgendermaßen vor:

  1. Fügen Sie den Systemdatenträger an einen virtuellen Wiederherstellungscomputer an.

  2. Stellen Sie eine Remotedesktopverbindung mit dem virtuellen Wiederherstellungscomputer her.

  3. Stellen Sie sicher, dass der Datenträger in der Datenträgerverwaltungskonsole als „Online“ gekennzeichnet ist. Achten Sie auf den Laufwerkbuchstaben, der dem angefügten Betriebssystemdatenträger zugewiesen ist.

  4. Bevor Sie Änderungen vornehmen, erstellen Sie eine Kopie des Ordners „\windows\system32\config“ für den Fall, dass ein Rollback der Änderungen erforderlich ist.

  5. Starten Sie auf dem virtuellen Computer, der zur Problembehandlung dient, den Registrierungs-Editor (regedit.exe).

  6. Für dieses Verfahren zur Problembehandlung werden die Strukturen als BROKENSYSTEM und BROKENSOFTWARE eingebunden.

  7. Heben Sie den Schlüssel HKEY_LOCAL_MACHINE hervor und wählen Sie dann im Menü die Optionen „Datei > Struktur laden“ aus.

  8. Suchen Sie nach der Datei „\windows\system32\config\SYSTEM“ auf dem angefügten Datenträger.

  9. Öffnen Sie eine PowerShell-Instanz mit erhöhten Rechten, und führen Sie dann die folgenden Befehle aus:

    # Load the hives - If your attached disk is not F, replace the letter assignment here
    reg load HKLM\BROKENSYSTEM f:\windows\system32\config\SYSTEM
    reg load HKLM\BROKENSOFTWARE f:\windows\system32\config\SOFTWARE 
    # Disable the firewall on the local policy
    $ControlSet = (get-ItemProperty -Path 'HKLM:\BROKENSYSTEM\Select' -name "Current").Current
    $key = 'HKLM:\BROKENSYSTEM\ControlSet00'+$ControlSet+'\services\SharedAccess\Parameters\FirewallPolicy\DomainProfile'
    Set-ItemProperty -Path $key -name 'EnableFirewall' -Value 0 -Type Dword -force
    $key = 'HKLM:\BROKENSYSTEM\ControlSet00'+$ControlSet+'\services\SharedAccess\Parameters\FirewallPolicy\PublicProfile'
    Set-ItemProperty -Path $key -name 'EnableFirewall' -Value 0 -Type Dword -force
    $key = 'HKLM:\BROKENSYSTEM\ControlSet00'+$ControlSet+'\services\SharedAccess\Parameters\FirewallPolicy\StandardProfile'
    Set-ItemProperty -Path $key -name 'EnableFirewall' -Value 0 -Type Dword -force
    # To ensure the firewall is not set through AD policy, check if the following registry entries exist and if they do, then check if the following entries exist:
    $key = 'HKLM:\BROKENSOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile'
    Set-ItemProperty -Path $key -name 'EnableFirewall' -Value 0 -Type Dword -force
    $key = 'HKLM:\BROKENSOFTWARE\Policies\Microsoft\WindowsFirewall\PublicProfile'
    Set-ItemProperty -Path $key -name 'EnableFirewall' -Value 0 -Type Dword -force
    $key = 'HKLM:\BROKENSOFTWARE\Policies\Microsoft\WindowsFirewall\StandardProfile'
    Set-ItemProperty -Path $key -name 'EnableFirewall' -Value 0 -Type Dword -force
    # Unload the hives
    reg unload HKLM\BROKENSYSTEM
    reg unload HKLM\BROKENSOFTWARE
    
  10. Trennen des Betriebssystemdatenträgers und erneutes Erstellen des virtuellen Computers.

  11. Überprüfen Sie, ob das Problem behoben ist.

Kontaktieren Sie uns für Hilfe

Wenn Sie Fragen haben oder Hilfe mit Ihren Azure-Gutschriften benötigen, dann erstellen Sie beim Azure-Support eine Support-Anforderung oder fragen Sie den Azure Community-Support. Sie können auch Produktfeedback an die Azure Feedback Community senden.