- Regras de firewall do Windows organizadas em scripts individuais do PowerShell de acordo com:
- Grupo de regras
- Direção de tráfego
- Versão IP (IPv4 / IPv6)
- Classificação adicional de acordo com programas e serviços
- Tráfego ICMP
- Regras do navegador
- regras para o sistema Windows
- Armazenar aplicativos
- Serviços do Windows
- Programas da Microsoft
- Programas de terceiros
- tráfego de transmissão
- tráfego multicast
- E a lista continua..
Você pode escolher quais regras deseja e aplicar apenas essas ou todas com um único comando ao seu firewall.
Todas as regras são carregadas na diretiva de grupo local, fornecendo a você poder total sobre o firewall padrão do Windows.
Este projeto "WindowsFirewallRuleset" está licenciado sob a licença MIT .
O subprojeto Indented.Net.IP (código de terceiros) localizado na subpasta "Indented.Net.IP" é licenciado sob a licença ISC .
O subprojeto VSSetup (código de terceiros) localizado na subpasta "VSSetup" é licenciado sob licença MIT .
Licença, avisos de direitos autorais e todo o material de subprojetos está em sua própria pasta.
Os avisos de licença e direitos autorais deste projeto estão na pasta raiz do projeto.
Para obter mais informações, consulte as respectivas licenças:
WindowsFirewallRuleset \ LICENSE
Indented.Net.IP \ LICENSE
VSSetup \ LICENSE.txt
O subprojeto Indented.Net.IP (código de terceiros) localizado na subpasta "Indented.Net.IP" é licenciado sob a licença ISC .
O subprojeto VSSetup (código de terceiros) localizado na subpasta "VSSetup" é licenciado sob licença MIT .
Licença, avisos de direitos autorais e todo o material de subprojetos está em sua própria pasta.
Os avisos de licença e direitos autorais deste projeto estão na pasta raiz do projeto.
Para obter mais informações, consulte as respectivas licenças:
WindowsFirewallRuleset \ LICENSE
Indented.Net.IP \ LICENSE
VSSetup \ LICENSE.txt
Requisitos mínimos do sistema
Requisitos mínimos do sistema
- Windows 10 Pro / Enterprise
- Windows Powershell 5.1 Baixar Powershell
- Git (Opcional) Baixar Git
Observe que o Powershell está embutido no Windows por padrão; você provavelmente precisará instalá-lo ou atualizar em alguns sistemas antigos.
Para poder aplicar regras a sistemas mais antigos, como o Windows 7, edite
em seguida, você abrir scripts do conjunto de regras individuais, e vejam que as regras que você quer ser carregado em seu firewall,
então simplesmente substituir
No VS Code, por exemplo, você simplesmente (CTRL + F) para cada script e substitui todas as instâncias. muito simples.
Se você perder algo que possa excluir, adicione ou modifique regras no GPO posteriormente.
Observe que, se você definir sua plataforma globalmente (por exemplo,
Também ie. as regras para programas e serviços introduzidos no Windows 10 provavelmente serão aplicadas, mas redundantes.
O que isso significa é que basta editar o GPO posteriormente para refinar suas importações se você seguir esse caminho.
Em qualquer caso, novo sistema ou antigo, saiba que as versões Home do Windows não possuem GPO (Diretiva de Grupo Local), portanto, não é possível fazer uso deste projeto.
Para poder aplicar regras a sistemas mais antigos, como o Windows 7, edite
FirewallModule.psm1
e adicione uma nova variável que define a versão do sistema:New-Variable -Name Platform -Option Constant -Scope Global -Value "10.0+""
é definida para atingir o Windows 10 e superior por padrão para todas as regras, por exemplo, para o Windows 7, defina um novo variável que parece com isso:New-Variable -Name PlatformWin7 -Option Constant -Scope Global -Value "6.1"
em seguida, você abrir scripts do conjunto de regras individuais, e vejam que as regras que você quer ser carregado em seu firewall,
então simplesmente substituir
-Platform $Platform
com -Platform $PatformWin7
para cada regra que você deseja.No VS Code, por exemplo, você simplesmente (CTRL + F) para cada script e substitui todas as instâncias. muito simples.
Se você perder algo que possa excluir, adicione ou modifique regras no GPO posteriormente.
Observe que, se você definir sua plataforma globalmente (por exemplo,
$Platform = "6.1"
) em vez de criar sua própria variável, apenas substituindo a cadeia, mas não excluindo regras não relacionadas, a maioria das regras funcionará, mas por exemplo. as regras para aplicativos da loja falharão ao carregar.Também ie. as regras para programas e serviços introduzidos no Windows 10 provavelmente serão aplicadas, mas redundantes.
O que isso significa é que basta editar o GPO posteriormente para refinar suas importações se você seguir esse caminho.
Em qualquer caso, novo sistema ou antigo, saiba que as versões Home do Windows não possuem GPO (Diretiva de Grupo Local), portanto, não é possível fazer uso deste projeto.
Início rápido passo a passo
AVISO:
- esses passos aqui são projetados para para aqueles que não se sentem comfotable com
git
,Powershell
ouLocal group policy
- Você pode perder a conectividade com a Internet para alguns de seus programas ou, em casos raros, até perder completamente a conectividade com a Internet; se isso acontecer, você pode executar
ResetFirewall.ps1
para redefinir o firewall para o estado anterior. - Dentro da pasta Leiame, há
ResetFirewall.md
um guia sobre como fazê-lo manualmente, manualmente, se por algum motivo você não conseguir executar o script, ou se o script não resolver seus problemas. - Observe também que suas regras atuais / existentes não serão excluídas, a menos que você tenha regras no GPO cujo nome de grupo interfira nos nomes de grupos desse conjunto de regras.
- para ter 100% de certeza, exporte primeiro suas regras atuais de GPO (se você não souber fazer isso, ignore isso e não terá regras de GPO)
- Clique com o botão direito do mouse na barra de tarefas e selecione
Taskbar settings
- Ativar
Replace Command Prompt with Windows Powershell in the menu when I right click the start button
- Clique com o botão direito do mouse no botão Iniciar no sistema Windows
- Clique
Windows Powershell (Administrator)
para abrir o Powershell como administrador (digite a senha do administrador, se necessário) - Digite: (ou copie e cole comandos e pressione enter)
Get-ExecutionPolicy
e lembre-se de qual é a saída. - Tipo:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Unrestricted -Force
- Tipo:
cd C:\
- Tipo:
git clone [email protected]:metablaster/WindowsFirewallRuleset.git
- Tipo:
cd WindowsFirewallRuleset
- Regras para programas como navegador da Internet, Visual Studio etc. dependem de variáveis de instalação.
A maioria dos caminhos é pesquisada automaticamente e as variáveis são atualizadas; caso contrário, você recebe um aviso e uma descrição sobre como corrigir o problema. - De volta ao console do Powershell e digite:
.\SetupFirewall.ps1
e pressione enter (Você será perguntado que tipo de conjunto de regras você deseja) - Siga a saída rápida (ou seja, pressione enter a cada vez para prosseguir até terminar); levará pelo menos 10 minutos de sua atenção.
- Se você encontrar erros, terá várias opções, como ignorar os erros ou corrigir o script que produziu o erro e execute-o novamente mais tarde.
- Depois de concluída a execução, chame a política de execução da etapa 5 e digite: (por exemplo, se a política anterior fosse "RemoteSigned")
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force
\ - Agora que as regras foram aplicadas, talvez seja necessário ajustar algumas delas na Diretiva de Grupo Local, nem todas as regras estão ativadas por padrão e você pode alternar o comportamento padrão Permitir / Bloquear para algumas regras, regras para programas que não existem precisam ser feito adicionalmente.
Veja as próximas seções para mais informações.
Onde estão minhas regras?
As regras são carregadas na política de grupo local, siga as etapas abaixo para abrir a política de grupo local.
- Pressione a tecla Windows e digite:
secpol.msc
- Clique com o botão direito
secpol.msc
e cliqueRun as administrator
- Nó de expansão:
Windows Defender Firewall with Advanced Security
- Nó de expansão:
Windows Defender Firewall with Advanced Security - Local Group Policy Object
- Clique no nó
Inbound
ouOutbound
para visualizar e gerenciar as regras que você aplicou com o script do Powershell.
Aplicando conjuntos de regras individuais
Se você deseja aplicar apenas regras específicas, existem 2 maneiras de fazer isso:
- Execute
SetupFirewall.ps1
e pressione Enter apenas para os conjuntos de regras que você deseja; caso contrário, digiten
e pressione Enter para pular o conjunto de regras atual. - No PowerShell interno, navegue até a pasta que contém o script do conjunto de regras desejado e execute o script individual do Powershell.
- Você pode executar
FirewallProfile.ps1
para aplicar o comportamento padrão do firewall ou manualmente no GPO.
Exclusão de regras
No momento, a maneira mais fácil é selecionar todas as regras que você deseja excluir na Diretiva de Grupo Local, clique com o botão direito do mouse e exclua.
Para reverter para o seu antigo estado de firewall, você precisará excluir todas as regras do GPO e definir todas as propriedades como "Não configuradas" ao clicar com o botão direito do mouse no nó
Windows Defender Firewall with Advanced Security - Local Group Policy Object
Gerenciar regras carregadas
Existem duas maneiras de gerenciar suas regras:
- Usando a Diretiva de Grupo Local, esse método oferece liberdade limitada sobre o que você pode fazer com as regras, como desativá-las ou alterar alguns atributos.
- Editando scripts do PowerShell, esse método oferece controle total, você pode melhorar as regras, adicionar novas ou estragar tudo.
Contribuição ou sugestões
Sinta-se livre para sugerir ou contribuir com novas regras ou melhorias para regras ou scripts existentes.
Apenas certifique-se de seguir o estilo de código existente, da seguinte maneira:
- Observe que cada regra usa exatamente a mesma ordem ou os parâmetros divididos no mesmo número de linhas.
Isso é necessário para que, quando você precise pesquisar algo, seja fácil ver o que está acontecendo imediatamente. - Forneça documentação e referência oficial para suas regras, para que seja fácil verificar se essas regras não contêm erros, por exemplo, para regras de ICMP, você forneceria um link para a IANA com o documento de referência relevante.
- Se você gostaria de sugerir novas regras ou melhorar as existentes, mas não possui as habilidades necessárias para fazer o upload de uma atualização aqui, abra uma nova edição aqui no github e forneça detalhes de preferência com a documentação.
- Para contribuir com regras, também é importante que cada regra contenha uma boa descrição de seu objetivo. Quando um usuário clica em uma regra na GUI do firewall, ele deseja ver do que se trata essa regra e concluir facilmente se deve ativar / desativar a regra ou permitir / bloquear o tráfego.
- Também é importante que uma regra seja muito específica e não genérica, o que significa especificar protocolo, endereços IP, portas, usuário do sistema, tipo de interface e outras informações relevantes.
por exemplo, apenas dizendo: permitir a porta de saída TCP 80 para qualquer endereço ou usuário ou nenhuma explicação, o que é permitido ou bloquear com isso não é aceitável.
Mais informações e ajuda
Dentro da pasta Leia-me, você encontrará informações muito úteis, não apenas sobre este projeto, mas também informações gerais sobre como solucionar problemas de firewall e rede, ou coletar informações mais relevantes.
Pode responder a algumas de suas perguntas, você deve ler!
btw. É recomendável que você leia esses documentos aqui no github por causa da formatação e capturas de tela.