Создание правил, разрешающих необходимый входящий трафик
По умолчанию брандмауэр ОС Windows в режиме повышенной безопасности блокирует весь незапрошенный входящий трафик. Чтобы программы, ожидающие такой трафик, могли успешно работать, нужно сначала создать правила с определенными критериями.
Шаги по созданию правил, разрешающих необходимый входящий трафик
В этом разделе мы создадим правила брандмауэра, разрешающие определенные виды незапрошенного входящего сетевого трафика.
Шаг 1. Настройка предопределенных правил с помощью групповой политики
Шаг 2. Разрешение незапрошенного входящего сетевого трафика для указанной программы
Шаг 3. Разрешение входящего трафика на указанном порту TCP или UDP
Шаг 4. Разрешение входящего сетевого трафика, использующего динамический вызов удаленных процедур RPC
Шаг 5. Просмотр журнала брандмауэра
Шаг 1. Настройка предопределенных правил с помощью групповой политики
Во многих случаях требуется создать правила, управляющие часто встречающейся на практике сетевой активностью. Большое количество видов типового трафика уже включено в состав предопределенного набора правил брандмауэра ОС Windows в режиме повышенной безопасности. Это упрощает их настройку и развертывание.
На этом шаге мы настроим ряд правил брандмауэра с помощью оснастки MMC управления групповой политикой. Сейчас наша цель состоит в том, чтобы правила группы Core Networking (основы сетей) были всегда включены.
Настройка группы правил брандмауэра
-
1. На компьютере MBRSVR1 в оснастке Group Policy Management щелкните правой кнопкой мыши пункт Firewall Settings for Vista Clients и выберите команду Edit.
2. В области переходов редактора Group Policy Management Editor последовательно разверните узлы Computer Configuration, Windows Settings, Security Settings, Windows Firewall with Advanced Security и Windows Firewall with Advanced Security - LDAP://{GUID},cn=policies,cn=system,DC=contoso,DC=com.
3. Щелкните пункт Inbound Rules.
По умолчанию правил для входящих соединений в объекте GPO нет.
4. Щелкните правой кнопкой мыши пункт Inbound Rules и выберите команду New rule.
5. На странице Rule Type мастера щелкните пункт Predefined (предопределенное), выберите пункт Core Networking (основы сетей) из списка и нажмите кнопку Next.
6. На странице Predefined Rules (предопределенные правила) изучите список правил, оставьте их все отмеченными флажками и нажмите кнопку Next.
Примечание
В производственной среде следует тщательно выбирать, к каким профилям будут применяться правила. Иногда необходимо указать правила для других профилей, используемых в тех случаях, когда компьютер не подключен к сети предприятия — например для переносных компьютеров, забираемых домой. Иногда требуются правила, распространяющиеся на все профили — так компьютеры будут защищены даже в том случае, когда отключены от сети организации. Могут также потребоваться определенные изменения в правилах, чтобы нужные программы корректно работали в домашней или публичной сети, отличающейся от корпоративной.
7. Поскольку мы хотим создать исключение, разрешающее блокируемый трафик, на странице Action выберите пункт Allow the connection и нажмите кнопку Finish.
Теперь область сведений Inbound Rules заполнена списком включенных правил.
|
Теперь, когда объект GPO содержит список правил, можно развернуть его на клиентском компьютере.
Проверка работы правил на клиентском компьютере
-
1. На компьютере CLIENT1 в командной строке от имени администратора выполните команду gpupdate /force. Дождитесь завершения работы команды.
2. В области переходов оснастки Windows Firewall with Advanced Security разверните узел Monitoring и щелкните пункт Firewall.
Обратите внимание на список правил, действующих теперь на локальном компьютере.
3. В меню View (вид) выберите команду Add/Remove columns (добавить или удалить столбцы).
4. Если столбец Rule Source (источник правила) не входит в число отображаемых, щелкните его в списке Available columns (имеющиеся столбцы) и нажмите кнопку Add.
5. Нажмите кнопку Move Up (вверх), чтобы переместить столбец Rule Source в положение сразу после столбца Name, и нажмите кнопку OK.
Примечание
Отображение столбца Rule Source полезно при устранении неполадок, но с ним вывод списка правил происходит медленнее. Рекомендуется удалять этот столбец из списка, когда в нем нет нужды.
6. Обратите внимание на то, что для всех правил в качестве источника указан объект GPO Firewall Settings for Vista Clients. Даже если отключить локально определенные правила группы Core Networking в рамках раздела Inbound Rules, на действие правил объекта групповой политики это не повлияет.
7. Закройте редактор Group Policy Management Editor, в котором мы изменяли клиентский объект GPO.
|
Шаг 2. Разрешение незапрошенного входящего сетевого трафика для указанной программы
Когда программа должна быть в состоянии получать незапрошенный входящий сетевой трафик, следует создать правило, разрешающее прохождение такого трафика через брандмауэр.
По умолчанию, когда программа при запуске регистрируется в системе для прослушивания отдельных портов TCP или UDP, ОС Windows блокирует запрос и отображает диалоговое окно с запросом инструкций. Если пользователь одобряет работу программы, автоматически создается правило брандмауэра, разрешающее для нее весь сетевой трафик. Создать похожее правило можно и вручную. Если созданное таким образом правило будет распространено через групповую политику, пользователям не придется решать, что делать с этим диалоговым окном.
На компьютерах под управлением ОС Windows Server 2008 диалоговое окно по умолчанию не появляется, а программа автоматически блокируется. Поэтому для таких компьютеров нужно создавать правила для каждой программы, работающей с незапрошенным входящим сетевым трафиком. Еще одно преимущество создания правил вручную — возможность ограничить действие правила только указанными видами трафика.
В этом разделе мы в качестве первого примера создадим правило брандмауэра, разрешающее входящий трафик службы Telnet, а затем развернем его на компьютере MBRSVR1 с помощью групповой политики.
Создание правила брандмауэра, разрешающего входящий трафик программы
-
1. На компьютере MBRSVR1 в оснастке Group Policy Management щелкните правой кнопкой мыши пункт Firewall Settings for WS2008 Servers и выберите команду Edit.
2. В области переходов последовательно разверните узлы Computer Configuration, Windows Settings, Security Settings, Windows Firewall with Advanced Security и Windows Firewall with Advanced Security - LDAP://{GUID},cn=policies,cn=system,DC=contoso,DC=com.
3. Щелкните правой кнопкой мыши пункт Inbound Rules и выберите команду New rule.
4. На странице Rule Type выберите пункт Custom и нажмите кнопку Next.
Примечание
Правила рекомендуется делать настолько подробными, насколько это возможно. В частности, указывать и программу, чтобы правило применялось только при ее работе, и порт, чтобы программа могла получать данные только на действительно нужном порту. Для правил типа Custom доступны все возможности мастера.
5. В поле ввода This program path (путь программы) введите команду %systemroot%\system32\tlntsvr.exe.
6. Поскольку программы могут размещать несколько служб, рекомендуется также ограничить действие правила отдельно взятой службой. Нажмите кнопку Customize, расположенную рядом с пунктом Services.
7. Выберите пункт Apply to this service (применять к службе), укажите вариант Telnet, нажмите кнопку OK и затем кнопку Next.
Примечание
В список служб включены только службы, установленные на компьютере, где редактируется объект GPO. Если нужная служба на нем не установлена, можно выбрать пункт Apply to service with this service short name (применять к службе со следующим кратким именем) и ввести краткое имя службы в поле ввода. Чтобы узнать это имя, используйте оснастку MMC Services (службы) на компьютере, где искомая служба установлена.
8. На странице Protocols and Ports нажмите кнопку Next. Мы ограничим правило конкретным портом в следующем разделе.
9. На странице Scope нажмите кнопку Next.
10. На странице Action выберите вариант Allow the Connection и нажмите кнопку Next.
11. На странице Profile снимите флажки Private и Public. Убедитесь в том, что флажок Domain установлен, и нажмите кнопку Next.
12. На странице Name введите команду Allow Inbound Telnet и нажмите кнопку Finish.
|
Перед развертыванием объекта GPO настроим ряд других параметров, чтобы локальные правила не вступали в конфликт с предоставленными доменом.
Завершение настройки правила брандмауэра для рядового сервера
-
1. В области переходов редактора Group Policy Management Editor щелкните правой кнопкой мыши пункт Windows Firewall with Advanced Security - LDAP://cn={GUID},cn=policies,cn=system,DC=contoso,DC=com и выберите пункт Properties.
2. Установите параметру Firewall state значение On (recommended).
3. Установите параметру Inbound connections значение Block (default).
4. Установите параметру Outbound connections значение Allow (default).
5. В разделе Settings нажмите кнопку Customize.
6. Установите параметру Display a notification значение No.
7. Установите параметру Apply local firewall rules значение No.
8. Установите параметру Apply local connection security rules значение No.
9. Сохраните объект GPO, дважды нажав кнопку OK.
|
Далее мы развернем объект GPO на рядовом сервере.
Развертывание объекта GPO на рядовом сервере
-
1. Перейдите к оснастке Group Policy Management, щелкните правой кнопкой мыши пункт MyMemberServers и выберите вариант Link an existing GPO.
2. В диалоговом окне Select GPO выберите пункт Firewall Settings for WS2008 Servers и нажмите кнопку OK.
Теперь объект GPO назначен.
3. Запустите командную строку от имени администратора и выполните команду gpupdate /force. Дождитесь завершения работы команды.
4. Откройте оснастку брандмауэра ОС Windows в режиме повышенной безопасности.
5. В области переходов раскройте узел Monitoring и щелкните узел Firewall. Обратите внимание на то, что единственное активное правило — Allow Inbound Telnet, которое мы создали в объекте групповой политики.
|
Теперь мы протестируем правило, которое только что развернули.
Тестирование правила брандмауэра для службы Telnet
-
1. На компьютере CLIENT1 в командной строке от имени администратора введите команду telnet mbrsvr1 и нажмите клавишу ввода.
Через несколько секунд окно примет следующий вид, свидетельствующий о том, что правило брандмауэра для службы Telnet работает.
2. Завершите сессию Telnet, введя команду exit и нажав клавишу ввода.
|
Далее мы убедимся в том, что служба Telnet успешно работает не благодаря локальному правилу, созданному при ее установке на MBRSVR1. Мы отключим его и увидим, что служба не прекратила работу, поскольку правило из объекта групповой политики все еще действует.
Подтверждение того, что именно правило объекта GPO позволяет службе Telnet работать
-
1. На компьютере MBRSVR1 в оснастке Windows Firewall with Advanced Security в области переходов щелкните пункт Inbound Rules. Обратите внимание на то, что полученное из объекта GPO правило перечислено в самом верху.
2. Прокрутите список вниз до правила Telnet Server, щелкните его правой кнопкой мыши и выберите команду Disable rule.
3. На компьютере CLIENT1 в командной строке снова выполните команду telnet mbrsvr1. Команда вновь сработает.
4. Завершите сессию Telnet, введя команду exit и нажав клавишу ввода.
|
Наконец, мы покажем, что служба Telnet в состоянии прослушивать сетевой трафик на любом порту, как и указано в правиле.
Доказательство того, что правило брандмауэра разрешает трафик службы Telnet на указанном порту
-
1. На компьютере MBRSVR1 в командной строке от имени администратора введите команду tlntadmn config port=25 и нажмите клавишу ввода. Это настроит сервер Telnet на прослушивание порта 25 вместо 23 по умолчанию.
2. На компьютере CLIENT1 в командной строке введите команду telnet mbrsvr1 25. Это служит указанием клиентскому компьютеру использовать для подключения порт 25 вместо обычного 23.
Соединение успешно устанавливается.
|
В следующем разделе мы настроим правило на разрешение трафика только на указанном порту.
Шаг 3. Разрешение входящего трафика на указанном порту TCP или UDP
На предыдущем шаге мы создали правило, разрешающее незапрошенный входящий сетевой трафик службе Telnet Server. Куда лучше, однако, также ограничить разрешение теми портами TCP и (или) UDP, в которых служба действительно нуждается. В случае со службой Telnet это — TCP-порт 23.
Сейчас мы улучшим правило исключения для службы Telnet и ограничим разрешенный входящий трафик только TCP-портом 23.
Настройка правила на разрешение трафика только на указанном порту
-
1. На компьютере MBRSVR1 в редакторе Group Policy Management Editor серверного объекта GPO щелкните пункт Inbound Rules.
2. В области сведений щелкните правой кнопкой мыши пункт Allow Inbound Telnet и выберите пункт Properties.
3. Перейдите на вкладку Protocols and Ports.
4. В списке Protocol type (тип протокола) выберите вариант TCP. Обратите внимание на то, что вариант Protocol number (номер протокола) автоматически изменился на 6.
5. В списке Local port (локальный порт) выберите пункт Specific Ports (специальные порты).
6. В текстовом поле, находящемся непосредственно под строкой Local Port введите число 23.
7. Сохраните изменения, нажав кнопку OK.
|
Протестируем измененное правило.
Тестирование измененного правила
-
1. На компьютере MBRSVR1 в командной строке от имени администратора выполните команду gpupdate /force. Дождитесь завершения работы команды.
Служба Telnet на MBRSVR1 по-прежнему настроена на использование порта 25.
2. На компьютере CLIENT1 в командной строке выполните команду telnet mbrsvr1 25.
Время, отведенное на установление соединения, истечет, и попытка завершится неудачей, потому что брандмауэр компьютера MBRSVR1 теперь блокирует весь входящий трафик службы Telnet, не относящийся к порту 23.
3. На компьютере MBRSVR1 в командной строке от имени администратора выполните команду tlntadmn config port=23. Служба вернется к использованию порта по умолчанию.
4. На компьютере CLIENT1 в командной строке выполните команду telnet mbrsvr1.
Команда завершается удачно — брандмауэр пропускает входящий трафик службы Telnet на порту 23.
5. Завершите сессию Telnet, введя команду exit и нажав клавишу ввода.
|
Шаг 4. Разрешение входящего сетевого трафика, использующего динамический порт RPC
Многие программы используют протокол RPC для запроса соединений с хост-службой на динамически определяемом порту. Для этого удаленный клиент подключается к серверу на TCP-порту 125 (стандартный номер порта RPC) и указывает службу, к которой собирается подключиться. Служба сопоставителя конечных точек порта RPC, прослушивающая этот порт, отправляет в ответ номер порта, который клиенту надо использовать для соединения с требуемой службой.
В более ранних версиях ОС Windows динамически назначаемые порты были средством обратить внимание администраторов брандмауэров. Им приходилось либо создавать правила, разрешающие большие диапазоны портов в динамически назначаемой области (все порты с номерами больше 1024), либо ограничивать программу использованием куда меньшего количества портов, чем предполагалось ее создателями. Создание правил, открывающих большое количество не используемых в каждую секунду портов, увеличивало контактную зону компьютера и его уязвимость к атакам. Ограничение программ меньшим количеством портов сказывалось на их быстродействии. Ни то, ни другое решение назвать удачным было нельзя.
Примечание
Для определения того, использует ли программа динамически назначаемые службой RPC порты, обратитесь к ее документации. Другой вариант — изучить входящий и исходящий трафик программы с помощью анализатора сетевых протоколов, например сетевого монитора Microsoft. Загрузить его можно по адресу http://go.microsoft.com/fwlink/?LinkID=94770.
В ОС Windows Vista и Windows Server 2008 эта проблема решена введением правил, которые напрямую поддерживают требования программ к портам RPC. Введение такой поддержки для программы требует создания следующих правил.
• Правило входящих соединений, разрешающее входящий трафик службы RPC Endpoint Mapper (сопоставителя конечных точек RPC). Это правило разрешает компьютеру получение трафика, отправленного на порт 135. Правило должно содержать действие «разрешить» и путь к программе службы RPC Endpoint Mapper.
• Правило входящих соединений, где в качестве номера порта указано Dynamic RPC (динамический порт RPC). Когда служба сопоставителя конечных точек порта RPC получает входящий запрос от удаленного компьютера на порту 135 (см. предыдущее правило), она назначает запросу динамический номер порта и передает его в ответе удаленному компьютеру. IP-адрес этого компьютера и назначенный номер порта хранятся во внутренней таблице. Когда компьютер посылает пакет на новый номер порта, данное правило разрешает ОС Windows сопоставить этот номер порта и IP-адрес компьютера с записями в таблице. Если обнаруживается совпадение, входящий трафик разрешается.
Преимущество здесь состоит в том, что можно использовать любой порт в диапазоне временных портов RPC и не заботиться о создании правила, открывающего его. Порт доступен только для программы, назначенной сопоставителем конечных точек. Постоянно открытых неиспользуемых портов нет вообще, что снижает уязвимость сервера.
В этом разделе мы создадим правило службы удаленного журнала событий, использующей динамический порт RPC. Хотя в ОС Windows Vista и Windows Server 2008 есть предопределенные наборы правил, уже содержащие эту функциональность, мы создадим правило вручную и рассмотрим требуемые для этого шаги.
Для начала убедимся в том, что на данный момент служба удаленного журнала событий недоступна для клиента, поскольку брандмауэр компьютера MBRSVR1 блокирует ее трафик.
Подтверждение того, что служба удаленного журнала событий недоступна
-
1. На компьютере CLIENT1 нажмите кнопку Start, введите команду event viewer в поле Start Search и нажмите клавишу ввода.
2. В меню Action выберите команду Connect to another computer (подключиться к другому компьютеру).
3. В поле Another computer (другой компьютер) введите команду MBRSVR1 и нажмите кнопку OK.
4. Через несколько секунд попытка подключения завершится неудачей (см. рисунок), поскольку брандмауэр ОС Windows в режиме повышенной безопасности на компьютере MBRSVR1 блокирует необходимый сетевой трафик. Нажмите кнопку OK.
|
Для нормальной работы службы нужно сначала создать правило, поддерживающее входящий трафик службы сопоставителя конечных точек порта RPC.
Создание правила, разрешающего входящий трафик службы сопоставителя конечных точек порта RPC
-
1. На компьютере MBRSVR1 в редакторе Group Policy Management Editor серверного объекта GPO в области переходов щелкните правой кнопкой мыши пункт Inbound Rules и выберите команду New rule.
2. На странице Rule Type выберите пункт Custom и нажмите кнопку Next.
3. В поле ввода This program path введите команду %systemroot%\system32\svchost.exe.
4. Нажмите кнопку Customize, расположенную рядом с пунктом Services.
5. Выберите пункт Apply to this service, укажите службу Remote Procedure Call (RPC) (краткое имя RpcSs), нажмите кнопку OK и затем кнопку Next.
6. Получив предупреждение о конфликте с правилами ограниченного режима работы служб ОС Windows, нажмите кнопку Yes.
7. На странице Protocol and Ports для Protocol type укажите вариант TCP.
8. Для Local Port выберите RPC Endpoint Mapper и нажмите кнопку Next.
9. На странице Scope нажмите кнопку Next.
10. На странице Action нажмите кнопку Next.
11. На странице Profile снимите флажки Private и Public и нажмите кнопку Next.
12. На странице Name введите команду Allow RPC Endpoint Mapper и нажмите кнопку Finish.
|
Теперь создадим правило, разрешающее входящий трафик удаленного клиента журнала событий. Поскольку номер входящего порта назначается службой сопоставления конечных точек порта RPC динамически, в качестве номера порта укажем Dynamic RPC.
Примечание
Служба журнала событий в нашем примере расположена в файле %systemroot%\system32\svchost.exe. В рабочей среде всегда указывайте путь к исполняемому файлу, содержащему службу, для которой создаются правила.
Создание правила, разрешающего входящий трафик службы, использующей порт RPC
-
1. На компьютере MBRSVR1 в редакторе Group Policy Management Editor в области переходов щелкните правой кнопкой мыши пункт Inbound Rules и выберите команду New rule.
2. На странице Rule Type выберите пункт Custom и нажмите кнопку Next.
3. В поле This program path введите команду %systemroot%\system32\svchost.exe. Служба удаленного журнала событий — еще одна служба, расположенная в нем.
4. Нажмите кнопку Customize, расположенную рядом с пунктом Services.
5. Выберите пункт Apply to this service, укажите службу Windows Event Log (краткое имя Eventlog), нажмите кнопку OK и затем кнопку Next.
6. Получив предупреждение о конфликте с правилами ограниченного режима работы служб ОС Windows, нажмите кнопку Yes.
7. На странице Protocol and Ports для Protocol type укажите вариант TCP.
8. Для раздела Local Port выберите вариант Dynamic RPC и нажмите кнопку Next.
9. На странице Scope нажмите кнопку Next.
10. На странице Action нажмите кнопку Next.
11. На странице Profile снимите флажки Private и Public и нажмите кнопку Next.
12. На странице Name введите команду Allow Remote Event Log Service и нажмите кнопку Finish.
Теперь можно использовать этот объект GPO на компьютере MBRSVR1.
13. В командной строке от имени администратора выполните команду gpupdate /force. Дождитесь завершения работы команды.
14. Откройте оснастку брандмауэра ОС Windows в режиме повышенной безопасности, если она еще не открыта.
15. Разверните узел Monitoring, щелкните пункт Firewall и убедитесь в том, что новые правила перечислены среди активных.
|
Теперь можно попытаться снова соединиться со службой удаленного журнала событий с клиентского компьютера.
Подтверждение того, что служба удаленного журнала событий работает
-
1. На компьютере CLIENT1 перейдите к просмотру событий и в меню Action выберите команду Connect to another computer.
2. В поле Another computer (другой компьютер) введите имя MBRSVR1 и нажмите кнопку OK.
3. Попытка завершается успешно. Узел верхнего уровня в области переходов свидетельствует о том, что программа просмотра подключена к веб-узлу MBRSVR1.contoso.com.
4. Закройте просмотр событий.
|
Шаг 5. Просмотр журнала брандмауэра
Мы уже несколько раз подключались к серверу после того, как включили ведение журнала, и несколько раз подключение было заблокировано правилами брандмауэра. На этом шаге мы изучим имеющийся на данный момент журнал, а затем отключим его ведение.
Изучение журнала брандмауэра
-
1. На компьютере MBRSVR1 откройте оснастку брандмауэра ОС Windows в режиме повышенной безопасности, если она еще не открыта.
2. В области переходов щелкните пункт Monitoring. В разделе Logging Settings (параметры журнала) щелкните путь к файлу справа от надписи File name (имя файла). Журнал будет открыт в блокноте ОС Windows.
3. Изучите отображаемые записи. Их гораздо больше, чем мы создали своими действиями. Здесь отражены запросы службы DNS, подключения протокола NetBIOS и т.п.
4. Найдите строки, напоминающие приведенные ниже примеры. Нажмите клавиши CTRL+F. Откроется окно поиска, в котором следует ввести символы [пробел] 23 [пробел]. Обязательно включите пробелы, чтобы не находить число 23 внутри других чисел.
Значения, приведенные курсивом, могут отличаться от значений в журнале. Последний столбец здесь не отображен, но он часто представляет интерес, так как показывает, был ли пакет входящим (RECEIVE) или исходящим (SEND).
• Следующие записи отражают разрешенные подключения службы Telnet на портах 23 и 25:
2007-07-18 10:10:48 ALLOW TCP 192.168.0.101 192.168.0.100 52174 23
2007-07-18 10:15:54 ALLOW TCP 192.168.0.101 192.168.0.100 52175 25
• Следующая запись отражает заблокированное подключение службы Telnet на порту 25:
2007-07-18 10:28:28DROP TCP 192.168.0.101 192.168.0.100 52180 25
• Следующие записи отражают разрешенные подключения удаленного журнала событий:
2007-07-18 10:49:59 ALLOW TCP 192.168.0.101 192.168.0.100 52191 135
2007-07-18 10:50:00 ALLOW TCP 192.168.0.101 192.168.0.100 52192 49153
5. Закройте блокнот ОС Windows.
|
Примечание
При выявлении неполадок в рабочей среде можно импортировать журнал в приложение Microsoft Excel, где будет легко производить поиск, сортировку и фильтрацию записей. При импорте укажите в качестве разделителя символ пробела.
Включать ведение журнала следует только при необходимости, например при устранении неполадок. Нам журнал больше не нужен, поэтому отключим его.
Отключение ведения журнала брандмауэра
-
1. Переключитесь в редактор Group Policy Management Editor, где мы настраивали серверный объект GPO.
2. В области переходов щелкните правой кнопкой мыши пункт Windows Firewall with Advanced Security - LDAP://cn={GUID},cn=policies,cn=system,DC=contoso,DC=com и выберите пункт Properties.
3. На вкладке Domain Profile в разделе Logging нажмите кнопку Customize.
4. Выберите пункт No (default) в списке Log dropped packets.
5. Выберите пункт No (default) в списке Log successful connections.
6. Сохраните изменения, дважды нажав кнопку OK.
7. В командной строке от имени администратора выполните команду gpupdate /force. Дождитесь завершения работы команды.
|
|