Windows эквивалент iptables?

58

Дурацкий вопрос:

Есть ли в Windows эквивалент iptables? Могу ли я установить один через Cygwin?

Реальный вопрос: как я могу выполнить в Windows то, что я могу сделать с помощью iptables? Просто ищу основные функции брандмауэра (например, блокировка определенных IP-адресов)

Аарон Ф.
источник
6
Нет такой вещи, как глупый вопрос
Марк Хендерсон
4
Конечно, есть такая вещь, как глупый вопрос, но это не так.
Задание

Ответы:

38

Один из способов был бы с netshкомандой:

Джеймс Снерингер
источник
8
+1 - netsh advfirewallэто абсолютное необходимое правило, которое нужно учить любому, кто пишет сценарии безопасности для Windows Server
Марк Хендерсон
netsh advfirewallПоддерживает ли URL-адреса или только IP-адреса?
Паркер
Только IP-адреса и тому подобное, хотя он также может фильтровать на основе исполняемого файла, отправляющего или получающего сетевой трафик, или учетных данных AD соответствующего пользователя / группы / компьютера. Для фильтрации URL вы бы хотели найти какой -нибудь прокси-фильтр .
Джеймс Снирингер
7

Ниже от: https://support.microsoft.com/en-us/kb/947709

Пример 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

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

netsh advfirewall firewall add rule ?

Пример 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

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

netsh advfirewall firewall add rule ?

Пример 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

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

netsh advfirewall firewall delete rule ?

Пример 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 выполните следующую команду:

netsh advfirewall firewall add rule ?

Пример 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

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

netsh advfirewall set currentprofile ?

Если вы хотите настроить ведение журнала для определенного профиля, используйте один из следующих параметров вместо параметра «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   Run the following commands:

netsh advfirewall set domainprofile state on 

netsh advfirewall set privateprofile state on

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

netsh advfirewall set currentprofile ?

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

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

Старая команда Новая команда

netsh firewall reset
netsh advfirewall reset

Для получения дополнительной информации выполните следующую команду: netsh advfirewall reset? Пример 8. Включение определенных служб

Старая команда Новая команда netsh firewall set service FileAndPrint netsh advfirewall set set rule group = "Общий доступ к файлам и принтерам" new enable = Да netsh firewall set set RemoteDesktop enable netsh advfirewall set firewall group группа правил = "удаленный рабочий стол" new enable = Yes netsh firewall set service RemoteDesktop enable profile = ALL Выполнить следующие команды:

netsh advfirewall firewall set rule group = "удаленный рабочий стол" new enable = Yes profile = domain

netsh advfirewall firewall set rule group = "удаленный рабочий стол" new enable = Yes profile = private

Adrianio
источник
3
Возможно, вы захотите поработать над форматированием. В настоящее время это ужасно читать, призывая к снижению.
Джеральд Шнайдер
1
Также скопировано с support.microsoft.com/en-us/kb/947709
chappjc
4

WIPFW выглядит очень многообещающе, особенно, если после этого вы создадите правила для iptables.

Ник Кавадиас
источник
3

В XP, Server 2003 и более поздних версиях имеется встроенный межсетевой экран .

Он имеет API, с помощью которого вы можете программно изменять, включать и отключать правила.

poolie
источник
1
Мне нужно то, к чему я могу получить программный доступ - добавить IP-адреса в брандмауэр из скрипта или программного модуля.
Аарон Ф.