Windows firewall netsh advfirewall firewall

Содержание
  1. Использование брандмауэра netsh advfirewall вместо netsh-брандмауэра для управления поведением брандмауэра Windows
  2. Аннотация
  3. Пример команды 1. Включить программу
  4. Пример команды 2. Включить порт
  5. Пример команды 3. Удаление включенных программ или портов
  6. Пример команды 4. Настройка параметров ICMP
  7. Пример команды 5. Настройка ведения журнала
  8. Пример команды 6. Включить брандмауэр Windows
  9. Пример команды 7. Восстановление политик по умолчанию
  10. Пример команды 8. Включить определенные службы
  11. Настройка брандмауэра Windows из командной строки cmd
  12. Выключение и включение
  13. Разрешение протоколов
  14. Закрытие и открытие портов
  15. Ограничения по IP адресам
  16. Правила для приложений
  17. Комбинирования параметров
  18. Enable/disable firewall from command line
  19. Windows 10 / Windows 8/ Windows 7 / Server 2008 /Vista:
  20. Domain network
  21. Private network
  22. Public network
  23. Configure for all networks
  24. Older Windows versions – XP / Server 2003:
  25. Управление правилами Windows Firewall с помощью PowerShell
  26. Управление сетевыми профилями брандмауэра Windows из PowerShell
  27. Создание, редактирование и удаление правил Windows Firewall из PowerShell
  28. Вывод правил Windows Firewall через PowerShell

Использование брандмауэра netsh advfirewall вместо netsh-брандмауэра для управления поведением брандмауэра Windows

В этой статье описывается использование контекста брандмауэра вместо контекста для управления поведением netsh advfirewall netsh firewall брандмауэра Windows.

Исходная версия продукта: Windows Server 2012 R2
Исходный номер КБ: 947709

Аннотация

Контекст netsh advfirewall командной строки брандмауэра доступен в Windows Server 2012 R2. Этот контекст предоставляет функциональные возможности для управления поведением брандмауэра Windows, которое было предоставлено контекстом netsh firewall брандмауэра.

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

Контекст командной строки может быть неподготовлен в netsh firewall будущей версии операционной системы Windows. Для управления поведением брандмауэра рекомендуется использовать контекст netsh advfirewall брандмауэра.

Если вы входите в группу «Администраторы» и на компьютере включен контроль учетных записей пользователей, запустите команды из командной подсказки с повышенными разрешениями. Чтобы запустить командную подсказку с повышенными разрешениями, найдите значок или запись меню «Пуск», которая используется для запуска сеанса командной подсказки, щелкните ее правой кнопкой мыши и выберите команду «Запуск от прав администратора».

В следующих таблицах предоставляются некоторые примеры часто используемых команд. Эти примеры помогут перейти с старого контекста на новый контекст netsh firewall netsh advfirewall брандмауэра.

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

Пример команды 1. Включить программу

Старая команда Новая команда
netsh firewall add allowedprogram C:\MyApp\MyApp.exe «My Application» ENABLE netsh advfirewall firewall add rule name=»My Application» dir=in action=allow program=»C:\MyApp\MyApp.exe» enable=yes
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name=»My Application» mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=Domain netsh advfirewall firewall add rule name=»My Application» dir=in action=allow program= «C:\MyApp\MyApp.exe» enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain
netsh firewall add allowedprogram program=C:\MyApp\MyApp.exe name=»My Application» mode=ENABLE scope=CUSTOM addresses=157.60.0.1,172.16.0.0/16,LocalSubnet profile=ALL Выполните следующие команды:
netsh advfirewall firewall add rule name=»My Application» dir=in action=allow program= «C:\MyApp\MyApp.exe» enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=domain
netsh advfirewall firewall add rule name=»My Application» dir=in action=allow program=»C:\MyApp\MyApp.exe» enable=yes remoteip=157.60.0.1,172.16.0.0/16,LocalSubnet profile=private

