Windows Server 2022: come configurare SMB over QUIC

SMB over QUIC Windows Server 2022

Malgrado le innumerevoli soluzioni presenti sul mercato, lato cloud, c’è un oggetto che difficilmente tramonterà e questo oggetto si chiama File Server. E’ il servizio più longevo e cruciale di ogni azienda che viene usato, ed abusato, dagli utenti per salvare ogni tipo di oggetti.

Sebbene il File Server ha diversi limiti, come il fatto che lo stesso file non può essere aperto da due utenti contemporaneamente al contrario di SharePoint e OneDrive, rimane sempre un elemento critico per milioni di aziende in tutto il mondo.

Negli ultimi anni si sono viste alcune interessanti evoluzioni, soprattutto con l’arrivo della versione 3.x del protocollo SMB; tra tutti possiamo pensare alla crittografia integrata tra client e server per aumentare la sicurezza di comunicazione.

Come detto prima, il File Server è una specie di bolla che vive nella sua infrastruttura, che può essere esteso tramite il Distributed File Server (DFS) oppure tramite Azure File Sync, ma che per essere fruito fuori dall’azienda richiede sempre l’uso di una VPN…..questo fin’ora.

Con l’arrivo di Windows Server 2022, Microsoft ha annunciato la possibilità di utilizzare il protocollo SMB Over QUIC, che promette di rivoluzionare l’uso del File Server al di fuori del contesto aziendale.

QUIC

Prima di parlare della parte operativa, facciamo un po’ di teoria per spiegare di cosa si tratta. QUIC è un protocollo inventato da Google, con l’idea di migliorare i limiti del protocollo HTTP.

L’obiettivo di QUIC è ottenere una connessione TCP ma con latenza ridotto grazie a due principi:

  • Riduzione dell’overhead durante l’impostazione della connessione rendendo lo scambio delle chiavi di configurazione e dei protocolli supportati parte del processo di handshake iniziale
  • Utilizzo di UDP come base, tuttavia QUIC controlla separatamente ogni flusso e i dati persi vengono ritrasmessi

SMB over QUIC

SMB over QUIC offre una “VPN SMB” per telecomunicazioni, utenti di dispositivi mobili e organizzazioni con sicurezza elevata. Il certificato del server crea un tunnel crittografato TLS 1.3 sulla porta UDP 443 anziché sulla porta TCP 445. Tutto il traffico SMB, incluse l’autenticazione e l’autorizzazione all’interno del tunnel, non viene mai esposto alla rete sottostante. SMB si comporta normalmente all’interno del tunnel QUIC, vale a dire che l’esperienza utente non cambia.

Questa funzionalità è presente solo in Windows Server 2022 Datacenter Azure Edition e quindi, come suggerisce il nome, non può essere installato in un’ambiente on-premises…a meno che non abbiate Azure Stack HCI.

Per chi non lo sapesse ancora, l’utilizzo di un’infrastruttura basata su Azure Stack HCI permette di utilizzare alcuni degli asset presenti solo in Microsoft Azure, tra cui SMB over QUIC.

Configurazione Certificato

Come detto in precedenza, il punto cardine del servizio è il certificato che viene scambiato tra server e client, per rendere valida la connessione ed impedire che altri utenti possano attaccare l’infrastruttura dall’esterno. Questo certificato può essere proveniente da un’autorità pubblica, oppure può essere creato all’interno della vostra Certification Authority. Qualora decideste di acquistare un certificato, ricordate che non potrete usare un wildcard ma solo un SAN oppure Single-Name.

In questo caso useremo una CA interna.

Il primo passo consiste nel duplicare il template del certificato Computer, assegnando il nome che volete ma cercando di dagli una Naming Convention. Per evitare di dover riemettere il certificato troppe volte, scegliete una scadenza tra 3 e 5 anni, ricordandovi di spuntare la pubblicazione in Active Directory.

Nella sezione Request Handling selezionate la modalità Signature.

Nella sezione Server selezionate come Provider Key_Storage_Provider, come algoritmo ECDSA_P256 e come Request Hash SHA256.

Nella sezione Extensions – Application Policies lasciare solo Server Authentication.

