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


3
Возможно, вы захотите поработать над форматированием. В настоящее время это ужасно читать, призывая к снижению.
Джеральд Шнайдер

1
Также скопировано с support.microsoft.com/en-us/kb/947709
chappjc


3

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

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


1
Мне нужно то, к чему я могу получить программный доступ - добавить IP-адреса в брандмауэр из скрипта или программного модуля.
Аарон Ф.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.