Для получения дополнительных сведений о добавлении правил брандмауэра запустите следующую команду:

Пример команды 2. Включить порт

Старая команда Новая команда
netsh firewall add portopening TCP 80 «Open Port 80» netsh advfirewall firewall add rule name= «Open Port 80» dir=in action=allow protocol=TCP localport=80

Для получения дополнительных сведений о добавлении правил брандмауэра запустите следующую команду:

Пример команды 3. Удаление включенных программ или портов

Старая команда Новая команда
netsh firewall delete allowedprogram C:\MyApp\MyApp.exe netsh advfirewall firewall delete rule name= rule name program=»C:\MyApp\MyApp.exe»
delete portopening protocol=UDP port=500 netsh advfirewall firewall delete rule name= rule name protocol=udp localport=500

Для получения дополнительных сведений об удалении правил брандмауэра запустите следующую команду:

Пример команды 4. Настройка параметров ICMP

Старая команда Новая команда
netsh firewall set icmpsetting 8 netsh advfirewall firewall add rule name=»ICMP Allow incoming V4 echo request» protocol=icmpv4:8,any dir=in action=allow
netsh firewall set icmpsetting type=ALL mode=enable netsh advfirewall firewall add rule name= «All ICMP V4» protocol=icmpv4:any,any dir=in action=allow
netsh firewall set icmpsetting 13 disable all netsh advfirewall firewall add rule name=»Block Type 13 ICMP V4″ protocol=icmpv4:13,any dir=in action=block

Для получения дополнительных сведений о настройке параметров ICMP запустите следующую команду:

Пример команды 5. Настройка ведения журнала

Старая команда Новая команда
netsh firewall set logging %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 ENABLE ENABLE Выполните следующие команды:
netsh advfirewall set currentprofile logging filename %systemroot%\system32\LogFiles\Firewall\pfirewall.log
netsh advfirewall set currentprofile logging maxfilesize 4096
netsh advfirewall set currentprofile logging droppedconnections enable
netsh advfirewall set currentprofile logging allowedconnections enable

Для получения дополнительных сведений запустите следующую команду:

Если вы хотите настроить ведение журнала для определенного профиля, используйте один из следующих параметров вместо currentprofile параметра:

  • Domainprofile
  • Privateprofile
  • Publicprofile

Пример команды 6. Включить брандмауэр Windows

Старая команда Новая команда
netsh firewall set opmode ENABLE netsh advfirewall set currentprofile state on
netsh firewall set opmode mode=ENABLE exceptions=enable Выполните следующие команды:
Netsh advfirewall set currentprofile state on
netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
netsh firewall set opmode mode=enable exceptions=disable profile=domain Выполните следующие команды:
Netsh advfirewall set domainprofile state on
netsh advfirewall set domainprofile firewallpolicy blockinbound,allowoutbound
netsh firewall set opmode mode=enable profile=ALL Выполните следующие команды:
netsh advfirewall set domainprofile state on
netsh advfirewall set privateprofile state on

Для получения дополнительных сведений запустите следующую команду:

Если вы хотите установить состояние брандмауэра для определенного профиля, используйте один из следующих параметров вместо currentprofile параметра:

  • Domainprofile
  • Privateprofile
  • Publicprofile

Пример команды 7. Восстановление политик по умолчанию

Старая команда Новая команда
netsh firewall reset netsh advfirewall reset

Для получения дополнительных сведений запустите следующую команду:

Пример команды 8. Включить определенные службы

Старая команда Новая команда
netsh firewall set service FileAndPrint netsh advfirewall firewall set rule group=»File and Printer Sharing» new enable=Yes
netsh firewall set service RemoteDesktop enable netsh advfirewall firewall set rule group=»remote desktop» new enable=Yes
netsh firewall set service RemoteDesktop enable profile=ALL Выполните следующие команды:

