Как известно, встроенный брандмауэр 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
И так далее, добавляя диапазоны адресов, пути к приложениям и прочее в удобной последовательности.
Оставьте заявку и мы подробно ответим на все Ваши вопросы!