Gerenciar o Firewall do Windows com a linha de comando

Este artigo fornece exemplos de como gerenciar o Firewall do Windows com o PowerShell e netsh.exeo , que podem ser usados para automatizar o gerenciamento do Firewall do Windows.

Definir padrões globais de perfil

Padrões globais definem o comportamento do dispositivo em uma base por perfil. O Firewall do Windows dá suporte a perfis de Domínio, Privado e Público.

O Firewall do Windows descarta o tráfego que não corresponde ao tráfego não solicitado permitido ou ao tráfego enviado em resposta a uma solicitação do dispositivo. Se você descobrir que as regras que você cria não são impostas, talvez seja necessário habilitar o Firewall do Windows. Veja como habilitar o Firewall do Windows em um dispositivo local:

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True

Controlar o comportamento do Firewall do Windows

As configurações padrão globais podem ser definidas por meio da interface de linha de comando. Essas modificações também estão disponíveis por meio do console do Firewall do Windows. Os scriptlets a seguir definem as ações padrão de entrada e saída, especifica conexões de rede protegidas e permitem que as notificações sejam exibidas ao usuário quando um programa é impedido de receber conexões de entrada. Ele permite a resposta unicast ao tráfego de rede multicast ou de transmissão e especifica configurações de log para solução de problemas.

Set-NetFirewallProfile -DefaultInboundAction Block -DefaultOutboundAction Allow -NotifyOnListen True -AllowUnicastResponseToMulticast True -LogFileName %SystemRoot%\System32\LogFiles\Firewall\pfirewall.log

Desabilitar o Firewall do Windows

A Microsoft recomenda que você não desabilite o Firewall do Windows porque perde outros benefícios fornecidos pelo serviço, como a capacidade de usar regras de segurança de conexão IPsec (Internet Protocol security), proteção de rede contra ataques que empregam impressões digitais de rede, Endurecimento do Serviço windows e filtros de tempo de inicialização. Desabilitar o Firewall do Windows também pode causar problemas, incluindo:

  • O menu Iniciar pode parar de funcionar
  • Aplicativos modernos podem falhar ao instalar ou atualizar
  • Falha na ativação do Windows por telefone
  • Incompatibilidades de aplicativo ou sistema operacional que dependem do Firewall do Windows

A Microsoft recomenda desabilitar o Firewall do Windows somente ao instalar um firewall não Microsoft e redefinir o Firewall do Windows de volta para padrões quando o software não Microsoft for desabilitado ou removido. Se for necessário desabilitar o Firewall do Windows, não o desabilite interrompendo o serviço firewall do Windows (no snap-in dos Serviços , o nome de exibição é Firewall do Windows e o nome do serviço é MpsSvc). Não há suporte para parar o serviço firewall do Windows pela Microsoft. O software de firewall não Microsoft pode desabilitar programaticamente apenas as partes do Firewall do Windows que precisam ser desabilitadas para compatibilidade. Você não deve desabilitar o firewall por conta própria para essa finalidade. O método adequado para desabilitar o Firewall do Windows é desabilitar os Perfis de Firewall do Windows e deixar o serviço em execução. Use o procedimento a seguir para desativar o firewall ou desabilitar a configuração de Política de Grupo Configuração do Computador|Modelos administrativos|Rede|Connections de rede|Firewall do Windows|Prolfile de Domínio|Firewall do Windows:Proteger todas as conexões de rede. Para obter mais informações, consulte Guia de implantação do Firewall do Windows. O exemplo a seguir desabilita o Firewall do Windows para todos os perfis.

Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False

Implantar regras básicas de firewall

Esta seção fornece exemplos de scripts para criar, modificar e excluir regras de firewall.

Criar regras de firewall

Adicionar uma regra de firewall em Windows PowerShell se parece muito com ela no Netsh, mas os parâmetros e valores são especificados de forma diferente. Aqui está um exemplo de como permitir que o aplicativo Telnet ouça na rede. Essa regra de firewall é escopo para a sub-rede local usando um palavra-chave em vez de um endereço IP. Assim como no Netsh, a regra é criada no dispositivo local e entra em vigor imediatamente.