netsh advfirewall firewall set rule group=»remote desktop» new enable=Yes profile=domain

Настройка брандмауэра Windows из командной строки cmd

Брандмауэром Windows можно управлять не только привычным всем способом — через окна панели управления. Командная строка Windows так же имеет команды для управления собственным файрволом операционной системы Microsoft.

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

Рассмотрим подробнее какие команды есть для настройки брандмауэра Windows из командной строки CMD.

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

Выключение и включение

Выключение сетевых профилей:

Включение сетевых профилей:

Запрет всех входящих соединений и разрешение исходящих:

Разрешение протоколов

Следующее правило принимает входящий трафик по ICMP-протоколу, проще говоря разрешает ping:

Закрытие и открытие портов

Разрешение входящих протоколов TCP и UDP на 80 порт:

Запрет входящих протоколов на 80 порт:

Открыть диапозон портов для исходящего UDP трафика

Удаление правил по имени

Ограничения по IP адресам

правило ограничивающие подключение одно ip-адреса

Ограничение подключений с диапазона ip-адресов или сетей.

Правила для приложений

Разрешить соединения для программы MyApp.exe

Комбинирования параметров

Можно использовать длинные выражения путем комбинирования сразу нескольких параметров:

Мы создали правило, которое разрешает входящие соединения к приложению MyApp из сетей с ip-адресами 157.60.0.1,172.16.0.0/16 и доменным профилем сетевого подключения.

На официальном сайте Microsoft можно ознакомится с примерами сравнения старого контекста Windows XP и нового, который начал использоваться в Windows 7.

Enable/disable firewall from command line

Windows firewall can be enabled/disabled from command line using netsh command.

Windows 10 / Windows 8/ Windows 7 / Server 2008 /Vista:

Let’s see the syntax of netsh advfirewall to configure firewall on these Windows versions. Firewall settings are different for each of the 3 networks(Domain, private, public). So based on which network firewall you want to enable/disable, the command would vary.

You can turn on firewall for the current network profile(does not matter if it’s domain/private/public network) using the below command.

Turn off firewall for the current profile:

These commands should be run from an elevated administrator command prompt. Otherwise you would get the below error.

To enable/disable firewall for a specific network profile, you can use the below commands.

Domain network

Turn on Domain network firewall:

Turn off domain network firewall:

Private network

Turn on private network firewall:

Turn off private network firewall:

Public network

Turn on public network firewall:

Turn off public network firewall:

Configure for all networks

Turn on firewall for all networks

Turn off firewall for all networks

Older Windows versions – XP / Server 2003:

Below is the command to turn on firewall.

The command to turn off firewall is:

Administrator privileges are required to configure firewall so above command can be run only from admin accounts.

netsh firewall is deprecated in new versions.

In Windows 10/ 8 / 7 / Vista/ Server 2008, ‘netsh firewall‘ command prints message like below.

running it from normal cmd give this error.

Open cmd as with ‘run as adminitrator’ option.

Awesome article, Thank you very much

Thank you very much

Thanks A lot for sharing knowledge
Wanna add note :
the old command netsh.exe firewall set opmode disable or enable this command was Used only with Public profile for windows to set it on Or off . But The new Command Specially this : Netsh.exe advfirewall set allprofiles state on (Perfect Command)
Really …… Thanks too much for sharing this I spent a long time in searching for such this this command because it’s Comprehensive for security issue .

Typo:
Turn on public network firewall:
netsh advfirewall set publicprofile state on
Turn on public network firewall:
__
netsh advfirewall set publicprofile state off
Just trying to help

Thank you very much

First article that solves all my issues with clear exampls

Управление правилами Windows Firewall с помощью PowerShell

Эта статья посвящена основам управления настройками и правилами встроенного Windows Firewall из командной строки PowerShell. Мы рассмотрим, как включать/отключать брандмауэр для различных профилей, создавать и удалять правила файервола, и рассмотрим небольшой скрипт, позволяющий сформировать удобную таблицу с текущим набором активных правил брандмауэра.

