+7 (495) 660-35-00

info@iteron.ru

129226, РФ, Москва

Сельскохозяйственная, д. 11, к.3, оф. 148

09:00 - 21:00

без выходных

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

 IT Заметки, Windows 7, Windows 8, Windows Server    

Как известно, встроенный брандмауэр Windows не обладает особым функционалом, поэтому обычно отключается более продвинутыми продуктами. Впрочем, даже при выключенном брандмауэре иногда необходимо проводить некоторые настройки. Например, открывать/закрывать порты. И, если на одном компьютере это проще сделать через графический интерфейс, то проводить одну и ту же настройку на нескольких компьютеров в сети таким способом будет утомительно. Рассмотрим управление брандмауэром Windows через командную строку. Получившиеся команды можно будет затем записать в bat-файл и разослать по сети.

Данный синтаксис актуален для Windows Vista, 7, 8 и серверных редакций, начиная с 2008.

Начнем с основ. Включение брандмауэра:

netsh advfirewall set allprofiles state on

Выключение брандмауэра:

netsh advfirewall set allprofiles state off

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

netsh advfirewall set domainprofile state on
netsh advfirewall set privateprofile state on
netsh advfirewall set publicprofile state on

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

netsh advfirewall set domainprofile state off
netsh advfirewall set privateprofile state off
netsh advfirewall set publicprofile state off

Закрыть все входящие соединения и разрешить все исходящие:

netsh advfirewall set allprofiles firewallpolicy blockinbound,allowoutbound

Аналогично, команда blockoutbound закроет все исходящие соединения, а allowinbound откроет все входящие. Только зачем?

Открыть локальный порт по протоколу TCP для входящего соединения. Для примера 80:

netsh advfirewall firewall add rule name="test" protocol=TCP localport=80 action=allow dir=IN

В примере name это имя правила. Можно указать удобное Вам.

Аналогично с протоколом UDP:

netsh advfirewall firewall add rule name="test" protocol=UDP localport=80 action=allow dir=IN

Ну и, соответственно, если мы хотим запретить входящие на локальный 80 порт по TCP:

netsh advfirewall firewall add rule name="test" protocol=TCP localport=80 action=block dir=IN

Для UDP дублировать не буду. Там всё аналогично кроме названия протокола.

Разрешить исходящие на удаленный порт по протоколу TCP. Опять же, пусть будет 80 порт.

netsh advfirewall firewall add rule name="test" protocol=TCP remoteport=80 action=allow dir=OUT

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

netsh advfirewall firewall add rule name="test" protocol=UDP remoteport=5000-5100 action=allow dir=OUT

Создать правило по подключению только с конкретного IP:

netsh advfirewall firewall add rule name="test" protocol=TCP localport=80 action=allow dir=IN remoteip=192.168.0.1

Или диапазона IP:

netsh advfirewall firewall add rule name="test" protocol=TCP localport=80 action=allow dir=IN remoteip=192.168.0.1-192.168.0.100

Подсеть можно вписать и по имени или просто как 192.168.0.1/100.

Разрешить соединение для определенной программы:

netsh advfirewall firewall add rule name="test" dir=in action=allow program="C:\test\test.exe" enable=yes

Созданное правило можно удалить командой

netsh advfirewall firewall delete rule name="test"

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

netsh advfirewall firewall add rule name="test" protocol=TCP localport=80 action=allow dir=IN profile=domain

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

 

Отсканируйте код