- Zone PC
- Настройка брандмауэра windows из командной строки
- Включение, выключение
- Правила на порты
- Ограничения по IP адресам
- Правила для приложений
- Комбинирования параметров
- Настройка брандмауэра Windows из командной строки cmd
- Выключение и включение
- Разрешение протоколов
- Закрытие и открытие портов
- Ограничения по IP адресам
- Правила для приложений
- Комбинирования параметров
- Управление правилами Windows Firewall с помощью PowerShell
- Управление сетевыми профилями брандмауэра Windows из PowerShell
- Создание, редактирование и удаление правил Windows Firewall из PowerShell
- Вывод правил Windows Firewall через PowerShell
- Использование брандмауэра netsh advfirewall вместо netsh-брандмауэра для управления поведением брандмауэра Windows
- Аннотация
- Пример команды 1. Включить программу
- Пример команды 2. Включить порт
- Пример команды 3. Удаление включенных программ или портов
- Пример команды 4. Настройка параметров ICMP
- Пример команды 5. Настройка ведения журнала
- Пример команды 6. Включить брандмауэр Windows
- Пример команды 7. Восстановление политик по умолчанию
- Пример команды 8. Включить определенные службы
Zone PC
Настройка брандмауэра windows из командной строки
В Windows server 2008 (R2), а также в обычных Windows vista, 7, 8 есть встроенный брандмауэр (firewall). В этой статье расмотрим несколько примеров как создавать правила из командной строки, также эти команды можно использовать при написании своих пакетных сценариев cmd, bat, powershell.
Все команды нужно выполнять из коммандной строки cmd запущенной с правами администратора.
Включение, выключение
Включение отдельных профилей:
Выключение отдельных профилей:
Запретить все входяшие соединения и разрешить все исходяшие:
Правила на порты
Разрешить входящие TCP и UDP соединения для 80 порта:
Запретить входящие на 80 порт:
Открыть диапозон портов для исходящего UDP трафика
Удалять правила можно по имени
Ограничения по IP адресам
Правила можно ограничивать для работы только с одним ip:
Или ограничивать по подсетями причем можно использовать разный синтаксис:
Правила для приложений
Разрешить соединения для программы MyApp.exe
Комбинирования параметров
Параметры можно соединять в довольно сложные цепочки:
В данном случае мы создали правило для программы, которое работает при если компьютер подключен к доменну организации (profile=domain) и определенны три диапозона ip адресов.
Подробней о настройках брандмауэра можно прочитать на сайте микрософта там же есть отличия от сторого синтаксиса который использовался на Windows XP и Windows server 2003:
Часть примеров были взяты из статьи на английском языке:
Настройка брандмауэра 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.
Управление правилами 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 сервере.
Использование брандмауэра 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