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:
- Clique em Iniciar, digite gpedit e selecione Editar política de grupo.
- Navegue até Computer Configuration\Administrative Templates\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
- 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.
- Um cliente SMB em execução em um dos seguintes sistemas operacionais:
- Windows Server 2022 Datacenter: Azure Edition com a atualização KB5035857 de 12 de março de 2024. Para desbloquear o recurso de visualização, você também deve instalar Windows Server 2022 KB5035857 240302_030531 Feature Preview.
- Windows 11 com a atualização KB5035853 de 12 de março de 2024. Para desbloquear a versão prévia do recurso, você também deve instalar a Versão prévia do recurso do Windows 11 (versão original) KB5035854 240302_030535.
- Windows Server 2025 ou posterior.
- Windows 11, versão 24H2 ou posterior.
- Um certificado de cliente que é:
- Emitido para autenticação de cliente (EKU 1.3.6.1.5.5.7.3.2).
- Emitido por uma autoridade de certificação confiável pelo servidor SMB.
- Instalado no armazenamento de certificados do cliente.
- Privilégios administrativos para o servidor SMB que você está configurando.
Importante
Depois que KB5035854 estiver instalado, você deverá habilitar esse recurso na Política de Grupo:
- Clique em Iniciar, digite gpedit e selecione Editar política de grupo.
- Navegue até Computer Configuration\Administrative Templates\KB5035854 240302_030535 Feature Preview\Windows 11 (original release).
- 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:
Abra um prompt elevado do PowerShell no cliente SMB.
Liste os certificados no repositório de certificados do cliente executando o comando a seguir.
Get-ChildItem -Path Cert:\LocalMachine\My
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>"}
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:
Abra um prompt elevado do PowerShell no cliente SMB.
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.
Conecte-se ao servidor SMB.
Abra um prompt elevado do PowerShell no servidor SMB.
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.
Conecte-se ao servidor SMB.
Abra um prompt elevado do PowerShell no servidor SMB.
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 |