🌐 К маю 2026 года безопасность Windows ушла в облако, декларативные манифесты и EDR-аналитику. Но netsh advfirewall не сдался. Он остался в глухих контурах, на legacy-серверах, в скриптах, которые боятся трогать. Это не архаизм. Это скальпель. Им можно аккуратно снять воспаление, а можно вскрыть артерию. Риск — средний. Но только если ты знаешь, где нажимаешь. Ниже — карта местности. Без воды. С готовыми командами, которые работают.
📦 Часть 1. Первые шаги: как не спалить мост
💡 Если ты открываешь консоль впервые — дыши ровно. Мы не ломать будем. Мы учиться.
🖥️ Запуск.
Win + X → Терминал (Администратор). Без прав админа команды просто уйдут в никуда.
🌐 Куда ты попал?
netsh advfirewall monitor show currentprofile
Увидишь Domain, Private или Public. Это не ярлыки. Это границы доверия. Domain — корпоративный периметр. Private — твой дом или офис без домена. Public — кафе, вокзал, зона максимальной паранойи.
🧪 Правило в спячке.
Не включай сразу. Создай, но заморозь:
netsh advfirewall firewall add rule name="Учебный_Веб_Сервер" dir=in action=allow protocol=TCP localport=3000 profile=private enable=no description="Тест для dev-server"
🔍 Разбор: name — визитка правила, dir=in — вход, allow — пропуск, localport — дверь, enable=no — пока закрыто, description — напоминание себе.
✅ Включить.
Когда проверил — разблокируй:
netsh advfirewall firewall set rule name="Учебный_Веб_Сервер" new enable=yes
🗑️ Удалить.
Ошибся? Сотрем:
netsh advfirewall firewall delete rule name="Учебный_Веб_Сервер"
Ты только что создал, проверил и убрал правило. Система цела.
🔵 Часть 2. Анатомия команды: где прячется сила и подвох
🔄 Почему currentprofile — это лотерея.
Он меняется вместе с сетью. Ноутбук в офисе — Domain. Дома — Public. Правило, привязанное к текущему профилю, не переезжает. В 2026 году Microsoft говорит прямо: указывай профиль руками.
- netsh advfirewall set domainprofile state on
- netsh advfirewall set privateprofile firewallpolicy blockinbound,allowoutbound
- netsh advfirewall set publicprofile logging droppedconnections enable
📦 Параметры, которые решают исход боя.
📌 remoteip=10.0.0.0/8,192.168.1.0/24 → только свои. Zero Trust в действии.
📌 program="C:\Apps\myapp.exe" → привязка к файлу, не к порту. Защита от перехвата.
📌 security=authdynenc → требует IPsec. Для контуров с compliance.
📌 interfacetype=lan/wireless/remoteaccess → фильтрует по типу адаптера.
📌 edge=yes/no → для пограничных серверов. DMZ и reverse-proxy любят это.
⚠️ netsh не проверяет путь к program=. Файла нет — правило повиснет в воздухе. Проверяй заранее.
🎛️ Как Windows принимает решения.
📌 Конкретика побеждает абстракцию. Чем уже IP/порт/программа — тем сильнее правило.
📌 При равных условиях block глушит allow.
📌 GPO всегда переписывает локальное.
📌 profile=any — удобно, но маскирует конфликты.
📦 Часть 3. Когда молчит firewall: диагностика без паники
🔴 Правило есть, порт закрыт. 🟡 Сигнал не проходит. 🔍 Профиль не совпал, интерфейс другой, или enable=no. ✅ Укажи профиль явно, добавь interfacetype, включи правило. 🛠 netsh advfirewall firewall show rule name="..." verbose
🔴 Allow и Block дерутся в тишине. 🟡 Трафик то есть, то нет. 🔍 Два правила на один порт, разные источники. ✅ Убери дубли, раздели через security=authdynenc. 🛠 Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*8080*"}
🔴 Правило испарилось после reboot. 🟡 Команда сработала, перезагрузка — чисто. 🔍 Домен, GPO перезаписала store. ✅ Не трогай доменные машины netsh. Работай через GPO или Intune. 🛠 gpresult /h fw_report.html
🔴 CPU брандмауэра в красной зоне. 🟡 mpssvc грузит систему. 🔍 remoteip=any везде, логи не выключены, дубли правил. ✅ Сузь источники, отключи логирование, почисти хвосты. 🛠 Get-Counter "\Windows Firewall\Rules Processed/sec"
🔴 Доступ запрещён, хотя правило зелёное. 🟡 Таймаут или отказ. 🔍 Defender Network Protection стоит выше брандмауэра, сервис работает под ограниченным аккаунтом. ✅ Сверь EDR-политики, проверь учётку службы, добавь program=. 🛠 Event Viewer → Defender → Operational.
🧰 Три команды для мгновенной сверки.
- netsh advfirewall firewall show rule name=all verbose > C:\temp\fw_dump.txt
- netsh advfirewall set currentprofile logging filename C:\temp\fw_test.log maxfilesize 4096 droppedconnections enable allowedconnections enable
- type C:\temp\fw_test.log | findstr "8080"
Не забудь выключить логирование. Диск не резиновый.
✅ ПОДПИСКА, ❤️ ЛАЙК, 🔄 РЕПОСТ друзьям, 💰 ДОНАТ на сбер по QR 👇
💰ПОДДЕРЖКА АВТОРА КАНАЛА КОПЕЙКОЙ - ДЕЛО ДОБРОВОЛЬНОЕ💰
📦 Часть 4. Автоматизация: от ручных заклинаний к пайплайнам
🐳 WSL2 и Docker: где ломается логика.
Виртуальный коммутатор vEthernet (WSL) — отдельная сеть для Windows.
netsh advfirewall firewall add rule name="WSL2_DevServer_8000" dir=in action=allow protocol=TCP localport=8000 remoteip=172.16.0.0/12 profile=private interfacetype=lan description="WSL2 port forwarding"
💡 127.0.0.1 здесь не работает. WSL2 живёт за NAT. Указывай подсеть или интерфейс.
⚙️ Идемпотентность в CI/CD.
add rule не любит повторений. Второй запуск — ошибка. Паттерн для GitHub/GitLab:
- netsh advfirewall firewall delete rule name="App_API_5000" 2>nul
- netsh advfirewall firewall add rule name="App_API_5000" dir=in action=allow protocol=TCP localport=5000 profile=domain,private enable=no
- netsh advfirewall firewall set rule name="App_API_5000" new enable=yes
📦 IaC и Ansible.
📌 Ansible → win_firewall (обёртка, security= требует raw).
📌 Terraform → нативной поддержки нет, генерируй .wfw или null_resource.
📌 Packer → правила в privateprofile могут сгореть при Sysprep. Версионируй манифесты. Связывай с CMDB через description.
🤖 Аудит конфликтов в пайплайне.
$rules = Get-NetFirewallRule -Direction Inbound -Enabled True
$ports = Get-NetFirewallPortFilter -AssociatedNetFirewallRule $rules
$conflicts = @()
foreach ($r in $rules) {
$p = $ports | Where-Object { $_.InstanceID -eq $r.InstanceID }
if ($p.LocalPort -match "\d+") {
$overlap = $rules | Where-Object { $_.DisplayName -ne $r.DisplayName -and $_.Direction -eq $r.Direction -and ($_.Profile -band $r.Profile) -ne 0 -and (Get-NetFirewallPortFilter -AssociatedNetFirewallRule $_).LocalPort -eq $p.LocalPort }
if ($overlap) { $conflicts += $r.DisplayName }
}
}
if ($conflicts.Count -gt 0) { Write-Error "Конфликты: $($conflicts -join ', ')" ; exit 1 }
Write-Host "Правила чисты. Продолжаем деплой." -ForegroundColor Green
✅ Чек-лист перед боем
📋 Профиль указан явно. currentprofile — только в staging.
📋 Правило создано с enable=no. Проверено логами 10–15 минут.
📋 Конфликты проверены. Скрипт или ручной аудит пройден.
📋 GPO-наследование сверено. Intune Compliance не ругается.
📋 Логирование выключено после теста.
📋 Откат готов. delete rule или .wfw бэкап под рукой.
📋 Правило задокументировано. Владелец, дата, задача, срок пересмотра ≤90 дней.
📋 Смежные команды уведомлены.
📋 В CI/CD: dry-run, проверка идемпотентности, авто-откат при fail.
🔮 Куда дует ветер: 2026–2028
📌 Новые среды → New-NetFirewallRule, Intune Baselines, Defender Adaptive Rules.
📌 Legacy → оборачивай netsh в PowerShell, валидируй, логируй.
📌 Compliance → декларативные политики, drift-детект, ETW в SIEM.
📌 Air-gap/КИИ → netsh допустим, но только с ручным аудитом и изолированным стендом.
📈 К концу 2026 года в Windows 11 25H2 и Server 2025 может появиться флаг EnableLegacyNetshFirewall=1. Готовь миграционные плейбуки. Фоллбэки тестируй заранее.
🏁 Финал
netsh advfirewall в 2026 — не музейный экспонат. Это точный инструмент. Риск средний только при дисциплине. Без dry-run, без аудита, без отката — риск становится критическим. Для новых сред бери PowerShell или манифесты. Для старых — оборачивай, проверяй, синхронизируй с GPO и EDR. Точность брандмауэра измеряется не числом команд, а качеством их проверки.
📢 Оставайся на канале. Здесь разбираем сетевую безопасность, автоматизацию Windows и DevOps-паттерны без маркетинговой шелухи.
💬 Поставь лайк, если гайд сэкономил часы отладки. Пересылай коллегам, которым пригодится чёткая инструкция без воды.
#netsh #windowsfirewall #брандмауэрwindows #настройкабрандмауэра #администрированиеwindows #devops #sysadmin #сетеваябезопасность #кибербезопасность #firewallrules #netshadvfirewall #windows11 #windowsserver #информационнаябезопасность #автоматизация #cicd #ansible #powershell #инфраструктура #itбезопасность #конфликтправил #troubleshooting #zerotrust #mssp #siem #edr #gpo #intune #itгайд #технологии2026