QUIC und SMB
Die Vorteile von QUIC können nicht nur über HTTP sondern auch bei anderen Protokollen genutzt werden. Besonders interessant ist hierbei SMB, das "Datei Sharing Protokoll" von Microsoft. Seit aufgrund von COVID19 sehr viele Mitarbeiter im Homeoffice aktiv sind und ein VPN nutzen. VPNs nutzen aber entweder UDP, TCP oder HTTPS und dann wird SMB over VPN nicht so performant laufen, wie es eigentlich möglich ist. SMB over QUIC soll hier eine deutliche Verbesserung versprechen.
Client und Server
SMB over QUIC ist nichts, was noch für Windows 10 Clients oder älter und Windows Server 2019 und früher kommt. Um SMB over QUIC nutzen zu können, sollte es schon Windows 2025 Server oder Windows 2022 in Azure sein. Als Client ist Windows 11 Mindestvorrausetzung.
Applies to: Windows Server 2025, Windows Server 2022 Datacenter: Azure Edition,
Windows 11 or later
Quelle: SMB over QUIC
https://learn.microsoft.com/en-us/windows-server/storage/file-server/smb-over-quic
Den aktuellen Status der lokalen Konfiguration können sie sehr einfach per PowerShell in Erfahrung bringen:
Das sind meine Standardwerte eines Windows 11 23H2 (Build 22631.4169) Desktops.
- Get-SmbServerConfiguration
https://learn.microsoft.com/en-us/powershell/module/smbshare/get-smbserverconfiguration - Get-SmbClientConfiguration
https://learn.microsoft.com/en-us/powershell/module/smbshare/get-smbclientconfiguration
Allerdings bedeutet dies nicht, dass SMB auch funktioniert. Auf dem Client können Sie z.B. QUIC ein und ausschalten. Aber auf dem Windows 11 23H2 (Build 22631.4169) funktioniert dies noch nicht.
Set-SmbClientConfiguration -EnableSMBQUIC $false
Da sind einige Commandlets schon weiter als das darunterliegende System.
- Set-SmbClientConfiguration
https://learn.microsoft.com/en-us/powershell/module/smbshare/set-smbclientconfiguration?view=windowsserver2022-ps - Configure SMB over QUIC client access control in Windows Server 2022 Azure
Edition and Windows Server 2025 (preview)
https://learn.microsoft.com/en-us/windows-server/storage/file-server/configure-smb-over-quic-client-access-control
SMB mit QUIC konfigurieren
Au anderen Seiten haben Sie hoffentlich schon gelesen, dass QUIC immer eine Verschlüsselung mit TLS 1.3 erfordert. Wir benötigen daher auf jedem SMB-Serer, der auch per QUIC erreichbar sein soll, zum einen ein passendes vertrauenswürdiges Zertifikat und die passenden Cipher Suites.
Achtung: Die Nutzung mit "Self Signed
Certificates" ist für ein geschlossenes Testfeld in Ordnung
aber in der Produktion sollten Sie immer PKI-Zertifikate
nutzen.
Speziell wenn Sie später auch noch mit Client Zertifikaten
arbeiten, skalieren selbst erstellte Zertifikate nicht mehr.
Auf dem Server fordern wir ein Zertifikat an und binden es an den SMB-Service.
$QUICCert = New-SelfSignedCertificate ` -DnsName "server.msxfaq.de" ` -CertStoreLocation "Cert:\LocalMachine\My" ` -NotAfter (Get-Date).AddMonths(12) ` -KeyAlgorithm "RSA" ` -KeyLength "2048" New-SmbServerCertificateMapping ` -Name "server.msxfaq.de" ` -Thumbprint $QUICCert.Thumbprint ` -Store My ` -Requireclientauthentication $true
Kontrollieren Sie danach, dass der Server auch auf UDP/445 lauscht:
PS C:\> Get-NetUDPEndpoint -LocalPort 445
Bilder und Mitschnitte reichte ich nach
SMB Verbindung mit QUIC
Eine Verbindung vom Client zum Server können Sie sowohl per CMD-Shell (NET USE) als auch PowerShell (New-SMBMapping) einrichten.
NET USE * \\server.msxfaq.de\test /TRANSPORT:QUIC
New-SMBMapping ` -LocalPath 'N:' ` -RemotePath '\\server.msxfaq.de\test' ` -TransportType QUIC
Allerdings werden beide Befehle aktuell immer noch TCP bevorzugen und auch nicht selbst im Hintergrund eine QUIC-Verbindung versuchen und dann wechseln. Anscheinend traut Microsoft hier noch nicht den verschiedenen Übertragungsnetzwerken.
Quelle: New-SMBMapping
https://learn.microsoft.com/en-us/powershell/module/smbshare/new-smbmapping
Sie müssen also explizit QUIC als Transportprotokolle angegeben. Ich könnte mir aber vorstellen, dass Sie dies in zukünftigen Versionen des SMBClient auch einmal ändert. Browser wissen ja auch damit umzugehen, dass Sie mit TCP starten und bei erfolgreicher QUIC-Verbindung dann umsteigen. Allerdings gibt es schon erste Quellen, die genau das behaupten:
The client attempts to connect using TCP/IP [4] and QUIC [5] in parallel.
That is because the client does not know if the server supports QUIC, TCP, or
both. As a result, the client needs to attempt both. At the moment, TCP gets a
slight head start to establish the connection. Doing so provides the best
experience for people inside the corporate network while still offering
transparent QUIC connectivity when the users are not.
Quelle:
https://www.starwindsoftware.com/blog/smb-over-quic-testing-guide-part-1/
Weitere Analysen stehen hier aber noch aus.
- QUIC-Herunterfahren: DoS-Schwachstelle in Windows-Servern mit SMB über QUIC
https://www.akamai.com/de/blog/security-research/smb-over-quic-dos-windows-servers - New-SMBMapping
https://learn.microsoft.com/en-us/powershell/module/smbshare/new-smbmapping
SMB, QUIC und Client Zertifikate (QUIC CAC)
Während klassisches SMB sich per NTLM, Kerberos o.ä. anmelden, eröffnet sich mit QUIC und der Nutzung von TLS auch die Authentifizierung per MTLS.
Diese Funktion war im Sep 2024 noch "Preview" und auf Insider-Versionen beschränkt.
Dazu muss natürlich der Client auch ein Computerzertifikat bekommen, welchem der SMB-Server vertraut. Mit einem "Self Signed Zertifikat" sollten Sie so eine Konfiguration nicht betreiben, denn dann müssten sie ja alle Client-Zertifikate auf dem Server als "vertrauenswürdig" installieren. Für eine Demonstration der Funktion in einem Testfeld kann dies aber schon nützlich sein. Voraussetzung ist natürlich, dass der Client schon dem Zertifikat auf dem QUIC-Server vertraut.
#Erstellen eines CLient Zertifikats $QUICclientCert = New-SelfSignedCertificate ` -DnsName client1.msxfaq.de ` -CertStoreLocation "Cert:\LocalMachine\My" ` -NotAfter (Get-Date).AddMonths(12) ` -KeyAlgorithm "RSA" ` -KeyLength "2048" # Zuordnen an den SMB QUIC Client New-SmbClientCertificateMapping ` -Namespace client1.msxfaq.de ` -Thumbprint $QUICclientCert.Thumbprint ` -Store My # Export des SelfSigned zum Import auf dem Server Export-Certificate ` -Cert $QUICclientCert ` -FilePath path\clientCert.cer
Bei einem SelfSigned Zertifikat müssen Sie es nun auf dem Server als "trusted" addieren. Wurde das Zertifikat von ihrer internen PKI ausgestellt, der ihr SMB-Server vertraut, dann können Sie sich diesen Schritt sparen. Sie müssen auf dem Server aber den Thumbprint des Zertifikats einspielen:
Grant-SmbClientAccessToServer ` -Name Server DNS name ` -IdentifierType SHA256 ` -Identifier <Hash(sha256) des Zertifikats>
Bilder mit der RTM-Version folgen.
- Grant-SmbShareAccess
https://learn.microsoft.com/en-us/powershell/module/smbshare/grant-smbshareaccess?view=windowsserver2022-ps - SMB over QUIC client access control now
supported in Windows Insider
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-over-quic-client-access-control-now-supported-in-windows/ba-p/3951938
Weitere Links
- SMB over QUIC
https://learn.microsoft.com/en-us/windows-server/storage/file-server/smb-over-quic - SMB over QUIC with Automanage machine best practices
https://learn.microsoft.com/en-us/azure/automanage/automanage-smb-over-quic - Troubleshoot Azure Files connectivity and access issues (SMB)
https://learn.microsoft.com/en-us/troubleshoot/azure/azure-storage/files/connectivity/files-troubleshoot-smb-connectivity - SMB over QUIC: Files Without the VPN
https://techcommunity.microsoft.com/t5/itops-talk-blog/smb-over-quic-files-without-the-vpn/ba-p/1183449 - SMB over QUIC client access control now supported in Windows Insider
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-over-quic-client-access-control-now-supported-in-windows/ba-p/3951938 - SMB alternative ports
https://aka.ms/SMBAlternativePorts - SMB Firewall changes in Windows insider
https://aka.ms/SMBfirewall - SMB over QUIC now available in Windows
Server Insider Datacenter and Standard
editions
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-over-quic-now-available-in-windows-server-insider-datacenter/ba-p/3975242 - SMB client encryption mandate now
supported in Windows Insider
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-client-encryption-mandate-now-supported-in-windows-insider/ba-p/3964037 - SMB over QUIC client access control now
supported in Windows Insider
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-over-quic-client-access-control-now-supported-in-windows/ba-p/3951938 - SMB NTLM blocking
https://aka.ms/SmbNtlmBlock - SMB dialect management
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-dialect-management-now-supported-in-windows-insider/ba-p/3916368 - SMB signing required by default in
Windows Insider
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-signing-required-by-default-in-windows-insider/ba-p/3831704 - The beginning of the end of Remote
Mailslots
https://techcommunity.microsoft.com/t5/storage-at-microsoft/the-beginning-of-the-end-of-remote-mailslots/ba-p/3762048 - SMB insecure guest auth now off by
default in Windows Insider Pro editions
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-insecure-guest-auth-now-off-by-default-in-windows-insider/ba-p/3715014 - SMB authentication rate limiter now on
by default in Windows Insider
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-authentication-rate-limiter-now-on-by-default-in-windows/ba-p/3634244 - SMB1 now disabled by default for Windows
11 Home Insiders builds
https://techcommunity.microsoft.com/t5/storage-at-microsoft/smb-authentication-rate-limiter-now-on-by-default-in-windows/ba-p/3634244 - SMB security enhancements | Microsoft
Learn
https://learn.microsoft.com/windows-server/storage/file-server/smb-security - Secure SMB Traffic in Windows Server |
Microsoft Learn
https://learn.microsoft.com/windows-server/storage/file-server/smb-secure-traffic - Protect SMB traffic from interception |
Microsoft Learn
https://learn.microsoft.com/windows-server/storage/file-server/smb-interception-defense?tabs=group-policy - Does my browser support HTTP/3 & QUIC?
https://cloudflare-quic.com/ - SMB over QUIC Testing Guide
Part I: https://www.starwindsoftware.com/blog/smb-over-quic-testing-guide-part-1/
Part II: https://www.starwindsoftware.com/blog/smb-over-quic-testing-guide-part-2/