Nella sezione Subject Name selezionate Supply in the request e spuntate la voce sotto.

Di default il certificato può essere generato da qualsiasi Domain Computer, ma sta a voi scegliere se aumentare il livello di sicurezza e creare un gruppo dove inserire solo i File Server autorizzati alla richiesta.

Configurazione File Server

Una volta creato il template del certificato, e messo online, è necessario andare a creare la richiesta all’interno del File Server.

Nel campo CN dovrete inserire il nome del vostro server, mentre nei SAN dovrete aggiungere tutti i valori, tra cui il nome del server (con e senza domain name) ed il nome pubblico che andrete ad utilizzare all’esterno della vostra organizzazione.

Ultimo passaggio è la configurazione del servizio che può essere fatto da Windows Admin Center o da PowerShell. Nella sezione Files & File Sharing, dovrete cliccare sul pulsante File Server Settings.

In questa sezione ci sono diverse funzionalità interessanti, come l’utilizzo dell’encryption.

Comparirà una finestra in cui dovrete selezionare quale certificato utilizzare per la connessione e quale porta usare per il servizio Kerberos via Proxy (KDC Proxy), utile per inoltrare le richieste di ticket per conto dell’utente.

Conclusa la configurazione, il servizio sarà utilizzabile e marcato come pronto.

Test Client

Prima di fare il test dal vostro client è bene ricordare che il server deve essere esposto su Internet, usando il record DNS che avete indicato anche sul certificato digitale. Sì ma con quale nome bisogna pubblicare il File Server? E’ chiaro che non tutte la aziende usano il public domain name anche per Active Directory (es. contoso.com), anzi molte aziende usano un dominio .local. Questo apre lo scenario su come mappare il disco, perchè QUIC sarà anche veloce ma non lo sarà mai come una rete locale….però su questo ci arriviamo dopo.

Torniamo a parlare del client, perchè un particolare importante è che solo Windows 11 supporta QUIC.

Il map del disco avviene in modo classico ma è possibile andare a forzare la connessione via QUIC, usando una delle due opzioni:

Torniamo un attimo al nostro dilemma di prima, ovvero come gestire la connessione fuori dall’azienda. La soluzione è all’interno di Microsoft Intune e si chiama Proactive Remediations: con questo sistema potete eseguire uno script, che magari gira ogni ora, che va a capire se il computer si trova ancora in rete locale o meno, cambiando il path della share. Ecco un veloce esempio:

$uncServer = "fileserver.contoso.local"
$uncPath = "\\$uncServer\docs"
$ServerPublic = "\\smb.contoso.com\docs"

Try
{
If ($(Test-Path -Path "Z:\") -eq $True) {
net use Z: /delete
}

If ($(Test-Path -Path "Z:\") -eq $False) {

$connectTestResult = Test-NetConnection -ComputerName $uncServer
if ($connectTestResult.PingSucceeded) { #Mount the drive local
    net use Z: $uncPath /persistent:no
    $drive = New-Object -ComObject shell.application
    $drive.NameSpace( "Z:\" ).self.name = "Docs"}
else { #Mount the drive Azure
    net use Z: $ServerPublic /persistent:no
    $drive = New-Object -ComObject shell.application
    $drive.NameSpace( "Z:\" ).self.name = "Docs QUIC"}
}
}
catch {
$errMsg = $_.Exception.Message
Write-Error $errMsg
# exit 1
}

Check File Server

Per verificare che lato sia server sia tutto ok, potete eseguire il Get-SmbServerConfiguration andando a controllare la voce EnableSMBQUIC, mentre con netstat -na | Select-String “443” potrete vedere l’elenco delle connessioni in corso

Conclusioni

SMB over QUIC è sicuramente un’ottima soluzione per esporre in modo sicuro i propri File Server all’esterno, andando ad eliminare l’uso della VPN. Per coloro che hanno Azure Stack HCI diventa ancora più interessante, perchè utilizzabile anche all’interno della propria infrastruttura. Ulteriori informazioni sulla soluzione sono disponibili in questo articolo – SMB su QUIC | Microsoft Learn.