Udostępnij za pośrednictwem


Włączanie lub wyłączanie reguły zapory w systemie operacyjnym gościa maszyny wirtualnej platformy Azure

Ten artykuł zawiera dokumentację dotyczącą rozwiązywania problemów z sytuacją, w której podejrzewasz, że zapora systemu operacyjnego gościa filtruje częściowy ruch na maszynie wirtualnej. Może to być przydatne z następujących powodów:

  • Jeśli celowo wprowadzono zmianę zapory, która spowodowała niepowodzenie połączeń RDP, użycie funkcji rozszerzenia niestandardowego skryptu może rozwiązać ten problem.

  • Wyłączenie wszystkich profilów zapory jest bardziej niezawodnym sposobem rozwiązywania problemów niż ustawienie reguły zapory specyficznej dla protokołu RDP.

Rozwiązanie

Sposób konfigurowania reguł zapory zależy od wymaganego poziomu dostępu do maszyny wirtualnej. W poniższych przykładach użyto reguł PROTOKOŁU RDP. Jednak te same metody można zastosować do dowolnego innego rodzaju ruchu, wskazując poprawny klucz rejestru.

Rozwiązywanie problemów online

Ograniczenie ryzyka 1: rozszerzenie niestandardowego skryptu

  1. Utwórz skrypt przy użyciu następującego szablonu.

    • Aby włączyć regułę:

      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
      
    • Aby wyłączyć regułę:

      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
      
  2. Przekaż ten skrypt w Azure Portal przy użyciu funkcji rozszerzenia niestandardowego skryptu.

Środki zaradcze 2: zdalny program PowerShell

Jeśli maszyna wirtualna jest w trybie online i jest dostępna na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz zastosować następujące środki zaradcze przy użyciu innej maszyny wirtualnej.

  1. Na maszynie wirtualnej rozwiązywania problemów otwórz okno konsoli programu PowerShell.

  2. W razie potrzeby uruchom następujące polecenia.

    • Aby włączyć regułę:

      Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) 
      Enable-NetFirewallRule -DisplayName  "RemoteDesktop-UserMode-In-TCP"
      exit
      
    • Aby wyłączyć regułę:

      Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) 
      Disable-NetFirewallRule -DisplayName  "RemoteDesktop-UserMode-In-TCP"
      exit
      

Środki zaradcze 3: polecenia narzędzia PSTools

Jeśli maszyna wirtualna jest w trybie online i jest dostępna na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz zastosować następujące środki zaradcze przy użyciu innej maszyny wirtualnej.

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

  2. Otwórz wystąpienie cmd i uzyskaj dostęp do maszyny wirtualnej za pośrednictwem wewnętrznego adresu IP (DIP).

    • Aby włączyć regułę:

      psexec \\<DIP> ​-u <username> cmd
      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
      
    • Aby wyłączyć regułę:

      psexec \\<DIP> ​-u <username> cmd
      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
      

Środki zaradcze 4: Rejestr zdalny

Jeśli maszyna wirtualna jest w trybie online i jest dostępna na innej maszynie wirtualnej w tej samej sieci wirtualnej, możesz użyć rejestru zdalnego na innej maszynie wirtualnej.

  1. Na maszynie wirtualnej rozwiązywania problemów uruchom Redaktor rejestru (regedit.exe), a następnie wybierz pozycję File>Connect Network Registry.

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

    • Aby włączyć regułę, otwórz następującą wartość rejestru:

      TARGET MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Następnie zmień wartość Active=FALSE na Active=TRUE w ciągu:

      v2.22|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

    • Aby wyłączyć regułę, otwórz następującą wartość rejestru:

      TARGET MACHINE\SYSTEM\CurrentControlSet\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Następnie zmień wartość Active =TRUE na Active=FALSE:

      v2.22|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

  3. Uruchom ponownie maszynę wirtualną, aby zastosować zmiany.

Rozwiązywanie problemów w trybie offline

Jeśli nie możesz uzyskać dostępu do maszyny wirtualnej za pomocą jakiejkolwiek metody, użycie rozszerzenia niestandardowego skryptu zakończy się niepowodzeniem i będziesz musiał pracować w trybie offline, pracując bezpośrednio za pośrednictwem dysku systemowego.

Przed wykonaniem tych kroków wykonaj migawkę dysku systemowego maszyny wirtualnej, na którą dotyczy problem, jako kopię zapasową. Aby uzyskać więcej informacji, zobacz Migawka dysku.

  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. Należy pamiętać, że litera dysku przypisana 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 Redaktor rejestru (regedit.exe).

  6. Wyróżnij klucz HKEY_LOCAL_MACHINE, a następnie z menu wybierz pozycjęZaładujplik> Hive.

    Zrzut ekranu przedstawiający klucz HKEY_LOCAL_MACHINE i opcję Załaduj gałąź w menu Plik Redaktor rejestru.

  7. Znajdź i otwórz plik \windows\system32\config\SYSTEM.

    Uwaga

    Zostanie wyświetlony monit o podanie nazwy. Wprowadź wartość BROKENSYSTEM, a następnie rozwiń węzeł HKEY_LOCAL_MACHINE. Teraz zostanie wyświetlony dodatkowy klucz o nazwie BROKENSYSTEM. Na potrzeby tego rozwiązywania problemów te gałęzie problemów są instalowane jako BROKENSYSTEM.

  8. Wprowadź następujące zmiany w gałęzi BROKENSYSTEM:

    1. Sprawdź, od którego klucza rejestru ControlSet zaczyna się maszyna wirtualna. Jego numer klucza zostanie wyświetlony w HKLM\BROKENSYSTEM\Select\Current.

    2. Aby włączyć regułę, otwórz następującą wartość rejestru:

      HKLM\BROKENSYSTEM\ControlSet00X\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Następnie zmień wartość Active=FALSE na Active=True.

      v2.22|Action=Allow|Active=TRUE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

    3. Aby wyłączyć regułę, otwórz następujący klucz rejestru:

      HKLM\BROKENSYSTEM\ControlSet00X\Services\SharedAccess\Parameters\FirewallPolicy\FirewallRules\RemoteDesktop-UserMode-In-TCP

      Następnie zmień wartość Active=True na Active=FALSE.

      v2.22|Action=Allow|Active=FALSE|Dir=In|Protocol=6|Profile=Domain|Profile=Private|Profile=Public|LPort=3389|App=%SystemRoot%\system32\svchost.exe|Svc=termservice|Name=\@FirewallAPI.dll,-28775|Desc=\@FirewallAPI.dll,-28756|EmbedCtxt=\@FirewallAPI.dll,-28752|

  9. Wyróżnij pozycję BROKENSYSTEM, a następnie wybierz pozycję File>Unload Hive z menu.

  10. Odłącz dysk systemowy i ponownie utwórz 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 platformy Azure.