Поделиться через


Включение или отключение правила брандмауэра в гостевой ОС на виртуальной машине Azure

Область применения: ✔️ Виртуальные машины Windows

Инструкции по устранению неполадок в этой статье относятся к ситуациям, в которых возможна частичная блокировка трафика виртуальной машины брандмауэром гостевой ОС. Это может быть полезным в следующих случаях:

  • Если в брандмауэре намеренно настроены дополнительные параметры, приводящие к сбою подключения по протоколу RDP, функция расширения пользовательских скриптов поможет решить эту проблему.

  • Отключение всех профилей брандмауэра будет более надежным действием для устранения проблемы, чем настройка правил брандмауэра для протокола RDP.

Решение

Настройка правил брандмауэра зависит от требуемого уровня доступа к виртуальной машине. Ниже представлены примеры использования правил RDP. Те же самые методы можно применить и для любого другого вида трафика, указав правильный раздел реестра.

Сетевое устранение неполадок

Решение 1. Расширение пользовательских скриптов

  1. Создайте скрипт на основе следующего шаблона.

    • Чтобы включить правило:

      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
      
    • Чтобы отключить правило:

      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=no
      
  2. Отправьте этот скрипт в Azure с помощью функции расширения пользовательских скриптов.

Решение 2. Удаленный сеанс PowerShell

Если виртуальная машина подключена к сети и к ней есть доступ с другой виртуальной машины в той же виртуальной сети, проблемы можно устранить с помощью второй виртуальной машины.

  1. На виртуальной машине восстановления откройте окно консоли PowerShell.

  2. Выполните следующие команды, внеся необходимые изменения.

    • Чтобы включить правило:

      Enter-PSSession (New-PSSession -ComputerName "<HOSTNAME>" -Credential (Get-Credential) -SessionOption (New-PSSessionOption -SkipCACheck -SkipCNCheck)) 
      Enable-NetFirewallRule -DisplayName  "RemoteDesktop-UserMode-In-TCP"
      exit
      
    • Чтобы отключить правило:

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

Решение 3. Команды PSTools

Если виртуальная машина подключена к сети и к ней есть доступ с другой виртуальной машины в той же виртуальной сети, проблемы можно устранить с помощью второй виртуальной машины.

  1. На виртуальной машине для устранения неполадок скачайте средство PSTools.

  2. Откройте экземпляр командной строки и создайте подключение к виртуальной машине по внутреннему (выделенному) IP-адресу.

    • Чтобы включить правило:

      psexec \\<DIP> ​-u <username> cmd
      netsh advfirewall firewall set rule dir=in name="Remote Desktop - User Mode (TCP-In)" new enable=yes
      
    • Чтобы отключить правило:

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

Решение 4. Удаленный реестр

Если виртуальная машина подключена к сети и к ней есть доступ с другой виртуальной машины в той же виртуальной сети, можно применить удаленный реестр на второй виртуальной машине.

  1. На виртуальной машине восстановления запустите редактор реестра (regedit.exe) и последовательно выберите Файл>Подключить сетевой реестр.

  2. Откройте целевую ветвь MACHINE\SYSTEM и укажите следующие значения:

    • Чтобы включить правило, откройте следующий параметр реестра:

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

      Измените Active=FALSE на 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|

    • Чтобы отключить правило, откройте следующий параметр реестра:

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

      Измените Active=TRUE на 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. Чтобы применить эти изменения, перезапустите виртуальную машину.

Автономное устранение неполадок

Если доступ к виртуальной машины не удается получить любым методом, расширение пользовательского скрипта не сработает, и проблему придется решать в автономном режиме, то есть прямо через системный диск.

Прежде чем выполнять какие-либо действия, сделайте моментальный снимок диска системы затронутой виртуальной машины в качестве резервной копии. Дополнительные сведения см. в статье Создание моментального снимка.

  1. Подключите системный диск к виртуальной машине восстановления.

  2. Установите подключение с помощью удаленного рабочего стола к виртуальной машине, используемой для восстановления.

  3. Убедитесь, что в консоли "Управление дисками" подключенный диск имеет состояние Подключен. Запишите или запомните букву диска, которая присвоена подключенному системному диску.

  4. Прежде чем вносить любые изменения, создайте копию папки \windows\system32\config на случай, если потребуется откат изменений.

  5. На виртуальной машине по устранению неполадок запустите редактор реестра (regedit.exe).

  6. Выделите ключ HKEY_LOCAL_MACHINE и выберите файл>load Hive в меню.

    Снимок экрана: ключ HKEY_LOCAL_MACHINE и параметр Load Hive в меню

  7. Найдите и откройте файл \windows\system32\config\SYSTEM.

    Примечание.

    Появляется сообщение с предложением ввести имя. Введите BROKENSYSTEM и разверните узел HKEY_LOCAL_MACHINE. Теперь вы увидите дополнительный ключ с именем BROKENSYSTEM. Для устранения неполадок мы монтируем эти проблемы как BROKENSYSTEM.

  8. Примените следующие изменения к ветви раздела BROKENSYSTEM.

    1. Проверьте, с каким значением раздела реестра ControlSet запускается виртуальная машина. Номер используемого раздела можно найти в разделе HKLM\BROKENSYSTEM\Select\Current.

    2. Чтобы включить правило, откройте следующий параметр реестра:

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

      Измените здесь Active=FALSE на 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. Чтобы отключить правило, откройте следующий раздел реестра:

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

      Измените Active=TRUE на 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. Выделите BROKENSYSTEM и выберите "Выгрузить файл>Hive" в меню.

  10. Отсоедините системный диск и повторно создайте виртуальную машину.

  11. Убедитесь, что проблема устранена.

Свяжитесь с нами для получения помощи

Если у вас есть вопросы или вам нужна помощь, создайте запрос в службу поддержки или обратитесь за поддержкой сообщества Azure. Вы также можете отправить отзыв о продукте в сообщество отзывов Azure.