New-NetFirewallRule -DisplayName "Allow Inbound Telnet" -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -RemoteAddress LocalSubnet -Action Allow

O scriptlet a seguir mostra como adicionar uma regra de firewall básica que bloqueia o tráfego de saída de um aplicativo específico e uma porta local para um GPO (objeto Política de Grupo) no Active Directory. Em Windows PowerShell, o repositório de políticas é especificado como um parâmetro dentro do cmdlet New-NetFirewall. No Netsh, primeiro você deve especificar o GPO que os comandos em uma sessão do Netsh devem modificar. Os comandos inseridos são executados no conteúdo do GPO e a execução permanece em vigor até que a sessão netsh seja encerrada ou até que outro comando set store seja executado. Aqui, domain.contoso.com é o nome do Active Directory Domain Services (AD DS) e gpo_name é o nome do GPO que você deseja modificar. Aspas serão necessárias se houver espaços no nome do GPO.

New-NetFirewallRule -DisplayName "Block Outbound Telnet" -Direction Outbound -Program %SystemRoot%\System32\tlntsvr.exe -Protocol TCP -LocalPort 23 -Action Block -PolicyStore domain.contoso.com\gpo_name

Cache de GPO

Para reduzir a carga sobre controladores de domínio ocupados, Windows PowerShell permite que você carregue um GPO para sua sessão local, faça todas as alterações nessa sessão e salve-o novamente de uma vez. O comando a seguir executa as mesmas ações que o exemplo anterior (adicionando uma regra Telnet a um GPO), mas fazemos isso aplicando o cache de GPO no PowerShell. Não há suporte para alterar o GPO carregando-o na sessão local e usando o parâmetro -GPOSession no Netsh

$gpo = Open-NetGPO -PolicyStore domain.contoso.com\gpo_name
New-NetFirewallRule -DisplayName "Block Outbound Telnet" -Direction Outbound -Program %SystemRoot%\System32\telnet.exe -Protocol TCP -LocalPort 23 -Action Block -GPOSession $gpo
Save-NetGPO -GPOSession $gpo

Esse comando não loteia suas alterações individuais, ele carrega e salva todo o GPO ao mesmo tempo. Portanto, se outras alterações forem feitas por outros administradores ou em uma janela de Windows PowerShell diferente, salvar o GPO substituirá essas alterações.

Modificar uma regra de firewall existente

Quando uma regra é criada, Netsh e Windows PowerShell permitem que você altere as propriedades e a influência da regra, mas a regra mantém seu identificador exclusivo (em Windows PowerShell, esse identificador é especificado com o parâmetro -Name). Por exemplo, você pode ter uma regra Permitir Web 80 que habilita a porta TCP 80 para tráfego não solicitado de entrada. Você pode alterar a regra para corresponder a um endereço IP remoto diferente de um servidor Web cujo tráfego será permitido especificando o nome localizado e legível pelo homem da regra.

Set-NetFirewallRule -DisplayName "Allow Web 80" -RemoteAddress 192.168.0.2

O Netsh exige que você forneça o nome da regra para que ela seja alterada e não temos uma maneira alternativa de obter a regra de firewall. Em Windows PowerShell, você pode consultar a regra usando suas propriedades conhecidas. Ao executar Get-NetFirewallRule, você pode notar que condições comuns, como endereços e portas, não aparecem. Essas condições são representadas em objetos separados chamados Filtros. Conforme mostrado antes, você pode definir todas as condições em New-NetFirewallRule e Set-NetFirewallRule. Se você quiser consultar regras de firewall com base nesses campos (portas, endereços, segurança, interfaces, serviços), precisará obter os objetos de filtro por conta própria. Você pode alterar o ponto de extremidade remoto da regra Permitir Web 80 (como feito anteriormente) usando objetos de filtro. Usando Windows PowerShell, você consulta por porta usando o filtro de porta e, em seguida, supondo que outras regras existam afetando a porta local, você cria com consultas adicionais até que a regra desejada seja recuperada. No exemplo a seguir, assumimos que a consulta retorna uma única regra de firewall, que é então canalizada para o Set-NetFirewallRule cmdlet utilizando a capacidade do Windows PowerShell de pipeline de entradas.

