Заметки о Windows и других программных продуктах Microsoft...

Разрешаем ping в Windows Server 2008/2012

Разрешаем ping в Windows Server 2008/2012

Ping — утилита командной строки для проверки соединений в сетях TCP/IP. Она является одним из основных средств диагностики сети и входит в состав всех современных сетевых операционных систем. Принцип ее работы заключается в том, что она отправляет запросы (ICMP Echo-Request) протокола ICMP указаному узлу и фиксирует поступающие ответы  (ICMP Echo-Reply).

Время между отправкой запроса и получением ответа позволяет определить задержки при передаче и частоту потери пакетов, а также оценить загруженность канала передачи данных. Полное отсутствие ICMP-ответов может означать, что удалённый узел неисправен.

В серверных ОС начиная с Windows Server 2008 входящие эхо-запросы по умолчанию запрещены и блокируются брандмауэром Windows. Сделано это скорее всего с целью предотвратить сетевые атаки типа ICMP Flooding (затопление атакуемого узла пакетами ICMP), которые могут вызвать отказ в обслуживании (Denial of Service, DoS). Безопасность конечно важна, однако в результате при попытке проверить доступность сервера мы получаем ошибку.

Для разрешения входящих эхо-запросов необходимо активировать соответствующее правило брандмауэра Windows. Вот несколько вариантов того, как это сделать.

Оснастка Windows Firewall with Adwanced Security

Самый простой способ разрешить ping  — воспользоваться оснасткой «Windows Firewall with Adwanced Security». Для ее запуска нажимаем клавиши Win+R и вводим команду wf.msc.

Заходим в раздел входящих правил (Inbound Rules). Здесь нас интересует предопределенное правило для IPV4 — ″File and Printer Sharing (Echo Request — ICMPv4-In)″.  Обратите внимание, что в таблице присутствуют два  правила с одинаковым названием. На самом деле это одно и то же правило, просто настроенное для разных профилей — одно для доменного профиля, второе для общего и частного.

windows firewall with advanced security

 

Активируем правило, отметив галочкой чекбокс Enabled и проверяем, чтобы в поле Action был выбран пункт ″Allow the connection″.

вкладка General

 

Переходим на вкладку Advanced и выбираем профили, для которых это правило будет действовать. Сохраняем правило и жмем OK. Теперь сервер можно пинговать.

вкладка Advanced

 

При необходимости в дополнительных мерах безопасности произведем еще несколько настроек, которые защитят сервер от атак и позволят вам спокойно пользоваться Ping-ом.

Переходим на вкладку Scope и в поле Remote IP address указываем, с каких адресов разрешено принимать входящие запросы. Здесь можно указать один адрес, диапазон адресов либо целиком подсеть.

вкладка Scope

 

На вкладке Local Principals указываем локальных пользователей или группы, которым разрешается пинговать данный сервер. Как вариант, можно дать разрешение только группе локальных администраторов.

вкладка Local Principals

Групповые политики

В доменной среде разрешить Ping можно централизованно, через групповые политики. Открываем в редакторе групповых политик соответствующую GPO и переходим в раздел Computer Configuration–Policies–Windows Settings–Windows Firewall with Adwanced Security. Раскрываем дерево поддразделов и переходим на вкладку Inbound Rule. Кликаем правой клавишей мыши и в контекстном меню выбираем New Rule.

создание правила через GPO

 

Выбираем Predefined (предопределенные правила) и находим в списке группу правил «File and Printer Sharing».

выбор предопределенного правила

 

Находим правило ICMPv4-In и убираем выделение с остальных.

выбор правила ICMPv4-In

 

Выбираем для правила действие Allow the connection (разрешить подключениe) и жмем Finish, сохраняя правило.

выбор действия для правила

 

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

Утилита Netsh

Кроме графических средств для управления правилами можно воспользоваться утилитой командной строки netsh. В качестве примера активируем правило ICMPv4-In для всех профилей брандмауэра и ограничим удаленные IP подсетью 192.168.1.0/24:

netsh adwfirewall firewall set rule name= ″File and Printer Sharing (Echo Request — ICMPv4-In)″ new enable= yes action= allow profile= any remoteip= 192.168.1.0/24

активация правила с помощью netsh

 

Если вы используете Windows Server 2008 (не R2), то команда будет выглядеть  немного по другому. Для включения правила:

netsh firewall set icmpsetting 8

И для отключения:

netsh firewall set icmpsetting 8 disable

PowerShell

Также разрешить эхо-запросы можно с помощью PowerShell. Правда воспользоваться этим способом можно только в Windows Server 2012, в остальных ОС отсутствует соответствующий PowerShell модуль. Для активации правила воспользуемся следующей командой:

Set-NetFirewallRule -Name FPS-ICMP-ERQ-In -Enabled True -Profile Any -Action Allow

активация правила с помощью PowerShell

 

Вроде бы все. Хотя нет, вспомнил еще один интересный момент. Для нормальной работы службы каталогов Active Directory необходимо, чтобы брандмауэр пропускал ICMP пакеты от клиентских компьютеров к контроллеру домена. Это нужно для получения клиентами сведений групповой политики. Поэтому на контроллерах домена есть отдельное правило брандмауэра, разрешающее входящий ping — ″Active Directory Domain Controller —  Echo Request (ICMPv4-In)″. Это правило активно по умолчанию.

 
 
Комментарии
Роман

ни один из вариантов не помог(
пинг как не делался, так и не делатся. Система — Windows Server 2012 r2 x64 Standard edition

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

У меня пропадал пинг, когда я включал виртуалку на хостовой машине через VirtualBox с сетевым подключением типа мост.

advfirewall а не adwfirewall