O Windows contém um firewall avançado robusto, mas fácil de usar, e com PowerShell 7 podemos facilmente configurar o firewall a partir da linha de comando. Esta postagem cobre os comandos comuns usados no Firewall do Windows e onde eles podem ser usados.
Módulo NetSecurity está ok documentado. Observe que esta postagem se aplica apenas ao sistema operacional Windows. Para outros sistemas operacionais, existem outras ferramentas de linha de comando que podem ser usadas para realizar o mesmo tipo de funções, O que UFW
o IPTables
en Linux.
Carregando o NetSecurity
Módulo
a NetSecurity
O módulo, integrado e oferecido pela Microsoft, Contém todos os recursos essenciais para adicionar, excluir e modificar regras de firewall. Para carregar o módulo, apenas importe o módulo como mostrado abaixo.
Import-Module -Name 'NetSecurity'
Lista de regras de firewall existentes
O cmdlet, Get-NetFirewallRule
irá mostrar todas as regras de firewall existentes. Existem muitos, por padrão, Portanto, para provar isso, nós pegamos o primeiro 10.
Get-NetFirewallRule | Select-Object DisplayName, Enabled, Direction, Action -First 10
Existem muitas propriedades que são retornadas por Get-NetFirewallRule
. Mesmo que listemos apenas uma das propriedades acima, correndo Get-NetFirewallRule | Select-Object * -First 1
, irá listar todos disponíveis.
Crie uma nova regra de firewall
Existem muitas maneiras diferentes de criar uma nova regra de firewall, mas o comando que faz isso é [Net-NewFirewallRule](<https://docs.microsoft.com/en-us/powershell/module/netsecurity/new-netfirewallrule?view=win10-ps>)
. As propriedades básicas que precisam ser concluídas são:
DisplayName
– O nome amigável da regra de firewall.Direction
– Tanto para bloquear o tráfego que sai do computador.Outbound
ou entrando no computadorInbound
Action
– Que ação tomar se a regra for cumprida,Allow
oBlock
$Params = @{ "DisplayName" = 'Block WINS' "Direction" = 'Inbound' "Action" = 'Block' "RemoteAddress" = 'WINS' }
New-NetFirewallRule @Params
Se ele Name
parâmetro não é usado, então um GUID aleatório é usado. a DisplayName
pode ser legível por humanos, mas o Name
foi atribuído um GUID aleatório.
Modificar uma regra de firewall existente
E se quisermos modificar uma regra existente sem excluir e recriar a regra completamente? Para faze-lo, devemos executar o Set-NetFirewallRule
, e nos permitirá modificar a regra de firewall conforme necessário.
$Params = @{
"DisplayName" = 'Block WINS'
"Action" = 'Allow'
}
Set-NetFirewallRule @Params
Outras habilidades úteis que o Set-NetFirewallRule
tem é a capacidade de operar com várias regras ao mesmo tempo. Isso pode ser feito localizando regras por um dos três parâmetros.
Name
Este é o padrão e se os nomes forem definidos via pipe ou uma matriz de strings, cada um deles terá ação.DisplayName
Igual aName
, vários objetos em pipeline ou uma matriz de strings modificarão essas regras de acordo.DisplayGroup
oGroup
Se as regras são agrupadas, todas essas regras agrupadas podem ser aplicadas ao mesmo tempo.
Exclua uma regra de firewall existente
Por último, nós gostaríamos de deletar a regra existente, uma vez que é viável que não seja mais necessário. Para fazer isso, execute o comando Remove-NetFirewallRule
. Quando isso acontecer, muitas vezes é aconselhável usar o WhatIf
parâmetro para verificar se a regra está correta para excluir.
Remove-NetFirewallRule -DisplayName "Block WINS"
É fundamental atentar para que o Remove-NetFirewallRule
pode deletar várias regras ao mesmo tempo. Abaixo está um exemplo deste tipo de funcionalidade. A próxima regra irá remover todas as regras desabilitadas contidas na política firewall_gpo
no ad.local.test
domínio.
Remove-NetFirewallRule -Enabled 'False' -PolicyStore 'ad.local.testfirewall_gpo'
Um comando útil está sendo executado, mas potencialmente perigoso Remove-NetFirewallFule
por si mesmo, que remove todas as regras de firewall locais estáticas que foram criadas. Se você tiver um GPO de domínio que defina regras de firewall, isso removerá aqueles que podem entrar em conflito com as regras definidas pelo GPO.
Funcionalidade adicional
Existem muitos outros comandos disponíveis no NetSecurity
módulo. Mesmo que não cobramos todos eles aqui, abaixo estão alguns comandos notáveis para demonstrar o quão grande é o módulo.
Copy-NetFirewallRule
Este comando irá copiar uma regra de firewall existente e todos os filtros associados para o mesmo ou para um armazenamento de política diferente.Disable-NetFirewallRule
Isso desabilitará uma regra de firewall habilitada anteriormente. A regra continuará existindo, mas não modificará ativamente nenhum dado de rede. Se você executar este comando sem nenhum parâmetro, irá desabilitar todas as regras ativas no computador de destino. Recomenda-se sempre executar este comando com oWhatIf
parâmetro se não visar uma regra específica ou conjunto de regras.Enable-NetFirewallRule
Como eleDisable-NetFirewallRule
, este comando irá habilitar uma regra previamente desabilitada ou um conjunto de regras. Se este comando for executado sem nenhum parâmetro, irá habilitar todas as regras desabilitadas anteriormente. Recomenda-se sempre executar este comando com oWhatIf
parâmetro se não visar uma regra específica ou conjunto de regras.Get-NetFirewallProfile
Este comando exibe as alternativas atualmente configuradas para um perfil especificado, como eleDomain
,Private
, oPublic
perfis.Get-NetFirewallSetting
As configurações globais de firewall podem ser recuperadas usando oGet-NetFirewallSetting
comando. Essas configurações incluem opções como opções de certificado, fila de pacotes ou listas de autorização.Rename-NetFirewallRule
Para renomear uma regra de firewall existente, Use oRename-NetFirewallRule
comando. Isso é útil se uma regra foi criada sem um nome específico, então um GUID aleatório é recebido como um nome, e é preferível ter um nome legível atribuído.Set-NetFirewallProfile
Para determinar configurações específicas para perfis individuais, usar elSet-NetFirewallProfile
comando. Isso permite que cada perfil tenha configurações diferentes.Set-NetFirewallSetting
Este comando configura os comportamentos globais do firewall que se aplicam independentemente do perfil de rede atualmente em uso..Show-NetFirewallRule
Este comando auxiliar irá mostrar as regras de firewall e seus objetos associados em uma lista formatada.
Existe uma extensa funcionalidade IPSec contida no módulo. Os comandos listados anteriormente são aqueles que operam na configuração padrão do Firewall do Windows.
conclusão
Existem muitos comandos disponíveis para gerenciar o Firewall do Windows. Esta postagem aborda apenas alguns deles, em particular os comandos mais importantes para listar, Criar, modificar e limpar regras de firewall rapidamente. Mesmo configurações complexas de firewall podem ser obtidas estritamente por meio da linha de comando usando o NetSecurity
Módulo de PowerShell!