- Настройка брандмауэра Windows из командной строки cmd
- Выключение и включение
- Разрешение протоколов
- Закрытие и открытие портов
- Ограничения по IP адресам
- Правила для приложений
- Комбинирования параметров
- Enable/disable firewall from command line
- Windows 10 / Windows 8/ Windows 7 / Server 2008 /Vista:
- Domain network
- Private network
- Public network
- Configure for all networks
- Older Windows versions – XP / Server 2003:
- Использование брандмауэра netsh advfirewall вместо netsh-брандмауэра для управления поведением брандмауэра Windows
- Аннотация
- Пример команды 1. Включить программу
- Пример команды 2. Включить порт
- Пример команды 3. Удаление включенных программ или портов
- Пример команды 4. Настройка параметров ICMP
- Пример команды 5. Настройка ведения журнала
- Пример команды 6. Включить брандмауэр Windows
- Пример команды 7. Восстановление политик по умолчанию
- Пример команды 8. Включить определенные службы
- Enable or Disable Windows Firewall from Command Prompt
- Manage Windows Firewall from Command Prompt
- Open Port in Firewall using Command Line
Настройка брандмауэра 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
Использование брандмауэра 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
Enable or Disable Windows Firewall from Command Prompt
Easiest way to add port exceptions or computers not in Active Directory
There may come a time when you need to write a script or remotely connect to a PC and run a command to enable or disable the Windows firewall. For most IT environments, using Group Policy is the easiest way to configure the Windows Firewall on client computers.
It’s also the easiest way to add port exceptions for services such as HTTP, file sharing, software applications, and more. However, it’s also good to know how to configure the Windows Firewall from the command prompt just in case you have computers and servers that are not in Active Directory.
Manage Windows Firewall from Command Prompt
First, to see whether the Windows Firewall is enabled on a server or computer, type this command at the command prompt:
Make sure you open an administrator command prompt (click on Start, type in CMD and then right-click on Command Prompt and choose Run as Administrator). You should get something similar to what is shown below:
By default, you should see three separate listings here: Domain profile settings, private profile settings and public profile settings. These three correspond to the three states you can place each network connection on your computer into. If you are connected to your home network and you chose the Home Network option, the Private profile settings will be applied.
State means if the firewall is turned on or off. The Firewall Policy tells you what inbound and outbound policies are being applied to each profile.
To disable the firewall for a specific profile, you would use the following command:
The other options are currentprofile, publicprofile, domainprofile, and allprofiles. So if you wanted to disable the firewall completely, you would use allprofiles instead of privateprofile. To enable again, just put on at the end instead of off.
Open Port in Firewall using Command Line
Now what if you want to open a port in the firewall using the command line? That’s simple too!
Let’s say you want to open port 3389, which is for remote desktop in Windows. You would simply run this command:
The command is quite long, but it’s fairly easy to break down. You add a rule, give it a name, choose the protocol (TCP or UDP), choose the direction (In or Out), give it the port number and choose the action (Allow or Deny).
If you were to run this command, then go view the allowed apps in Windows Firewall, you would see that the Remote Desktop item is now checked:
If you need to open up a range of ports, just use a simple dash. For example, here I am opening ports 600o to 7000 for UDP outbound traffic:
There are many more advanced commands you can use to manage all aspects of the Windows Firewall, so make sure to use the /? characters at the end of any command to see all the options and examples.
Founder of Help Desk Geek and managing editor. He began blogging in 2007 and quit his job in 2010 to blog full-time. He has over 15 years of industry experience in IT and holds several technical certifications. Read Aseem’s Full Bio