Get-NetFirewallPortFilter | ?{$_.LocalPort -eq 80} | Get-NetFirewallRule | ?{ $_.Direction -eq "Inbound" -and $_.Action -eq "Allow"} | Set-NetFirewallRule -RemoteAddress 192.168.0.2

Você também pode consultar regras usando o caractere curinga. O exemplo a seguir retorna uma matriz de regras de firewall associadas a um programa específico. Os elementos da matriz podem ser modificados em cmdlets subsequentes Set-NetFirewallRule .

Get-NetFirewallApplicationFilter -Program "*svchost*" | Get-NetFirewallRule

Várias regras em um grupo podem ser modificadas simultaneamente quando o nome do grupo associado é especificado em um comando Set. Você pode adicionar regras de firewall a grupos de gerenciamento especificados para gerenciar várias regras que compartilham as mesmas influências. No exemplo a seguir, adicionamos regras de firewall telnet de entrada e saída ao grupo Telnet Management. Em Windows PowerShell, a associação de grupo é especificada quando as regras são criadas pela primeira vez para recriar as regras de exemplo anteriores. Não é possível adicionar regras a um grupo de regras personalizado no Netsh.

New-NetFirewallRule -DisplayName "Allow Inbound Telnet" -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -RemoteAddress LocalSubnet -Action Allow -Group "Telnet Management"
New-NetFirewallRule -DisplayName "Block Outbound Telnet" -Direction Outbound -Program %SystemRoot%\System32\tlntsvr.exe -RemoteAddress LocalSubnet -Action Allow -Group "Telnet Management"

Se o grupo não for especificado no momento da criação da regra, a regra poderá ser adicionada ao grupo de regras usando a notação de ponto em Windows PowerShell. Você não pode especificar o grupo usando Set-NetFirewallRule , pois o comando permite consultar por grupo de regras.

$rule = Get-NetFirewallRule -DisplayName "Allow Inbound Telnet"
$rule.Group = "Telnet Management"
$rule | Set-NetFirewallRule

Com a ajuda do comando, se o nome do Set grupo de regras for especificado, a associação de grupo não será modificada, mas todas as regras do grupo receberão as mesmas modificações indicadas pelos parâmetros fornecidos. O scriptlet a seguir permite todas as regras em um grupo predefinido que contém gerenciamento remoto influenciando regras de firewall.

Set-NetFirewallRule -DisplayGroup "Windows Firewall Remote Management" -Enabled True

Há também um cmdlet separado Enable-NetFirewallRule para habilitar regras por grupo ou por outras propriedades da regra.

Enable-NetFirewallRule -DisplayGroup "Windows Firewall Remote Management" -Verbose

Excluir uma regra de firewall

Objetos de regra podem ser desabilitados para que não estejam mais ativos. Em Windows PowerShell, o cmdlet Disable-NetFirewallRule deixará a regra no sistema, mas a colocará em um estado desabilitado para que a regra não seja mais aplicada e impacte o tráfego. Uma regra de firewall desabilitada pode ser habilitada novamente pelo Enable-NetFirewallRule. Esse cmdlet é diferente do Remove-NetFirewallRule, que remove permanentemente a definição de regra do dispositivo. O cmdlet a seguir exclui a regra de firewall existente especificada do repositório de políticas local.

Remove-NetFirewallRule -DisplayName "Allow Web 80"

Assim como acontece com outros cmdlets, você também pode consultar se as regras devem ser removidas. Aqui, todas as regras de firewall de bloqueio são excluídas do dispositivo.

Remove-NetFirewallRule -Action Block

