Partilhar via


Configurar o controle de acesso do cliente SMB sobre QUIC

O controlo de acesso de clientes SMB sobre QUIC permite restringir quais clientes podem aceder aos servidores SMB em QUIC. O controle de acesso do cliente permite que você crie listas de permissões e listas de bloqueio para dispositivos se conectarem ao servidor de arquivos. O controle de acesso do cliente oferece às organizações mais proteção sem alterar a autenticação usada ao fazer a conexão SMB, nem altera a experiência do usuário final.

Como funciona o controle de acesso do cliente

O controle de acesso do cliente envolve o servidor verificando uma lista de certificados de controle de acesso para determinar se um cliente tem permissão para estabelecer uma conexão QUIC com o servidor. O servidor valida a cadeia de certificados do cliente e garante que ela seja confiável antes de prosseguir com as verificações de controle de acesso. Para configurar o controle de acesso do cliente, um administrador emite um certificado para o cliente e pode adicionar um hash do certificado a uma lista de controle de acesso mantida pelo servidor.

Se o cliente tiver permissão para se conectar ao servidor através do QUIC, um túnel criptografado TLS 1.3 pela porta UDP 443 será criado. O controle de acesso do cliente também oferece suporte a certificados com nomes alternativos de entidade. Você também pode configurar o SMB sobre QUIC para bloquear o acesso revogando certificados ou negando explicitamente o acesso a determinados dispositivos. Um administrador de servidor é capaz de impedir que um cliente acesse o servidor revogando o certificado do cliente, em vez de depender apenas do controle de acesso do cliente.

Observação

Recomendamos o uso de SMB sobre QUIC com domínios do Ative Directory, no entanto, não é necessário. Você também pode usar SMB através de QUIC num servidor associado a um grupo de trabalho com credenciais de utilizador local e NTLM.

As entradas de controlo de acesso podem ser adicionadas e removidas usando os cmdlets Grant-SmbClientAccessToServer e Revoke-SmbClientAccessToServer, respetivamente. As entradas de controle de acesso negado podem ser adicionadas e removidas usando os cmdlets Block-SmbClientAccessToServer e Unblock-SmbClientAccessToServer, respectivamente. As entradas na lista de controle de acesso podem ser exibidas usando o cmdlet Get-SmbClientAccessToServer.

Um certificado folha pode ter acesso concedido ou negado adicionando uma entrada de controle de acesso que identifica o certificado por seu hash SHA256. Um grupo de certificados finais com um emissor comum pode ter seu acesso concedido ou negado através da adição de uma entrada de controle de acesso para o emissor comum. Uma entrada de emissor pode ser adicionada para certificados de CA intermediários e certificados de CA raiz. O uso de entradas do emissor pode ser útil, pois ajudam a reduzir o número total de entradas que precisam ser adicionadas. Se nenhum dos certificados na cadeia de certificados do cliente tiver acesso negado e pelo menos um tiver acesso permitido, o acesso será concedido ao cliente. Por exemplo:

  • Se uma entrada de autorização for adicionada para um certificado de autoridade de certificação e uma entrada de negação for adicionada para um dos certificados finais, todos os certificados emitidos pela autoridade de certificação têm acesso concedido, exceto o certificado para o qual a entrada de negação foi adicionada.

  • Se uma entrada de negação for adicionada para um certificado de uma CA e uma entrada de permissão for adicionada para um dos certificados principais, todos os certificados emitidos pela CA terão o acesso negado. O certificado, para o qual uma entrada de permissão foi adicionada, tem acesso negado porque qualquer entrada de negação na cadeia de certificados tem prioridade sobre as entradas de permissão.

  • Suponha que uma autoridade de certificação raiz tenha duas autoridades de certificação intermediárias chamadas CA intermediária 1 e CA intermediária 2. Se uma entrada de permissão for adicionada para a autoridade de certificação raiz e uma entrada de negação for adicionada para a autoridade de certificação intermediária 2, os certificados emitidos pela autoridade de certificação intermediária 1 receberão acesso e os certificados emitidos pela autoridade de certificação intermediária 2 terão acesso negado.

Pré-requisitos

Antes de configurar o controle de acesso do cliente, você precisa de um servidor SMB com os seguintes pré-requisitos.

  • Um servidor SMB executando o Windows Server 2022 Datacenter: Azure Edition com o 12 de março de 2024 — KB5035857 Update ou Windows Server 2025 ou posterior. Para desbloquear o recurso de visualização, você também deve instalar Windows Server 2022 KB5035857 240302_030531 Feature Preview.
  • SMB sobre QUIC ativado e configurado no servidor. Para saber como configurar o SMB sobre QUIC, consulte SMB sobre QUIC.
  • Se você estiver usando certificados de cliente emitidos por uma autoridade de certificação (CA) diferente, precisará garantir que a autoridade de certificação seja confiável para o servidor.
  • Privilégios administrativos para o servidor SMB que você está configurando.

Importante

Depois de KB5035857 ser instalado, deve habilitar este recurso na Política de Grupo.

  1. Clique Iniciar, digite gpedite selecione Editar política de grupo.
  2. Navegue até Configuração do Computador\Modelos Administrativos\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
  3. Abra a política Feature Preview KB5035857 240302_030531 e selecione Ativado.

Você também precisa de um cliente SMB com os seguintes pré-requisitos.

Importante

Depois de estar instalado o KB5035854, deve habilitar esta funcionalidade na Política de Grupo:

  1. Clique Iniciar, digite gpedite selecione Editar política de grupo.
  2. Navegue até Configuração do Computador\Modelos Administrativos\KB5035854 240302_030535 Pré-visualização de Funcionalidade\Windows 11 (versão original).
  3. Abra a política KB5035854 240302_030535 Feature Preview e selecione Ativado.

