Compartilhar via


Configurar o SMB com controle de acesso do cliente QUIC

O controle de acesso de cliente SMB sobre QUIC permite restringir quais clientes podem acessar SMB em servidores QUIC. O controle de acesso do cliente permite que você crie listas de permissões e listas de bloqueio para que os dispositivos se conectem ao servidor de arquivos. O controle de acesso de 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 controle de acesso de certificados 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 ao 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 por meio do QUIC, um túnel criptografado em TLS 1.3 pela porta UDP 443 será criado. O controle do acesso de 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 pode 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 do SMB sobre QUIC com domínios do Active Directory, mas isso não é obrigatório. Você também pode usar o SMB por QUIC em um servidor ingressado em um grupo de trabalho com credenciais de usuário local e NTLM.

Entradas de controle de acesso podem ser adicionadas e removidas usando os cmdlets Grant-SmbClientAccessToServer e Revoke-SmbClientAccessToServer, respectivamente. Entradas de controle de negação de acesso 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 secundário pode ter acesso concedido ou negado ao adicionar uma entrada de controle de acesso que identifica o certificado por seu hash SHA256. Um grupo de certificados secundários com um emissor comum pode ter acesso concedido ou negado ao adicionar uma entrada de controle de acesso para o emissor comum. Uma entrada do emissor pode ser adicionada para certificados de AC intermediários e certificados de AC raiz. O uso de entradas do emissor pode ser útil, pois elas 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 cliente receberá acesso. Por exemplo:

  • Se uma permissão for adicionada para um certificado de autoridade certificadora e uma negação for adicionada para um dos certificados secundários, todos os certificados emitidos pela AC receberão acesso, exceto o certificado para o qual a negação é adicionada.

  • Se uma entrada de negação for adicionada para um certificado de de AC e uma entrada de permissão for adicionada para um dos certificados principais, todos os certificados emitidos pela CA serão negados. 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 Certificadora Raiz tenha duas autoridades certificadoras intermediárias chamadas intermediária CA 1 e intermediária CA 2. Se uma entrada de permissão for adicionada para a AC raiz e uma entrada de negação for adicionada para CA 2 intermediária, os certificados emitidos pela AC 1 intermediária receberão acesso e os certificados emitidos pela AC 2 intermediária 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 a Atualização KB5035857 de 12 de março de 2024 ou o 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 habilitado 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 que KB5035857 estiver instalado, você deverá habilitar esse recurso na Política de Grupo:

  1. Clique em Iniciar, digite gpedit e selecione Editar política de grupo.
  2. Navegue até Computer Configuration\Administrative Templates\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
  3. Abra a política KB5035857 240302_030531 Feature Preview e selecione Habilitado.

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

Importante

Depois que KB5035854 estiver instalado, você deverá habilitar esse recurso na Política de Grupo:

  1. Clique em Iniciar, digite gpedit e selecione Editar política de grupo.
  2. Navegue até Computer Configuration\Administrative Templates\KB5035854 240302_030535 Feature Preview\Windows 11 (original release).
  3. Abra a política KB5035854 240302_030535 Feature Preview e selecione Habilitado.

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 ambos RequireClientAuthentication e SkipClientCertificateAccessCheck estiverem definidos 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 elevado do PowerShell no cliente SMB.

  2. Liste os certificados no repositório de certificados do cliente executando o comando a seguir.

    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 comando a seguir. 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. Ele é 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 diferentes usando algoritmos diferentes em relação ao 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 elevado do PowerShell 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 coletada na seção anterior usando a variável.

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

Após a conclusão, o cliente certificado é usado pelo cliente SMB para autenticar no servidor SMB correspondente ao FQDN.

Teste de conectividade de mapeamento

Realize um teste de conectividade mapeando um compartilhamento 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, você estará pronto para prosseguir para a próxima etapa, pois isso verifica se o mapeamento de certificado do servidor e o mapeamento do certificado do cliente estão configurados.

Configure o controle de acesso do cliente

Conceda clientes individuais

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

  1. Conecte-se ao servidor SMB.

  2. Abra um prompt elevado do PowerShell 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 <hash> usando o identificador de certificado de cliente SHA256 que você reuniu na seção Reunir as informações do certificado do cliente SMB.

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

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

Conceda autoridades de certificação específicas

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

  1. Conecte-se ao servidor SMB.

  2. Abra um prompt elevado do PowerShell 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 diferenciado 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>"
    

Depois que essa etapa for concluída, execute o cmdlet New-SmbMapping conforme mencionado no Teste de conectividade de mapeamento , pois é recomendado executar uma segunda vez para verificar se o controle de acesso do 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 do cliente (excluindo o certificado raiz), como o assunto, o emissor, o número de série, o 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. Essa ID é exibida em determinados eventos de conectividade do cliente, o que permite que o administrador corresponda facilmente ao servidor com 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

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

Caminho ID do evento
Logs de serviços e aplicativos\Microsoft\Windows\SMBServer\Audit 3007
3008
3009
Logs de aplicativos e serviços\Microsoft\Windows\SMBClient\Connectivity 30831