Talvez seja mais seguro consultar as regras com o comando Obter e salvá-la em uma variável, observar as regras a serem afetadas e, em seguida, encaminhá-las para o comando Remover , assim como fizemos para os comandos Set . O exemplo a seguir mostra como você pode exibir todas as regras de firewall de bloqueio e, em seguida, excluir as quatro primeiras regras.

$x = Get-NetFirewallRule -Action Block
$x
$x[0-3] | Remove-NetFirewallRule

Gerenciar remotamente

O gerenciamento remoto usando o WinRM está habilitado por padrão. Os cmdlets que dão suporte ao parâmetro CimSession usam WinRM e podem ser gerenciados remotamente por padrão. O exemplo a seguir retorna todas as regras de firewall do repositório persistente em um dispositivo chamado RemoteDevice.

Get-NetFirewallRule -CimSession RemoteDevice

Podemos executar quaisquer modificações ou exibir regras em dispositivos remotos usando o parâmetro -CimSession . Aqui, removemos uma regra de firewall específica de um dispositivo remoto.

$RemoteSession = New-CimSession -ComputerName RemoteDevice
Remove-NetFirewallRule -DisplayName "AllowWeb80" -CimSession $RemoteSession -Confirm

Implantar configurações básicas de regra IPsec

Uma política IPsec (segurança de protocolo da Internet) consiste em regras que determinam o comportamento IPsec. O IPsec dá suporte à autenticação de par no nível da rede, autenticação de origem de dados, integridade de dados, confidencialidade de dados (criptografia) e proteção de reprodução. Windows PowerShell pode criar políticas IPsec poderosas e complexas, como no Netsh e no console do Firewall do Windows. No entanto, como Windows PowerShell é baseada em objeto em vez de baseada em token de cadeia de caracteres, a configuração em Windows PowerShell oferece maior controle e flexibilidade. No Netsh, os conjuntos de autenticação e criptografia foram especificados como uma lista de tokens separados por vírgulas em um formato específico. Em Windows PowerShell, em vez de usar configurações padrão, você primeiro cria os objetos de autenticação ou proposta criptográfica desejados e os agrupa em listas em sua ordem preferencial. Em seguida, você cria uma ou mais regras IPsec que fazem referência a esses conjuntos. O benefício desse modelo é que o acesso programático às informações nas regras é muito mais fácil. Consulte as seções a seguir para esclarecer exemplos. modelo de objeto para criar uma única regra ipsec.

Criar regras IPsec

O cmdlet a seguir cria a regra básica do modo de transporte IPsec em um objeto Política de Grupo. Uma regra IPsec é simples de criar; tudo o que é necessário é o nome de exibição e as propriedades restantes usam valores padrão. O tráfego de entrada é autenticado e a integridade é verificada usando o modo rápido padrão e as configurações do modo main. Essas configurações padrão podem ser encontradas no console em Personalizar Padrões IPsec.

New-NetIPsecRule -DisplayName "Require Inbound Authentication" -PolicyStore domain.contoso.com\gpo_name

Adicionar métodos de autenticação personalizados a uma regra IPsec

Se você quiser criar um conjunto personalizado de propostas de modo rápido que inclua AH e ESP em um objeto de regra IPsec, crie os objetos associados separadamente e vincule suas associações. Para obter mais informações sobre métodos de autenticação, consulte Escolhendo o Protocolo IPsec. Em seguida, você pode usar as políticas de modo rápido personalizado recém-criadas ao criar regras IPsec. O objeto de conjunto de criptografia está vinculado a um objeto de regra IPsec. objeto de conjunto de criptografia. Neste exemplo, criamos a regra IPsec criada anteriormente especificando um conjunto de criptografia de modo rápido personalizado. A regra final do IPsec exige que o tráfego de saída seja autenticado pelo método de criptografia especificado.

