Udostępnij za pośrednictwem


Wyłączanie zapory systemu operacyjnego gościa na maszynie wirtualnej platformy Azure

Dotyczy: ✔️ maszyny wirtualne z systemem Windows

Ten artykuł zawiera informacje dotyczące sytuacji, w których podejrzewasz, że zapora systemu operacyjnego gościa filtruje częściowy lub kompletny ruch do maszyny wirtualnej. Może się to zdarzyć, jeśli zmiany zostały celowo wprowadzone do zapory, która spowodowała niepowodzenie połączeń RDP.

Rozwiązanie

Proces opisany w tym artykule ma być używany jako obejście, dzięki czemu można skupić się na rozwiązywaniu rzeczywistego problemu, czyli sposobie prawidłowego konfigurowania reguł zapory. Najlepszym rozwiązaniem firmy Microsoft jest włączenie składnika Zapora systemu Windows. Sposób konfigurowania reguł zapory zależy od wymaganego poziomu dostępu do maszyny wirtualnej.

Rozwiązania online

Jeśli maszyna wirtualna jest w trybie online i można uzyskać do niej dostęp na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz wprowadzić te środki zaradcze przy użyciu innej maszyny wirtualnej.

Ograniczenie ryzyka 1: niestandardowe rozszerzenie skryptu lub funkcja uruchom polecenie

Jeśli masz działającego agenta platformy Azure, możesz użyć rozszerzenia niestandardowego skryptu lub funkcji Uruchom polecenia (tylko maszyny wirtualne usługi Resource Manager), aby zdalnie uruchomić następujące skrypty.

Uwaga 16.

  • Jeśli zapora jest ustawiona lokalnie, uruchom następujący skrypt:

    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
    
  • Jeśli zapora jest ustawiona za pomocą zasad usługi Active Directory, możesz użyć następującego skryptu w celu uzyskania tymczasowego dostępu.

    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
    

    Jednak po ponownym zastosowaniu zasad nastąpi wylogowanie z sesji zdalnej. Trwałym rozwiązaniem tego problemu jest zmodyfikowanie zasad zastosowanych na tym komputerze.

Ograniczenie ryzyka 2: Zdalny program PowerShell

  1. Połącz się z maszyną wirtualną znajdującą się w tej samej sieci wirtualnej co maszyna wirtualna, do której nie można nawiązać połączenia przy użyciu połączenia RDP.

  2. Otwórz okno konsoli programu PowerShell.

  3. Uruchom następujące polecenia:

    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
    

Uwaga 16.

Jeśli zapora jest ustawiona za pomocą obiektu zasad grupy, ta metoda może nie działać, ponieważ to polecenie zmienia tylko lokalne wpisy rejestru. Jeśli zasady zostaną wprowadzone, zastąpią tę zmianę.

Środki zaradcze 3: polecenia narzędzia PSTools

  1. Na maszynie wirtualnej rozwiązywania problemów pobierz narzędzie PSTools.

  2. Otwórz wystąpienie usługi CMD, a następnie uzyskaj dostęp do maszyny wirtualnej za pośrednictwem jej adresu DIP.

  3. Uruchom następujące polecenia:

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

Środki zaradcze 4: Rejestr zdalny

Wykonaj następujące kroki, aby użyć rejestru zdalnego.

  1. Na maszynie wirtualnej rozwiązywania problemów uruchom edytor rejestru, a następnie przejdź do pozycji Rejestr sieci programu File>Connect.

  2. Otwórz gałąź TARGET MACHINE\SYSTEM i określ następujące wartości:

    <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. Należy ponownie uruchomić usługę. Ponieważ nie można tego zrobić za pomocą rejestru zdalnego, należy użyć konsoli usługi zdalnej.

  4. Otwórz wystąpienie pliku Services.msc.

  5. Kliknij pozycję Usługi (lokalne).

  6. Wybierz pozycję Połącz z innym komputerem.

  7. Wprowadź prywatny adres IP (DIP) maszyny wirtualnej problemu.

  8. Uruchom ponownie lokalne zasady zapory.

  9. Spróbuj ponownie nawiązać połączenie z maszyną wirtualną za pośrednictwem protokołu RDP z komputera lokalnego.

Rozwiązania w trybie offline

Jeśli masz sytuację, w której nie możesz nawiązać połączenia z maszyną wirtualną za pomocą żadnej metody, rozszerzenie niestandardowego skryptu zakończy się niepowodzeniem i będzie konieczne działanie w trybie OFFLINE przez bezpośrednie działanie za pośrednictwem dysku systemowego. W tym celu wykonaj następujące kroki:

  1. Dołącz dysk systemowy do maszyny wirtualnej odzyskiwania.

  2. Uruchom połączenie pulpitu zdalnego z maszyną wirtualną odzyskiwania.

  3. Upewnij się, że dysk jest oflagowany jako Online w konsoli zarządzania dyskami. Zwróć uwagę na literę dysku przypisaną do dołączonego dysku systemowego.

  4. Przed wprowadzeniem jakichkolwiek zmian utwórz kopię folderu \windows\system32\config w przypadku konieczności wycofania zmian.

  5. Na maszynie wirtualnej rozwiązywania problemów uruchom edytor rejestru (regedit.exe).

  6. W przypadku tej procedury rozwiązywania problemów instalowania gałęzi jako BROKENSYSTEM i BROKENSOFTWARE.

  7. Wyróżnij klucz HKEY_LOCAL_MACHINE, a następnie z menu wybierz pozycję Załaduj gałąź pliku > .

  8. Znajdź plik \windows\system32\config\SYSTEM na dołączonym dysku systemowym.

  9. Otwórz wystąpienie programu PowerShell z podwyższonym poziomem uprawnień, a następnie uruchom następujące polecenia:

    # 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. Odłącz dysk systemowy i utwórz ponownie maszynę wirtualną.

  11. Sprawdź, czy problem został rozwiązany.

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii na temat platformy Azure.