Windows equivalente ao iptables?

58

Pergunta idiota:

Existe um equivalente de iptables no Windows? Posso instalar um via cygwin?

A verdadeira questão: como posso realizar no Windows o que posso realizar via iptables? Apenas procurando funcionalidade básica de firewall (por exemplo, bloqueio de determinados endereços IP)

Aaron F.
fonte
6
Não existe uma pergunta idiota
Mark Henderson
4
Claro que existe uma pergunta idiota, essa simplesmente não é uma.
Tarefa

Respostas:

37

Uma maneira seria com o netshcomando:

James Sneeringer
fonte
8
+1 - netsh advfirewallé uma regra essencial absoluta para aprender a criar scripts para qualquer coisa relacionada à segurança no Windows Server
Mark Henderson
Faz netsh advfirewallURLs de apoio, ou apenas endereços IP?
Parker
Apenas endereços IP e outros, embora também possa filtrar com base no tráfego de rede de envio ou recebimento executável ou nas credenciais de AD do usuário / grupo / computador envolvido. Para filtragem de URL, convém procurar um proxy de filtragem de algum tipo.
James Sneeringer
6

O abaixo é de: https://support.microsoft.com/en-us/kb/947709

Exemplo 1: ativar um programa

Comando antigo Novo comando

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  

Execute os seguintes comandos:

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

Para obter mais informações sobre como adicionar regras de firewall, execute o seguinte comando:

netsh advfirewall firewall add rule ?

Exemplo 2: ativar uma porta

Comando antigo Novo comando

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

Para obter mais informações sobre como adicionar regras de firewall, execute o seguinte comando:

netsh advfirewall firewall add rule ?

Exemplo 3: Excluir programas ou portas ativados

Comando antigo Novo comando

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

Para obter mais informações sobre como excluir regras de firewall, execute o seguinte comando:

netsh advfirewall firewall delete rule ?

Exemplo 4: Definir configurações de ICMP

Comando antigo Novo comando

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

Para obter mais informações sobre como definir configurações de ICMP, execute o seguinte comando:

netsh advfirewall firewall add rule ?

Exemplo 5: definir log

Comando antigo Novo comando netsh firewall set logging %systemroot%\system32\LogFiles\Firewall\pfirewall.log 4096 ENABLE ENABLE Execute os seguintes comandos:

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

Para mais informações, execute o seguinte comando:

netsh advfirewall set currentprofile ?

Se você deseja definir o log para um perfil específico, use uma das seguintes opções em vez da opção "currentprofile":
Domainprofile
Privateprofile
Publicprofile

Exemplo 6: Habilitar o Firewall do Windows

Comando antigo Novo comando

netsh firewall set opmode ENABLE    netsh advfirewall set currentprofile state on
netsh firewall set opmode mode=ENABLE exceptions=enable 

Execute os seguintes comandos:

Netsh advfirewall set currentprofile state on 

netsh advfirewall set currentprofile firewallpolicy blockinboundalways,allowoutbound
netsh firewall set opmode mode=enable exceptions=disable profile=domain 

Execute os seguintes comandos:

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

Para mais informações, execute o seguinte comando:

netsh advfirewall set currentprofile ?

Se você deseja definir o estado do firewall para um perfil específico, use uma das seguintes opções em vez da opção "currentprofile": Domainprofile
Privateprofile
Publicprofile

Exemplo 7: Restaurar padrões da política

Comando antigo Novo comando

netsh firewall reset
netsh advfirewall reset

Para mais informações, execute o seguinte comando: netsh advfirewall reset? Exemplo 8: Habilitar serviços específicos

Comando antigo Novo comando netsh firewall set service FileAndPrint netsh advfirewall firewall set rule group = "Compartilhamento de arquivos e impressoras" new enable = Yes netsh firewall set service RemoteDesktop habilita netsh advfirewall firewall set netsh group de regras = "área de trabalho remota" new enable = Yes netsh firewall set service RemoteDesktop enable profile = ALL Execute os seguintes comandos:

netsh advfirewall firewall set rule group = "área de trabalho remota" new enable = Yes profile = domain

netsh advfirewall firewall set rule group = "área de trabalho remota" new enable = Yes profile = private

Adrianio
fonte
3
Você pode querer trabalhar na formatação. Atualmente, é horrível ler, convidando votos negativos.
Gerald Schneider
1
Também arrancada de support.microsoft.com/en-us/kb/947709
chappjc
4

O WIPFW parece muito promissor, especialmente se você prefere o sabor da criação de regras do iptables.

Nick Kavadias
fonte
3

Há um firewall embutido no XP, Server 2003 e versões posteriores.

Possui uma API através da qual você pode alterar programaticamente, ativar e desativar regras.

poolie
fonte
1
Quero algo que possa acessar programaticamente - adicione endereços IP ao firewall a partir de um script ou módulo de software.
Aaron F.