$AHandESPQM = New-NetIPsecQuickModeCryptoProposal -Encapsulation AH,ESP -AHHash SHA1 -ESPHash SHA1 -Encryption DES3
$QMCryptoSet = New-NetIPsecQuickModeCryptoSet -DisplayName "ah:sha1+esp:sha1-des3" -Proposal $AHandESPQM -PolicyStore domain.contoso.com\gpo_name
New-NetIPsecRule -DisplayName "Require Inbound Authentication" -InboundSecurity Require -OutboundSecurity Request -QuickModeCryptoSet $QMCryptoSet.Name -PolicyStore domain.contoso.com\gpo_name

Regras de transporte IKEv2 IPsec

Uma rede corporativa pode precisar proteger as comunicações com outra agência. Mas, você descobre que a agência executa sistemas operacionais não Windows e requer o uso do padrão IKEv2 (Internet Key Exchange Version 2). Você pode aplicar recursos IKEv2 no Windows Server 2012 especificando IKEv2 como o módulo de chave em uma regra IPsec. Essa especificação de funcionalidade só pode ser feita usando a autenticação de certificado de computador e não pode ser usada com autenticação de fase 2.

New-NetIPsecRule -DisplayName "Require Inbound Authentication" -InboundSecurity Require -OutboundSecurity Request -Phase1AuthSet MyCertAuthSet -KeyModule IKEv2 -RemoteAddress $nonWindowsGateway

Para obter mais informações sobre o IKEv2, incluindo cenários, confira Como proteger o IPsec de ponta a ponta Connections usando o IKEv2.

Copiar uma regra IPsec de uma política para outra

Regras de firewall e IPsec com as mesmas propriedades de regra podem ser duplicadas para simplificar a tarefa de recria-las em diferentes repositórios de políticas. Para copiar a regra criada anteriormente de um repositório de políticas para outro, os objetos associados também devem ser copiados separadamente. Não é necessário copiar filtros de firewall associados. Você pode consultar regras a serem copiadas da mesma forma que outros cmdlets. Copiar regras individuais é uma tarefa que não é possível por meio da interface do Netsh. Veja como você pode realizá-lo com Windows PowerShell.

$Rule = Get-NetIPsecRule -DisplayName "Require Inbound Authentication"
$Rule | Copy-NetIPsecRule -NewPolicyStore domain.costoso.com\new_gpo_name
$Rule | Copy-NetPhase1AuthSet -NewPolicyStore domain.costoso.com\new_gpo_name

Manipulando erros de Windows PowerShell

Para lidar com erros em seus scripts de Windows PowerShell, você pode usar o parâmetro -ErrorAction. Esse parâmetro é especialmente útil com os cmdlets Remover . Se você quiser remover uma regra específica, você perceberá que ela falhará se a regra não for encontrada. Quando as regras estão sendo removidas, se a regra ainda não estiver lá, é aceitável ignorar esse erro. Nesse caso, você pode fazer o seguinte para suprimir quaisquer erros de "regra não encontrada" durante a operação de remoção.

Remove-NetFirewallRule -DisplayName "Contoso Messenger 98" -ErrorAction SilentlyContinue

O uso de curingas também pode suprimir erros, mas eles podem potencialmente corresponder a regras que você não pretendia remover. Esses curingas podem ser um atalho útil, mas só devem ser usados se você souber que não há regras extras que serão excluídas acidentalmente. Portanto, o cmdlet a seguir também removerá a regra, suprimindo quaisquer erros "não encontrados".

Remove-NetFirewallRule -DisplayName "Contoso Messenger 98*"

Ao usar curingas, se você quiser marcar o conjunto de regras correspondente, você pode usar o parâmetro -WhatIf.

Remove-NetFirewallRule -DisplayName "Contoso Messenger 98*" -WhatIf

Se você quiser apenas excluir algumas das regras correspondentes, poderá usar o parâmetro -Confirmar para obter um prompt de confirmação regra por regra.

Remove-NetFirewallRule -DisplayName "Contoso Messenger 98*" -Confirm

Você também pode apenas executar toda a operação, exibindo o nome de cada regra à medida que a operação é executada.

Remove-NetFirewallRule -DisplayName "Contoso Messenger 98*" -Verbose