Вы можете управлять настройками Windows Firewall из графической консоли Control Panel -> System and Security -> Windows Defender Firewall. Однако начиная с Windows 8.1 (Windows Server 2012R2) для управления встроенным брандмауэром в систему был добавлен встроенный PowerShell модуль NetSecurity.

В модуле NetSecurity в Windows 10 доступно 85 команд. Вы можете вывести их список:

Get-Command -Module NetSecurity

Управление сетевыми профилями брандмауэра Windows из PowerShell

В Windows Firewall есть три типа сетевых профилей:

  • Domain (Доменный) – применяется к компьютерам, включенным в домен Active Directory;
  • Private (Частный) – домашние или рабочие сети;
  • Public (Общий) – общедоступные сети.

Каждый профиль может отличаться используемым набором правил файервола. По умолчанию все сетевые интерфейсы компьютера защищены фаейрволом и к ним применяются все три типа профилей.

Чтобы включить все три сетевых профиля Domain, Public и Private, используйте команду:

Set-NetFirewallProfile -All -Enabled True

Либо укажите конкретный профиль вместо All:

Set-NetFirewallProfile -Profile Public -Enabled True

Чтобы отключить файервол для всех трех сетевых профилей, используется команда:

Set-NetFirewallProfile -All -Enabled False

С помощью командлета Set-NetFirewallProfile вы можете изменить параметры профиля (действие по-умолчанию, журналирование, путь и размер файла журнала, настройки оповещений и т.д.).

Как вы вероятно знаете, по умолчанию Windows Firewall включен в современных ОС для всех профилей. В настройках профилей разрешены все исходящие подключения и блокируется входящие (кроме разрешенных).

Изменим действие по-умолчнию для профиля Public – заблокировать все входящие подключения.

Set-NetFirewallProfile –Name Public –DefaultInboundAction Block

Текущие настройки профиля можно вывести так:

Get-NetFirewallProfile -Name Public

Если вы управляете настройками Windows Firewall через GPO, вы можете вывести текущие результирующие настройки профилей так:

Get-NetFirewallProfile -policystore activestore

Проверим, что все параметры брандмауэра применяются ко всем сетевым интерфейса компьютера.

Get-NetFirewallProfile -Name Public | fl DisabledInterfaceAliases

Если все интерфейсы защищены, команда должна вернуть:

Можно отключить определенный профиль для интерфейса (вывести список имен интерфейсов можно с помощью командлета Get-NetIPInterface).

Set-NetFirewallProfile -Name Public -DisabledInterfaceAliases «Ethernet0»

Как вы видите, теперь профиль Public не применяется к интерфейсу Ethernet0:

Вы можете настроить параметры логирования сетевых подключений на уровне каждого профиля. По умолчанию журналы Windows Firewall хранятся в каталоге %systemroot%\system32\LogFiles\Firewall, размер файла – 4 Мб. Вы можете изменить включить журналирование подключений и увеличить максимальный размер файла:

Set-NetFireWallProfile -Profile Domain -LogBlocked True -LogMaxSize 20000 -LogFileName ‘%systemroot%\system32\LogFiles\Firewall\pfirewall.log’

Создание, редактирование и удаление правил Windows Firewall из PowerShell

Для управления правилами брандмауэра есть 9 командлетов:

  • New-NetFirewallRule
  • Copy-NetFirewallRule
  • Disable-NetFirewallRule
  • Enable-NetFirewallRule
  • Get-NetFirewallRule
  • Remove-NetFirewallRule
  • Rename-NetFirewallRule
  • Set-NetFirewallRule
  • Show-NetFirewallRule

Рассмотрим несколко простых примеров открытия портов в Windows Firewall.

Например, вы хотите разрешить входящие TCP подключения на порты 80 и 443 для профилей Domain и Private, воспользуйтесь такой командой:

New-NetFirewallRule -DisplayName ‘WEB-Inbound’ -Profile @(‘Domain’, ‘Private’) -Direction Inbound -Action Allow -Protocol TCP -LocalPort @(’80’, ‘443’)

Вы можете разрешить или заблокировать трафик для конкретной программы. Например, вы хотите заблокировать исходящие соединения для FireFox:

New-NetFirewallRule -Program “C:\Program Files (x86)\Mozilla Firefox\firefox.exe” -Action Block -Profile Domain, Private -DisplayName “Block Firefox” -Description “Block Firefox” -Direction Outbound

Разрешим входящее RDP подключение по порту 3389 только с IP одного адреса:

New-NetFirewallRule -DisplayName «AllowRDP» –RemoteAddress 192.168.1.55 -Direction Inbound -Protocol TCP –LocalPort 3389 -Action Allow

Чтобы разрешить ping для адресов из указанной подсети, используйте команды:

$ips = @(«192.168.1.50-192.168.1.60», «192.165.2.22-192.168.2.200», ”10.10.0.0/16”)

New-NetFirewallRule -DisplayName «Allow inbound ICMPv4» -Direction Inbound -Protocol ICMPv4 -IcmpType 8 -RemoteAddress $ips -Action Allow

New-NetFirewallRule -DisplayName «Allow inbound ICMPv6» -Direction Inbound -Protocol ICMPv6 -IcmpType 8 -RemoteAddress $ips -Action Allow

Чтобы отредактировать имеющееся правило брандмауэра, используется командлет Set-NetFirewallRule. Например, вы хотите разрешить входящие подключения с указанного IP адреса для ранее созданного правила:

Get-NetFirewallrule -DisplayName ‘WEB-Inbound’ | Get-NetFirewallAddressFilter | Set-NetFirewallAddressFilter -RemoteAddress 192.168.1.20

Если нужно добавить в правило файервола несколько IP адресов, используйте такой скрипт:

$ips = @(«192.168.1.50», «192.165.2.22»,”192.168.1.20”)

Get-NetFirewallrule -DisplayName ‘WEB-Inbound’|Set-NetFirewallRule -RemoteAddress $ips

Вывести все IP адреса, которые содержатся в правиле брандмауэра:

Get-NetFirewallrule -DisplayName ‘Allow inbound ICMPv4’|Get-NetFirewallAddressFilter

Вы можете включать/отключать правила файервола с помощью командлетов Disable-NetFirewallRule и Enable-NetFirewallRule.

Disable-NetFirewallRule –DisplayName ‘WEB-Inbound’

Чтобы разрешить ICMP (ping), выполните команду:

Enable-NetFirewallRule -Name FPS-ICMP4-ERQ-In

Чтобы удалить правило брандмауэре используется командлет Remove-NetFirewallRule.

Вывод правил Windows Firewall через PowerShell

Список активных правил для входящего трафика можно вывести так:

Если, например, нам нужно вывести список блокирующих исходящих правил:

Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound

Если нужно отобразить имя программы в правиле:

Get-NetFirewallRule -Action Block -Enabled True -Direction Outbound | %

Как вы видите командлет Get-NetFirewallRule не выводит порты сетевые порты и IP адреса для правил брандмауэра. Чтобы вывести всю информацию о разрешенных входящих (исходящих) подключениях в более удобном виде с отображением номеров портов, используйте такой скрипт:

PowerShell предоставляет широкие возможности по управлению правилами Windows Firewall из командной строки. Вы можете автоматически запускать скрипты PowerShell для открытия/закрытия портов при возникновении определенных событий. В следующей статье мы рассмотрим простую систему на базе PowerShell и Windows Firewall для автоматической блокировки IP адресов, с которых выполняется удаленный перебор паролей по RDP на Windows VDS сервере.

Читайте также:  Windows 10 single language или pro
Оцените статью