Configurare SMB tramite il controllo di accesso client QUIC
Il controllo di accesso client SMB su QUIC consente di selezionare i client che possono accedere ai server SMB su QUIC. Il controllo di accesso client consente di creare elenchi di elementi consentiti e elenchi di blocchi per i dispositivi che si connettono al file server. Il controllo di accesso client offre alle organizzazioni maggiore protezione senza modificare l'autenticazione usata quando si stabilisce la connessione SMB e non altera l'esperienza dell'utente finale.
Funzionamento del controllo di accesso client
Il controllo di accesso client prevede che il server controlli un elenco di certificati di controllo di accesso per determinare se un client è autorizzato a stabilire una connessione QUIC con il server. Il server convalida la catena di certificati client e garantisce che sia attendibile prima di procedere con i controlli di controllo di accesso. Per configurare il controllo di accesso client, un amministratore rilascia un certificato al client e può aggiungere un hash del certificato a un elenco di controllo di accesso gestito dal server.
Se il client è autorizzato a connettersi al server tramite QUIC, viene creato un tunnel crittografato TLS 1.3 sulla porta UDP 443. Il controllo di accesso client supporta anche i certificati con nomi alternativi per i soggetti. È anche possibile configurare SMB su QUIC per bloccare l'accesso revocando i certificati o negando in modo esplicito l'accesso di determinati dispositivi. Un amministratore del server è in grado di impedire a un client di accedere al server revocando il certificato client, invece di basarsi esclusivamente sul controllo di accesso client.
Nota
È consigliabile usare SMB su QUIC con domini di Active Directory, anche se non è obbligatorio. È anche possibile usare SMB su QUIC in un server aggiunto al gruppo di lavoro con credenziali utente locali e NTLM.
È possibile aggiungere e rimuovere voci di controllo di accesso usando rispettivamente i cmdlet Grant-SmbClientAccessToServer
e Revoke-SmbClientAccessToServer
. È possibile aggiungere e rimuovere voci di controllo di accesso negate usando rispettivamente i cmdlet Block-SmbClientAccessToServer
e Unblock-SmbClientAccessToServer
. Le voci nell'elenco di controllo di accesso possono essere visualizzate usando il cmdlet Get-SmbClientAccessToServer
.
È possibile concedere o negare l'accesso a un certificato foglia aggiungendo una voce di controllo di accesso che identifica il certificato tramite l'hash SHA256. Un gruppo di certificati foglia con un'autorità emittente comune può essere concesso o negato l'accesso aggiungendo una voce di controllo di accesso dell'autorità emittente comune. È possibile aggiungere una voce dell'autorità di certificazione per i certificati CA intermedi e i certificati CA radice. L'uso delle voci dell'autorità emittente può essere utile perché consentono di ridurre il numero totale di voci da aggiungere. Se a nessuno dei certificati nella catena di certificati del client viene negato l'accesso e ad almeno uno viene consentito, al client viene concesso l'accesso. Per esempio:
Se viene aggiunta una voce di autorizzazione per un certificato CA e una voce di rifiuto per uno dei certificati foglia, viene concesso l'accesso a tutti i certificati rilasciati dalla CA, ad eccezione del certificato per il quale è stata aggiunta la voce di rifiuto.
Se viene aggiunta una voce di rifiuto per un certificato della CA e una voce di autorizzazione per uno dei certificati principali, l'accesso a tutti i certificati emessi dalla CA viene negato. Il certificato, per il quale è stata aggiunta una voce di autorizzazione, viene negato l'accesso perché qualsiasi voce di negazione nella catena di certificati ha la priorità sulle voci di autorizzazione.
Supponiamo che una CA Radice abbia due CA intermedie denominate CA intermedia 1 e CA intermedia 2. Se viene aggiunta una voce di autorizzazione per la CA radice e viene aggiunta una voce di rifiuto per l'autorità di certificazione intermedia 2, ai certificati rilasciati dall'autorità di certificazione intermedia 1 viene concesso l'accesso e ai certificati rilasciati dall'autorità di certificazione intermedia 2 viene negato l'accesso.
Prerequisiti
Per poter configurare il controllo di accesso client, è necessario un server SMB con i prerequisiti seguenti.
- Un server SMB che esegue Data center di Windows Server 2022: Azure Edition con aggiornamento del 12 marzo 2024—KB5035857 o Windows Server 2025 o versioni successive. Per sbloccare la funzionalità di anteprima, è necessario installare anche Windows Server 2022 KB5035857 240302_030531 Feature Preview.
- SMB su QUIC abilitato e configurato nel server. Per informazioni su come configurare SMB su QUIC, consultare la sezione SMB su QUIC.
- Se si usano certificati client rilasciati da un'autorità di certificazione (CA) diversa, è necessario assicurarsi che la CA sia considerata attendibile dal server.
- Privilegi amministrativi per il server SMB che si sta configurando.
Importante
Dopo aver installato KB5035857, è necessario abilitare questa funzionalità in Criteri di gruppo:
- Fare clic su Avvia, digitare gpedit e selezionare Modifica criteri di gruppo.
- Passare a Configurazione computer\Modelli amministrativi\KB5035857 240302_030531 Feature Preview\Windows Server 2022.
- Aprire il criterio KB5035857 240302_030531 Feature Preview e selezionare Abilitato.
È anche necessario un client SMB con i prerequisiti seguenti.
- Un client SMB in esecuzione in uno dei sistemi operativi seguenti:
- Windows Server 2022 Datacenter: Azure Edition con l'aggiornamento del 12 marzo 2024, KB5035857. Per sbloccare la funzionalità di anteprima, è necessario installare anche Windows Server 2022 KB5035857 240302_030531 Feature Preview.
- Windows 11 con l' aggiornamento 12 marzo 2024, KB5035853. Per sbloccare la funzionalità di anteprima, è necessario installare anche Windows 11 (versione originale) KB5035854 240302_030535 Feature Preview.
- Windows Server 2025 o versioni successive.
- Windows 11, versione 24H2 o successiva.
- Un certificato client:
- Emesso per l'autenticazione client (EKU 1.3.6.1.5.5.7.3.2).
- Rilasciato da un'autorità di certificazione considerata attendibile dal server SMB.
- Installato nell'archivio certificati del client.
- Privilegi amministrativi per il server SMB che si sta configurando.
Importante
Dopo aver installato KB5035854, è necessario abilitare questa funzionalità in Criteri di gruppo:
- Fare clic su Avvia, digitare gpedit e selezionare Modifica criteri di gruppo.
- Passare a Configurazione computer\Modelli amministrativi\KB5035854 240302_030535 Feature Preview\Windows Server 11 (versione originale).
- Aprire il criterio KB5035854 240302_030535 Feature Preview e selezionare Abilitato.
Configurare il server SMB
Per gestire le impostazioni per il client SMB, è necessario innanzitutto configurare il server SMB per imporre al client di inviare una catena di certificati valida e attendibile e di eseguire i controlli di controllo di accesso in base alla catena di certificati client. Per eseguire questa azione, eseguire il comando seguente:
Set-SmbServerCertificateMapping -RequireClientAuthentication $true
Nota
Se sia RequireClientAuthentication che SkipClientCertificateAccessCheck sono impostati su $true
, il server verifica la validità e l'attendibilità della catena di certificati client ma non esegue controlli di controllo di accesso.
Configurare il client SMB
Raccogliere le informazioni sul certificato client SMB
Per raccogliere l'hash del certificato client usando PowerShell:
Aprire un prompt di PowerShell con privilegi elevati nel client SMB.
Elencare i certificati nell'archivio certificati del client eseguendo il comando seguente.
Get-ChildItem -Path Cert:\LocalMachine\My
Eseguire il comando seguente per archiviare il certificato in una variabile. Sostituire
<subject name>
con il nome del soggetto del certificato che si desidera usare.$clientCert = Get-ChildItem -Path Cert:\LocalMachine\My | Where-Object {$_.Subject -Match "<subject name>"}
Prendere nota dell'hash SHA256 del certificato client eseguendo il comando seguente. Questo identificatore è necessario per configurare il controllo di accesso client.
$clientCert.GetCertHashString("SHA256")
Nota
L'identificazione personale archiviata nell'oggetto $clientCert
usa l'algoritmo SHA1. Questa operazione viene usata da comandi come New-SmbClientCertificateMapping
. L'identificazione personale SHA256 è anche necessaria per configurare il controllo di accesso client. Queste identificazioni personali saranno derivate usando algoritmi diversi rispetto allo stesso certificato.
Eseguire il mapping del certificato client al client SMB
Per eseguire il mapping del certificato client al client SMB:
Aprire un prompt di PowerShell con privilegi elevati nel client SMB.
Eseguire il comando
New-SmbClientCertificateMapping
per eseguire il mapping del certificato client. Sostituire<namespace>
con il nome di dominio completo (FQDN) del server SMB e usare l'identificazione personale del certificato client SHA1 raccolta nella sezione precedente usando la variabile.New-SmbClientCertificateMapping -Namespace <namespace> -Thumbprint $clientCert.Thumbprint -StoreName My
Al termine, il certificato client viene usato dal client SMB per eseguire l'autenticazione nel server SMB corrispondente al nome di dominio completo.
Testare la connettività di mappatura
Eseguire un test di connettività mappando una condivisione sul server o sul dispositivo client. Per eseguire questa operazione, eseguire uno dei comandi seguenti:
NET USE \\<server DNS name>\<share name> /TRANSPORT:QUIC
O
New-SmbMapping -RemotePath \\<server DNS name>\<share name> -TransportType QUIC
Se viene visualizzato un messaggio di errore che indica che l'accesso è stato negato dal server, puoi procedere con il passaggio successivo in quanto ciò verifica la configurazione del mapping dei certificati del server e del mapping dei certificati del client.
Configurare il controllo di accesso client
Concedere singoli client
Eseguire la procedura per concedere un accesso client specifico al server SMB usando il controllo di accesso client.
Accedere al server SMB.
Aprire un prompt di PowerShell con privilegi elevati nel server SMB.
Eseguire il comando
Grant-SmbClientAccessToServer
per concedere l'accesso al certificato client. Sostituire<name>
con il nome host del server SMB e<hash>
usando l'identificatore del certificato client SHA256 raccolto nella sezione Raccogliere le informazioni sul certificato client SMB.Grant-SmbClientAccessToServer -Name <name> -IdentifierType SHA256 -Identifier <hash>
Si è concesso l'accesso al certificato client. È possibile verificare l'accesso al certificato client eseguendo il cmdlet Get-SmbClientAccessToServer
.
Concedere autorità di certificazione specifiche
Eseguire la procedura per concedere l'accesso ai client da un'autorità di certificazione specifica usando il controllo di accesso client.
Accedere al server SMB.
Aprire un prompt di PowerShell con privilegi elevati nel server SMB.
Eseguire il comando
Grant-SmbClientAccessToServer
per concedere l'accesso al certificato client. Sostituire<name>
con il nome host del server SMB e<subject name>
con il nome distinto X.500 completo del certificato dell'autorità di certificazione. Ad esempio:CN=Contoso CA, DC=Contoso, DC=com
.Grant-SmbClientAccessToServer -Name <name> -IdentifierType ISSUER -Identifier "<subject name>"
Al termine di questo passaggio, eseguire il cmdlet New-SmbMapping
come indicato nel Test di connettività di mapping , poiché è consigliabile effettuare una seconda verifica per accertarsi che il controllo di accesso client sia stato configurato correttamente.
Verificare i log degli eventi
Alcuni eventi, ad esempio l'accesso consentito e negato, vengono acquisiti a scopo di risoluzione dei problemi. Questi eventi forniscono informazioni sui certificati client (esclusi il certificato radice), ad esempio l'oggetto, l'emittente, il numero di serie, l'hash SHA1 e SHA256 e le voci di controllo di accesso applicabili a questi certificati. Questi eventi visualizzano l'ID connessione. Questo ID viene visualizzato in determinati eventi di connettività client, che consente all'amministratore di associare facilmente il server al client che ha tentato di stabilire la connessione.
Il controllo di questi eventi è disabilitato per impostazione predefinita e può essere abilitato eseguendo il comando seguente:
Set-SmbServerConfiguration -AuditClientCertificateAccess $true
Dopo l'abilitazione, questi eventi vengono acquisiti nel visualizzatore eventi nei percorsi seguenti:
Sentiero | ID evento |
---|---|
Registri applicazioni e servizi\Microsoft\Windows\SMBServer\Audit | 3007 3008 3009 |
Registri applicazioni e servizi\Microsoft\Windows\SMBClient\Connectivity | 30831 |