Configurar o servidor SMB

Para gerenciar as configurações do cliente SMB, é necessário primeiro configurar o servidor SMB para exigir que o cliente envie uma cadeia de certificados válida e confiável e executar as verificações de controle de acesso com base na cadeia de certificados do cliente. Para executar essa ação, execute o seguinte comando:

Set-SmbServerCertificateMapping -RequireClientAuthentication $true

Observação

Se RequireClientAuthentication e SkipClientCertificateAccessCheck estiverem definidas como $true, o servidor verificará a validade e a confiabilidade da cadeia de certificados do cliente, mas não executará verificações de controle de acesso.

Configurar o cliente SMB

Reunir as informações do certificado do cliente SMB

Para reunir o hash do certificado do cliente usando o PowerShell:

  1. Abra um prompt PowerShell com privilégios elevados no cliente SMB.

  2. Liste os certificados no armazenamento de certificados do cliente executando o seguinte comando.

    Get-ChildItem -Path Cert:\LocalMachine\My
    
  3. Execute o seguinte comando para armazenar o certificado em uma variável. Substitua <subject name> pelo nome do assunto do certificado que você deseja usar.

    $clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
    
  4. Anote o hash SHA256 do certificado do cliente executando o seguinte comando. Você precisa desse identificador ao configurar o controle de acesso do cliente.

    $clientCert.GetCertHashString("SHA256")
    

Observação

A impressão digital armazenada no objeto $clientCert usa o algoritmo SHA1. Isso é usado por comandos como New-SmbClientCertificateMapping. Você também precisará da impressão digital SHA256 para configurar o controle de acesso do cliente, essas impressões digitais serão derivadas de forma diferente usando algoritmos diferentes para o mesmo certificado.

Mapeie o certificado do cliente para o cliente SMB

Para mapear o certificado do cliente para o cliente SMB:

  1. Abra um prompt do PowerShell com privilégios elevados no cliente SMB.

  2. Execute o comando New-SmbClientCertificateMapping para mapear o certificado do cliente. Substitua <namespace> pelo FQDN (nome de domínio totalmente qualificado) do servidor SMB e use a impressão digital do certificado do cliente SHA1 que você reuniu na seção anterior usando a variável.

    New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
    

Depois de concluído, o cliente certificado é usado pelo cliente SMB para autenticar no servidor SMB correspondente ao FQDN.

Testar a conectividade do mapeamento

Realize um teste de conectividade mapeando uma partilha para o seu servidor ou dispositivo cliente. Para executar isso, execute um dos seguintes comandos:

NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC

Ou

New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC

Se você receber uma mensagem de erro indicando que o acesso foi negado pelo servidor, estará pronto para prosseguir para a próxima etapa, pois isso verifica se o mapeamento de certificado do servidor e o mapeamento de certificado de cliente estão configurados.

Configurar o controle de acesso do cliente

Conceder subvenção a clientes individuais

Siga as etapas para conceder a um cliente específico acesso ao servidor SMB usando o controle de acesso do cliente.

  1. Inicie sessão no servidor SMB.

  2. Abra um prompt do PowerShell com privilégios elevados no servidor SMB.

  3. Execute o Grant-SmbClientAccessToServer para conceder acesso ao certificado do cliente. Substitua pelo nome de host e do servidor SMB usando o identificador de certificado de cliente SHA256 que você reuniu na seção Reunir as informações de certificado do cliente SMB.

    Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
    

Agora você concedeu acesso ao certificado do cliente. Você pode verificar o acesso ao certificado do cliente executando o cmdlet Get-SmbClientAccessToServer.

Conceder autoridades de certificação específicas

Siga as etapas para permitir o acesso a clientes de uma autoridade de certificação específica, também conhecida como emissor, usando o controlo de acesso do cliente.

  1. Inicie sessão no servidor SMB.

  2. Abra um prompt do PowerShell com privilégios elevados no servidor SMB.

  3. Execute o Grant-SmbClientAccessToServer para conceder acesso ao certificado do cliente. Substitua <name> pelo nome de host do servidor SMB e <subject name> pelo nome distinto X.500 completo do certificado do emissor. Por exemplo, CN=Contoso CA, DC=Contoso, DC=com.

    Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
    

Quando esta etapa estiver concluída, execute o cmdlet New-SmbMapping conforme mencionado em Testar a conectividade de mapeamento, pois uma segunda execução é recomendada para verificar se o controlo de acesso ao cliente foi configurado corretamente.

Logs de eventos de auditoria

Determinados eventos, como acesso permitido e acesso negado, são capturados para fins de solução de problemas. Esses eventos fornecem informações sobre os certificados de cliente (excluindo o certificado raiz), como o assunto, emissor, número de série, hash SHA1 e SHA256 e as entradas de controle de acesso que se aplicam a esses certificados. Esses eventos exibem uma ID de conexão. Esse ID é exibido em determinados eventos de conectividade do cliente, o que permite que o administrador faça a correspondência fácil entre o servidor e o cliente que tentou estabelecer a conexão.

A auditoria desses eventos é desabilitada por padrão e pode ser habilitada executando o seguinte comando:

Set-SmbServerConfiguration -AuditClientCertificateAccess $true

Uma vez habilitados, esses eventos são capturados no Visualizador de Eventos do nos seguintes caminhos:

Caminho ID do Evento
Registos de aplicações e serviços\Microsoft\Windows\SMBServer\Audit 3007
3008
3009
Logs de aplicativos e serviços\Microsoft\Windows\SMBClient\Connectivity 30831