Monitor

Os comandos Windows PowerShell a seguir são úteis no ciclo de atualização de uma fase de implantação. Para permitir que você exiba todas as regras IPsec em um repositório específico, use os comandos a seguir. No Netsh, esse comando não mostra regras em que profile=domain, public ou profile=domain,private. Ele só mostra regras que têm o domínio de entrada única que está incluído na regra. Os exemplos de comando a seguir mostrarão as regras IPsec em todos os perfis.

Show-NetIPsecRule -PolicyStore ActiveStore

Você pode monitorar main associações de segurança de modo para obter informações como quais pares estão atualmente conectados ao dispositivo e qual pacote de proteção é usado para formar as associações de segurança. Use o seguinte cmdlet para exibir as regras de modo main existentes e suas associações de segurança:

Get-NetIPsecMainModeSA

Localizar o GPO de origem de uma regra

Para exibir as propriedades de uma determinada regra ou grupo de regras, você consulta a regra. Quando uma consulta retorna campos especificados como NotConfigured, você pode determinar de qual política armazenar uma regra é originada. Para objetos provenientes de um GPO (o parâmetro -PolicyStoreSourceType é especificado como GroupPolicy no comando Show ), se -TracePolicyStore for passado, o nome do GPO será encontrado e retornado no campo PolicyStoreSource .

Get-NetIPsecRule -DisplayName "Require Inbound Authentication" -TracePolicyStore

É importante observar que as fontes reveladas não contêm um nome de domínio.

Implantar uma política básica de isolamento de domínio

O IPsec pode ser usado para isolar membros de domínio de membros que não são de domínio. O isolamento de domínio usa a autenticação IPsec para exigir que os dispositivos ingressados no domínio estabeleçam positivamente as identidades dos dispositivos de comunicação para melhorar a segurança de uma organização. Um ou mais recursos do IPsec podem ser usados para proteger o tráfego com um objeto de regra IPsec. Para implementar o isolamento de domínio em sua rede, os dispositivos no domínio recebem regras IPsec que bloqueiam o tráfego de rede de entrada não solicitado que não é protegido pelo IPsec. Aqui, criamos uma regra IPsec que requer autenticação por membros do domínio. Por meio dessa autenticação, você pode isolar dispositivos ingressados no domínio de dispositivos que não são unidos a um domínio. Nos exemplos a seguir, a autenticação Kerberos é necessária para tráfego de entrada e solicitada para tráfego de saída.

$kerbprop = New-NetIPsecAuthProposal -Machine -Kerberos
$Phase1AuthSet = New-NetIPsecPhase1AuthSet -DisplayName "Kerberos Auth Phase1" -Proposal $kerbprop -PolicyStore domain.contoso.com\domain_isolation
New-NetIPsecRule -DisplayName "Basic Domain Isolation Policy" -Profile Domain -Phase1AuthSet $Phase1AuthSet.Name -InboundSecurity Require -OutboundSecurity Request -PolicyStore domain.contoso.com\domain_isolation

Configurar o modo de túnel IPsec

O comando a seguir cria um túnel IPsec que roteia o tráfego de uma rede privada (192.168.0.0/16) por meio de uma interface no dispositivo local (1.1.1.1.1) anexado a uma rede pública a um segundo dispositivo por meio de sua interface pública (2.2.2.2) a outra rede privada (192.157.0.0/16). Todo o tráfego pelo túnel é verificado em busca de integridade usando ESP/SHA1 e é criptografado usando ESP/DES3.

$QMProposal = New-NetIPsecQuickModeCryptoProposal -Encapsulation ESP -ESPHash SHA1 -Encryption DES3
$QMCryptoSet = New-NetIPsecQuickModeCryptoSet -DisplayName "esp:sha1-des3" -Proposal $QMProposal
New-NetIPSecRule -DisplayName "Tunnel from HQ to Dallas Branch" -Mode Tunnel -LocalAddress 192.168.0.0/16 -RemoteAddress 192.157.0.0/16 -LocalTunnelEndpoint 1.1.1.1 -RemoteTunnelEndpoint 2.2.2.2 -InboundSecurity Require -OutboundSecurity Require -QuickModeCryptoSet $QMCryptoSet.Name

