Подготовка: доступ, роль сервера и точка отката
Microsoft Defender Firewall — это межсетевой экран Windows с отдельными настройками профилей Domain, Private и Public. Перед изменением зафиксируйте роль сервера, публикуемый сервис, протокол, локальный порт, разрешённые источники, необходимые исходящие зависимости и владельца правила. Для удалённого сервера сохраните отдельный аварийный канал управления: консоль гипервизора, BMC или согласованный локальный доступ.
Не потеряйте удалённый доступ
Команды ниже выполняйте в PowerShell от имени админис тратора. Модуль NetSecurity и рассматриваемые cmdlet документированы для Windows Server начиная с Windows Server 2012 и для клиентских Windows начиная с Windows 8; набор параметров и отдельные условия правила зависят от выпуска ОС и обновлений. Названия пунктов оснастки, доступные поля и поведение при централизованном управлении также могут отличаться. Для своей версии сверяйтесь с официальной документацией Microsoft: справочником модуля NetSecurity, документацией Microsoft Defender Firewall и руководством по журналированию firewall.
Зафиксируйте исходное состояние
Сохраните сведения, которые понадобятся для проверки и отката.
- 1Определите категорию подключенийВыполните
Get-NetConnectionProfile. ПолеNetworkCategoryпокажет категорию подключения:DomainAuthenticated,PrivateилиPublic. Для доменного профиля важно, что сервер действительно распознал доменную сеть, а не просто состоит в домене. - 2Посмотрите результирующие профилиВыполните
Get-NetFirewallProfile -PolicyStore ActiveStore. В результате проверьтеEnabled,DefaultInboundAction,DefaultOutboundAction, параметры журналирования и разрешение локального объединения правил.ActiveStoreпоказывает применённую, результирующую политику, а не только локальные настройки. - 3Экспортируйте локальную конфигурациюСоздайте каталог с ограниченным доступом и экспортируйте правила в файл
.wfw. Файл храните как артефакт изменения: он пригодится для сравнения или контролируемого отката. - 4Зафиксируйте план проверкиЗапишите IP-адрес тестового клиента, ожидаемый протокол и порт, время проверки и команду либо прикладной тест. Проверяйте правило именно с разрешённого и с неразрешённог о адреса, если это допустимо.
Get-NetConnectionProfileGet-NetFirewallProfile -PolicyStore ActiveStore | Format-List Name,Enabled,DefaultInboundAction,DefaultOutboundAction,AllowLocalPolicyMerge,AllowLocalIPsecPolicyMerge,LogFileName,LogMaxSizeKilobytes,LogDroppedPackets,LogSuccessfulConnectionsnetsh advfirewall export "C:\Backup\firewall-before.wfw"Профили Domain, Private и Public: включение и проверка
Профиль брандмауэра Windows определяет, какие параметры и правила применяются к подключению. Даже сервер, присоединённый к домену, может фактически использовать Public или Private, если Windows не распознала доменную сеть. Поэтому правило только для Domain не сработает на подключении с категорией Public.
Set-NetFirewallProfile -Profile Domain,Private,Public -Enabled TrueЛокальное правило и доменная политика — не одно и то же
ActiveStore содержит действующий результат после объединения применимых политик. Доменная GPO может задавать параметры профилей и доставлять правила, а также запрещать объединение локальных правил (AllowLocalPolicyMerge); фактическую категорию подключения проверяйте отдельно через Get-NetConnectionProfile. Если локальное объединение запрещено, созданное локально правило может существовать в PersistentStore, но не участвовать в активной политике. Изменения, которыми должна управлять организация, вносите в соответствующую GPO, а не обходите её локальным правилом.Как откры ть входящий TCP- или UDP-порт только нужным IP
Правило межсетевого экрана для серверной роли должно описывать реальный поток. Для входящего сервиса это обычно действие Allow, направление Inbound, TCP или UDP, локальный порт сервера и allowlist удалённых адресов. Не открывайте весь входящий трафик и не подменяйте список источников профилем Any, если сервис доступен только нескольким системам.
New-NetFirewallRule -DisplayName "App HTTPS from management subnet" -Description "TCP 443 only from approved management subnet" -Direction Inbound -Action Allow -Protocol TCP -LocalPort 443 -RemoteAddress "192.0.2.0/24","198.51.100.25" -Profile Domain -Enabled TrueNew-NetFirewallRule -DisplayName "Telemetry UDP from collector" -Description "UDP telemetry from collector only" -Direction Inbound -Action Allow -Protocol UDP -LocalPort 514 -RemoteAddress "192.0.2.40" -Profile Domain -Enabled TrueGet-NetFirewallRule -DisplayName "App HTTPS from management subnet" -PolicyStore ActiveStore | Format-List DisplayName,Enabled,Direction,Action,Profile,PolicyStoreSourceType; Get-NetFirewallRule -DisplayName "App HTTPS from management subnet" -PolicyStore ActiveStore | Get-NetFirewallPortFilter | Format-List Protocol,LocalPort,RemotePort; Get-NetFirewallRule -DisplayName "App HTTPS from management subnet" -PolicyStore ActiveStore | Get-NetFirewallAddressFilter | Format-List LocalAddress,RemoteAddressДл я IPv6 добавляйте в -RemoteAddress конкретные IPv6-адреса или префиксы, необходимые вашему сервису. Не считайте IPv4-правило автоматической защитой IPv6-пути: проверяйте оба семейства адресов, если интерфейс и приложение используют IPv6.
Правило для программы и блокировка IP
Правило порта разрешает или блокирует поток по сетевым условиям независимо от исполняемого файла. Правило программы сопоставляет трафик с путём конкретного .exe; оно уместно, когда доступ нужен одному процессу, а не всем приложениям, использующим порт. Путь должен быть стабильным и соответствовать фактически запускаемому процессу. Условия программы, службы, интерфейса, типа интерфейса, адресов, протоколов и портов поддерживаются в разных сочетаниях в зависимости от версии Windows и типа правила.
New-NetFirewallRule -DisplayName "Allow Contoso agent outbound" -Description "Outbound access for approved agent executable" -Direction Outbound -Action Allow -Program "C:\Program Files\Contoso\agent.exe" -RemoteAddress "198.51.100.30" -Profile Domain -Enabled TrueNew-NetFirewallRule -DisplayName "Block Legacy updater outbound" -Description "Block outbound traffic from retired updater executable" -Direction Outbound -Action Block -Program "C:\Program Files\LegacyUpdater\updater.exe" -Profile Domain -Enabled TrueNew-NetFirewallRule -DisplayName "Block inbound from suspicious host" -Description "Temporary documented block for one remote address" -Direction Inbound -Action Block -RemoteAddress "203.0.113.77" -Profile Domain,Private,Public -Enabled TrueGet-NetFirewallRule -DisplayName "Allow Contoso agent outbound" -PolicyStore ActiveStore | Get-NetFirewallApplicationFilter | Format-List Program,Package,ServiceВходящие и исходящие правила: разные решения
Входящее разрешение определяет, кто может начать соединение с сервисом сервера. Оно не разрешает приложению самого сервера инициировать подключения наружу. Исходящий доступ определяется политикой активного профиля, исходящими правилами и применённой GPO. При фильтрации исходящего трафика сначала опишите зависимости роли: DNS, обновления, каталог, прокси, API, лицензирование, мониторинг и другие фактические назначения.
Порт называется локальным или удалённым относительно защищаемого сервера.
| Задача | Направление | Типичный параметр порта | Пример |
|---|---|---|---|
| Опубликовать сервис на сервере | Inbound | -LocalPort | Разрешить TCP/443 от подсети обратного прокси |
| Разрешить приложению обратиться к внешнему API | Outbound | -RemotePort | Разрешить программе TCP/443 к IP API |
| Запретить серверу обращаться к назначению | Outbound | Адрес и при необходимости -RemotePort | Заблокировать TCP/443 к конкретному IP |
New-NetFirewallRule -DisplayName "Block outbound to retired endpoint" -Description "Block TCP 443 to retired endpoint" -Direction Outbound -Action Block -Protocol TCP -RemoteAddress "203.0.113.90" -RemotePort 443 -Profile Domain -Enabled TrueNew-NetFirewallRule -DisplayName "Allow outbound DNS to resolvers" -Description "DNS only to approved resolvers" -Direction Outbound -Action Allow -Protocol UDP -RemoteAddress "192.0.2.53","192.0.2.54" -RemotePort 53 -Profile Domain -Enabled TrueРазрешение при исходящем запрете
Управление правилами через PowerShell и оснастку
Для повторяемой настройки Windows Firewall PowerShell удобнее: правило получает устойчивое имя, описание и проверяется теми же командами. Не полагайтесь только на отображаемое имя, если в среде допускаются дубликаты: в автоматизации полезно хранить соглашение об именовании и описание с владельцем или номером изменения.
Get-NetFirewallRule -PolicyStore ActiveStore | Where-Object DisplayName -like "*HTTPS*" | Select-Object DisplayName,Enabled,Direction,Action,Profile,PolicyStoreSourceTypeDisable-NetFirewallRule -DisplayName "Block inbound from suspicious host"Enable-NetFirewallRule -DisplayName "Block inbound from suspicious host"Remove-NetFirewallRule -DisplayName "Block inbound from suspicious host"Создание правила через оснастку с расширенной безопасностью
GUI и PowerShell изменяют одну политику, но на управляемом сервере результат всё равно проверяйте в ActiveStore.
- 1Откройте оснасткуОткройте компонент Microsoft Defender Firewall with Advanced Security, обычно через
wf.msc. Выберите «Входящие правила» или «Исходящие правила» в зависимости от потока. - 2Выберите тип и условияДля сетевого сервиса создайте правило типа Port, выберите TCP или UDP, задайте нужный локальный либо удалённый порт согласно направлению. Для одного исполняемого файла выберите Program и укажите полный путь к нему.
- 3Ограничьте областьВ свойствах правила на вкладке Scope задайте Remote IP addresses: отдельные адреса или необходимые подсети. При необходимости настройте интерфейс, профиль или службу, если эти условия доступны и подтверждены вашей конфигурацией.
- 4Назначьте действие и профильВыберите Allow или Block, отметьте только применимые профили и сохраните понятное имя с описанием. Затем подтвердите параметры через
Get-NetFirewallRuleи связанные фильтры PowerShell.
Почему allow и block не образуют последовательность правил
Не переносите на Windows модель последовательного обхода цепочки из iptables. Для Microsoft Defender Firewall Microsoft документирует, что явное блокирующее правило имеет приоритет над конфликтующим разрешающим правилом; разрешающее правило может разрешить трафик, который иначе был бы запрещён действием профиля по умолчанию. Исключения, включая правила защищённых служб и настройки, заданные политикой, нужно оценивать по результирующей политике конкретного хоста.
При конфликте сначала найдите совпадающее block-правило по направлению, протоколу, адресам, портам, программе и профилю. Затем проверьте его источник через PolicyStoreSourceType и параметры профиля в ActiveStore. Не пытайтесь «поставить allow выше»: порядок обработки правил у Microsoft Defender Firewall не является пользовательским списком с порядком строк.
Журнал Windows Firewall: отброшенные пакеты и успешные подключения
Журналирование профиля помогает подтвердить, что пакет был отброшен или разрешён межсетевым экраном. Включайте запись успешных подключений (LogSuccessfulConnections) только на время диагностики или при обоснованной потребности: она может заметно увеличить объём журнала. Локальный файл firewall — не замена аудиту действий администратора, Windows Security Event Log и централизованному сбору журналов.
Set-NetFirewallProfile -Profile Domain -LogDroppedPackets True -LogSuccessfulConnections False -LogFileName "%systemroot%\system32\LogFiles\Firewall\pfirewall.log" -LogMaxSizeKilobytes 16384Set-NetFirewallProfile -Profile Domain -LogSuccessfulConnections TrueGet-NetFirewallProfile -Profile Domain -PolicyStore ActiveStore | Format-List Name,LogDroppedPackets,LogSuccessfulConnections,LogFileName,LogMaxSizeKilobytesПуть к файлу задаётся параметром -LogFileName, размер — -LogMaxSizeKilobytes. Каталог должен существовать, а служба брандмауэра должна иметь возможность записывать в него; иначе журнал может не создаваться или не обновляться. Не размещайте такой файл на произвольной сетевой шаре и не ослабляйте ACL каталога только ради записи: сначала используйте штатный локальный путь либо согласованный защищённый каталог.
Get-Content "$env:SystemRoot\System32\LogFiles\Firewall\pfirewall.log" -Tail 100Как интерпретировать запись
DROP с ожидаемыми датой и временем, а также пятёркой параметров потока — протоколом, исходными IP и портом, целевыми IP и портом — подтверждает, что пакет отброшен firewall. Отсутствие строки не доказывает, что firewall разрешил поток: проверьте активный профиль, путь журнала, факт теста и то, достиг ли пакет хоста. Детальная настройка Security Event Log, Advanced Audit Policy и журналов PowerShell рассматривается в статье «Аудит Windows Server».Windows Firewall: правило не работает
Проверка только условий firewall
Эта последовательность отделяет проблему политики брандмауэра от проблем маршрутизации, DNS, службы и сетевой инфраструктуры.
- 1Подтвердите профиль и включение firewallСопоставьте
Get-NetConnectionProfileсGet-NetFirewallProfile -PolicyStore ActiveStore. Если соединение Public, а правило создано только для Domain, добавьте нужный профиль после проверки, почему сеть классифицирована иначе. - 2Проверьте правило в ActiveStoreУбедитесь, что правило включено (
Enabled = True), имеет нужныеDirection,ActionиProfile, а егоPolicyStoreSourceTypeсоответствует ожидаемому источнику. Существование правила только в PersistentStore не означает, что оно применяется. - 3Проверьте фильтрыЧерез
Get-NetFirewallPortFilter,Get-NetFirewallAddressFilterиGet-NetFirewallApplicationFilterсравните протокол, локальный или удалённый порт, IP-адреса и путь программы с реальным потоком. Частая ошибка — указатьRemotePortдля входящего сервиса вместоLocalPort. - 4Ищите конфликтующую блокировкуНайдите активные block-правила, которые могут совпадать с потоком. Явное блокирующее правило имеет приоритет над конфликтующим разрешением.
- 5Проверьте GPOСравните
PersistentStoreиActiveStore, проверьте источник политики и выполнитеgpresultдля просмотра применённых объектов Group Policy. Если локальное объединение правил отключено, исправляйте доменную политику вместе с её владельцем. - 6Сопоставьте с журналом и повторите тестВключите
LogDroppedPackets, повторите подключение с известного клиента и найдите записьDROP. При необходимости кратковременно включитеLogSuccessfulConnectionsи снова выполните тест.
Get-NetFirewallRule -PolicyStore ActiveStore | Where-Object { $_.Enabled -eq 'True' -and $_.Action -eq 'Block' } | Select-Object DisplayName,Direction,Profile,PolicyStoreSourceTypegpresult /scope computer /rПроблема
Порт всё ещё недоступен после создания allow-правила
Возможные причины
- Выбран неверный профиль Domain, Private или Public.
- Правило выключено, задано для другого направления либо использует LocalPort вместо нужного RemotePort или наоборот.
- Адрес клиента не входит в allowlist, протокол не совпадает или правило программы указывает иной путь.
- Есть совпадающее block-правило.
- Доменная GPO задаёт другую политику или запрещает объединение локальных правил.
Решение
Проверьте NetworkCategory, ActiveStore, состояние правила и связанные фильтры. Устраните конфликтующее блокирующее правило только после подтверждения его назначения либо внесите изменение в управляющую GPO. Повторите тест с известного IP и проверьте строку журнала.
Как избежать
Именуйте правила по роли и направлению, фиксируйте допустимые источники и проверяйте ActiveStore после каждого изменения.
Если firewall не фиксирует блокировку и активная политика соответствует ожидаемой, причина может находиться вне этой статьи: служба не слушает порт, приложение отклоняет запрос, неверны маршрут или DNS, трафик фильтруется сетевым устройством либо клиент обращается по другому адресу. Это не повод отключать все профили Microsoft Defender Firewall; диагностику сети продолжайте в материалах кластера networking.
Экспорт, импорт и сброс политики Windows Firewall
Экспорт и импорт через netsh advfirewall работают с файлом политики .wfw. Это средство для контролируемого переноса или отката локальной конфигурации, а не для незаметного обхода доменного управления. После импорта обязательно проверьте ActiveStore: доменные GPO могут снова применить управляемые параметры.
netsh advfirewall export "C:\Backup\firewall-before-change.wfw"Импорт заменяет текущую локальную политику
netsh advfirewall import "C:\Backup\firewall-before-change.wfw"Сброс Windows Firewall к значениям по умолчанию
netsh advfirewall reset удаляет локальные настройки политики и восстанавливает значения по умолчанию. Это допустимо лишь как согласованная мера восстановления на некритичном или контролируемом хосте, когда есть экспорт, консольный доступ и понимание последствий для сервисов. Не используйте сброс как обычный способ «починить порт».netsh advfirewall resetНастройка firewall — только один слой политики межсетевого экрана. Базовые настройки Windows Server, локальные политики и GPO рассматриваются в статье «Hardening Windows Server 2019, 2022 и 2025»; сегментация, VPN и bastion host — в материале о сегментации серверной сети.
Термины в статье
- Microsoft Defender Firewall
- Microsoft Defender Firewall — встроенный в Windows межсетевой экран, фильтрующий входящие и исходящие соединения по правилам, профилям сети и параметрам трафика.
- Межсетевой экран
- Межсетевой экран — средство контроля сетевого трафика, разрешающее или блокирующее его по правилам на границе или между сегментами сети.
- Межсетевой экран с отслеживанием состояния
- Межсетевой экран с отслеживанием состояния — межсетевой экран, который сопоставляет пакеты с состоянием отслеживаемых соединений и потоков и применяет правила с учётом их контекста.
- Пересылка событий Windows
- Пересылка событий Windows — механизм доставки записей журналов Windows с источников на сервер-коллектор по подпискам, без установки отдельного агента сбора.
- Политика межсетевого экрана
- Политика межсетевого экрана — набор правил обработки сетевого трафика, определяющий разрешённые и запрещённые взаимодействия между зонами, узлами, серв исами и интерфейсами.
- Порядок обработки правил
- Порядок обработки правил — механизм определения последовательности проверки правил политики, от которой зависит, какое совпавшее правило применит система безопасности.
- Правило межсетевого экрана
- Правило межсетевого экрана — элемент политики фильтрации, задающий условия сопоставления трафика и действие над пакетами или соединениями.
- Профиль брандмауэра Windows
- Профиль брандмауэра Windows — набор параметров и правил, применяемых к сетевому подключению в зависимости от категории сети: доменной, частной или общедоступной.
- Расширенная политика аудита
- Расширенная политика аудита — механизм Windows, задающий детальные подкатегории аудита безопасности вместо общих категорий базовой политики аудита.
- Фильтрация исходящего трафика
- Фильтрация исходящего трафика — контроль соединений из защищаемой сети наружу, ограничивающий разрешённые назначения, протоколы, сервисы и источники исходящих пакетов.
- Фильтрация пакетов
- Фильтрация пакетов — способ контроля сетевого трафика по полям пакета и правилам, при необходимости дополненный отслеживанием состояния соединений.
