Uma maneira seria com o comando netsh
:
-
netsh firewall
(reprovado após o XP e 2003) -
netsh advfirewall
(Vista, 7 e 2008)
Pergunta idiota:
Existe um equivalente de iptables no Windows? Eu poderia instalar um via cygwin?
A verdadeira questão: como posso realizar no Windows o que posso realizar via iptables? Apenas procurando por uma funcionalidade básica de firewall (por exemplo, bloqueando determinados endereços IP)
Uma maneira seria com o comando netsh
:
netsh firewall
(reprovado após o XP e 2003) netsh advfirewall
(Vista, 7 e 2008) WIPFW parece muito promissor, especialmente se o seu sabor de criação de regras depois do iptables.
O texto abaixo é de: link
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 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 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 mais informações sobre como excluir regras de firewall, execute o seguinte comando:
netsh advfirewall firewall delete rule ?
Exemplo 4: definir as configurações do 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 mais informações sobre como definir as configurações do ICMP, execute o seguinte comando:
netsh advfirewall firewall add rule ?
Exemplo 5: Definir logging
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 de um perfil específico, use uma das seguintes opções em vez da opção "currentprofile":
Domainprofile
Privateprofile
Publicprofile
Exemplo 6: Ativar 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ê quiser 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 de política
Comando antigo Novo comando
netsh firewall reset
netsh advfirewall reset
Para mais informações, execute o seguinte comando: netsh advfirewall redefinir? Exemplo 8: Ativar serviços específicos
Comando antigo Novo comando netsh serviço de conjunto de firewall FileAndPrint netsh advfirewall firewall set grupo de regras="Compartilhamento de arquivos e impressoras" new enable = Yes netsh serviço de configuração de firewall RemoteDesktop enable netsh advfirewall firewall set grupo de regras="área de trabalho remota" new enable = Yes netsh serviço de configuração de firewall RemoteDesktop enable profile = ALL Execute os seguintes comandos:
netsh advfirewall firewall set grupo de regras="área de trabalho remota" new enable = Sim perfil = domínio
netsh advfirewall firewall set grupo de regras="área de trabalho remota" new enable = Sim perfil = private
Existe um firewall incorporado no XP, Server 2003 e versões posteriores.
Possui uma API através da qual você pode alterar programaticamente , ativar e desativar regras.