Implantar regras de firewall seguras com o IPsec

Em situações em que somente o tráfego seguro pode ser permitido por meio do Firewall do Windows, uma combinação de firewall configurado manualmente e regras IPsec são necessárias. As regras de firewall determinam o nível de segurança para pacotes permitidos e as regras IPsec subjacentes protegem o tráfego. Os cenários podem ser realizados em Windows PowerShell e no Netsh, com muitas semelhanças na implantação.

Criar uma regra de firewall segura (permitir, se seguro)

Configurar a regra de firewalls para permitir conexões se elas estiverem seguras requer que o tráfego correspondente seja autenticado e protegido pela integridade e, opcionalmente, criptografado pelo IPsec. O exemplo a seguir cria uma regra de firewall que exige que o tráfego seja autenticado. O comando permite o tráfego de rede Telnet de entrada somente se a conexão do dispositivo remoto for autenticada usando uma regra IPsec separada.

New-NetFirewallRule -DisplayName "Allow Authenticated Telnet" -Direction Inbound -Program %SystemRoot%\System32\tlntsvr.exe -Authentication Required -Action Allow

O comando a seguir cria uma regra IPsec que requer uma autenticação primeiro (computador) e tenta uma autenticação opcional de segundo (usuário). A criação dessa regra protege e permite o tráfego por meio dos requisitos de regra de firewall para o programa de mensagens.

$mkerbauthprop = New-NetIPsecAuthProposal -Machine -Kerberos
$mntlmauthprop = New-NetIPsecAuthProposal -Machine -NTLM
$P1Auth = New-NetIPsecPhase1AuthSet -DisplayName "Machine Auth" -Proposal $mkerbauthprop,$mntlmauthprop
$ukerbauthprop = New-NetIPsecAuthProposal -User -Kerberos
$unentlmauthprop = New-NetIPsecAuthProposal -User -NTLM
$anonyauthprop = New-NetIPsecAuthProposal -Anonymous
$P2Auth = New-NetIPsecPhase2AuthSet -DisplayName "User Auth" -Proposal $ukerbauthprop,$unentlmauthprop,$anonyauthprop
New-NetIPSecRule -DisplayName "Authenticate Both Computer and User" -InboundSecurity Require -OutboundSecurity Require -Phase1AuthSet $P1Auth.Name -Phase2AuthSet $P2Auth.Name

Isolar um servidor exigindo criptografia e associação de grupo

Para melhorar a segurança dos dispositivos em uma organização, você pode implantar o isolamento de domínio no qual os membros do domínio são restritos. Eles exigem autenticação ao se comunicarem entre si e rejeitam conexões de entrada não autenticadas. Para melhorar a segurança de servidores com dados confidenciais, esses dados devem ser protegidos permitindo o acesso apenas a um subconjunto de dispositivos no domínio corporativo. O IPsec pode fornecer essa camada extra de proteção isolando o servidor. No isolamento do servidor, o acesso a dados confidenciais é restrito a usuários e dispositivos com necessidades comerciais legítimas e os dados também são criptografados para evitar escutas.

Criar uma regra de firewall que requer associação de grupo e criptografia

Para implantar o isolamento do servidor, colocamos em camadas uma regra de firewall que restringe o tráfego a usuários ou dispositivos autorizados na regra IPsec que impõe a autenticação. A regra de firewall a seguir permite o tráfego telnet de contas de usuário que são membros de um grupo personalizado chamado "Autorizado ao Servidor de Acesso". Esse acesso também pode ser restrito com base no dispositivo, no usuário ou em ambos especificando os parâmetros de restrição. Uma cadeia de caracteres SDDL (Linguagem de Definição de Descritor de Segurança) é criada estendendo o SID (identificador de segurança) de um usuário ou grupo. Para obter mais informações sobre como encontrar o SID de um grupo, consulte: Encontrar o SID para uma conta de grupo. Restringir o acesso a um grupo permite que as administrações estendam forte suporte à autenticação por meio de políticas de Firewall e/ou IPsec do Windows. O exemplo a seguir mostra como criar uma cadeia de caracteres SDDL que representa grupos de segurança.

$user = new-object System.Security.Principal.NTAccount ("corp.contoso.com\Administrators")
$SIDofSecureUserGroup = $user.Translate([System.Security.Principal.SecurityIdentifier]).Value
$secureUserGroup = "D:(A;;CC;;;$SIDofSecureUserGroup)"

Usando o scriptlet anterior, você também pode obter a cadeia de caracteres SDDL para um grupo de computador seguro, conforme mostrado aqui:

$secureMachineGroup = "D:(A;;CC;;;$SIDofSecureMachineGroup)"

Para obter mais informações sobre como criar grupos de segurança ou como determinar a cadeia de caracteres SDDL, consulte Trabalhando com SIDs. O Telnet é um aplicativo que não fornece criptografia. Esse aplicativo pode enviar dados, como nomes e senhas, pela rede. Esses dados podem ser interceptados por usuários mal-intencionados. Se um administrador quiser permitir o uso do Telnet, mas proteger o tráfego, uma regra de firewall que exige criptografia IPsec poderá ser criada. Essa regra de firewall é necessária para que o administrador possa ter certeza de que, quando esse aplicativo é usado, todo o tráfego enviado ou recebido por essa porta é criptografado. Se o IPsec não autorizar a conexão, nenhum tráfego será permitido neste aplicativo. Neste exemplo, permitimos apenas o tráfego telnet de entrada autenticado e criptografado de um grupo de usuários seguro especificado por meio da criação da regra de firewall a seguir.

New-NetFirewallRule -DisplayName "Allow Encrypted Inbound Telnet to Group Members Only" -Program %SystemRoot%\System32\tlntsvr.exe -Protocol TCP -Direction Inbound -Action Allow -LocalPort 23 -Authentication Required -Encryption Required -RemoteUser $secureUserGroup -PolicyStore domain.contoso.com\Server_Isolation

Aplicação da segurança do ponto de extremidade

O exemplo anterior mostrou segurança de ponta a ponta para um aplicativo específico. Em situações em que a segurança do ponto de extremidade é necessária para muitos aplicativos, ter uma regra de firewall por aplicativo pode ser complicado e difícil de gerenciar. A autorização pode substituir a base por regra e ser feita na camada IPsec. Neste exemplo, definimos a configuração IPsec global para permitir apenas que o tráfego do modo de transporte venha de um grupo de usuários autorizado com o cmdlet a seguir. Consulte os exemplos anteriores para trabalhar com grupos de segurança.

Set-NetFirewallSetting -RemoteMachineTransportAuthorizationList $secureMachineGroup

Criar regras de firewall que permitem o tráfego de rede protegido pelo IPsec (bypass autenticado)

O bypass autenticado permite que o tráfego de um dispositivo confiável ou usuário especificado substitua as regras de bloqueio de firewall. Essa substituição é útil quando um administrador deseja usar servidores de verificação para monitorar e atualizar dispositivos sem a necessidade de usar exceções no nível da porta. Para obter mais informações, consulte Como habilitar o bypass de firewall autenticado. Neste exemplo, supomos que exista uma regra de firewall de bloqueio. Este exemplo permite que qualquer tráfego de rede em qualquer porta de qualquer endereço IP substitua a regra de bloco, se o tráfego for autenticado como proveniente de um dispositivo ou conta de usuário que seja membro do dispositivo ou grupo de segurança do usuário especificado.

New-NetFirewallRule -DisplayName "Inbound Secure Bypass Rule" -Direction Inbound -Authentication Required -OverrideBlockRules $true -RemoteMachine $secureMachineGroup -RemoteUser $secureUserGroup -PolicyStore domain.contoso.com\domain_isolation