SMB over QUIC: безопасный доступ к файловому серверу через Интернет в Windows Server 2025

SMB over QUIC это новая фича, доступная во всех редакциях Windows Server 2025, позволяющая организовать безопасный доступ к файловому серверу через Интернет (ранее была доступна в Windows Server 2022 Azure Edition). Если раньше для удаленного доступа к файловым SMB серверам приходилось поднимать дополнительную обвязку в виде VPN или RDS, то теперь с помощью SMB over QUIC можно безопасно открыть прямой доступ к файловому серверу из незащищенных сетей.

Особенности протокола SMB over QUIC:

  • Трафик между SMB сервером и пользователем защищен с помощью шифрования TLS 1.3 на базе сертификатов. Аутентификация пользователя происходит внутри защищенного туннеля.
  • Вместо традиционного SMB порта TCP/445 используется UDP/443
  • Используется современный транспортный протокол с улучшенной производительности, устойчивостью к плохим каналам и новым алгоритмом сжатия
  • Возможно ограничить подключение клиентов с помощью сертификатов (QUIC Client Access Control)
  • Внутри туннеля используется SMB 3.1.1

Часто, SMB over QUIC называют SMB VPN, т.к. теперь для организации доступа удаленных пользователей через Интернет к корпоративному файловому серверу не нужно делать дополнительную обертку в виде VPN.

Рассмотрим, как опубликовать сетевую папку на файловом сервере Windows Server 2025 через SMB over QUIC и организовать к ней защищенный доступ от клиентов с аутентификацией по сертификатам. Для настройки SMB over QUIC можно использовать Windows Admin Center (WAC) и PowerShell.

Начнем с подготовки файлового сервера с Windows Server 2025. Рекомендуется наличие домена Active Directory, однако SMB over QUIC можно настроить и для сценария рабочей группы с локальными пользователями.

Нам понадобится SSL сертификат, у которого в Subject Alternative Name (SAN) указан FQDN вашего файлового сервер. Можно использовать сертификат от внешнего CA (в том числе сертификат Let’s Encrypt), сертификат от внутреннего CA или самоподписанный сертификат (допустимо, не рекомендуется). В поле Enhanced Key Usage (EKU) сертификата должно быть разрешено использование для Server Authentication.

В качестве примера я буду использовать сценарий с использованием самоподписанного сертификата на сервере.

Создадим сертификат:

$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
New-SelfSignedCertificate -dnsname fs01.winitpro.ru -notafter $add3year -CertStoreLocation cert:\LocalMachine\My

Выбираем сертификат по его отпечатку:

$cert=Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object Thumbprint -eq D46D519FD502A89818BFB32DD80C37E6B4DF5A7A

И привязываем сертификат к SMB серверу QUIC:

New-SmbServerCertificateMapping -Name fs01.winitpro.ru -Thumbprint $cert.Thumbprint -StoreName My

Привязать сертификат к SMB папке New-SmbServerCertificateMapping

Включаем поддержку SMB over QUIC для файлового сервера:

Set-SmbServerConfiguration -EnableSMBQUIC $true

Проверяем, что теперь SMB сервер теперь слушает на UDP порту 443:

netstat -a | Select-String 443

SMB over Quic работает на UDP 443

Чтобы разрешить доступ к SMB QUIC общей папке, в Windows Defender Firewall должны быть включены соответствующие правила:

Get-NetFirewallRule -DisplayName "File and Printer Sharing (SMB-QUIC-In)"|select name,enabled,profile

По умолчанию доступ разрешен для доменного профиля сети, и запрещен для Private и Public типов сетевых профилей (включите нужные правила в зависимости от вашей конфигурации):

Правило межсетевого экрана File and Printer Sharing (SMB-QUIC-In)

Обратите внимание, что при подключении сетевой папки, SMB клиент сначала будет пытаться использовать классический порт TCP/445 и в случае недоступности порта переключаться на QUIC. Поэтому желательно ограничить в правилах файервола сервера доступ внешних клиентов по порту 445.

Теперь на клиентском компьютере нужно настроить подключение к SMB папке с помощью QUIC (в качестве клиентов поддерживаются Windows 11, Windows Server 2025 или Linux c Samba версии 4.23 и выше; Windows 10 не поддерживает протокол QUIC).

Проверяем, включена ли поддержка SMB over QUIC на клиенте Windows 11:

Get-SmbClientConfiguration | select EnableSMBQUIC

-SmbClientConfiguration | select EnableSMBQUIC

Клиентские компьютеры должны доверять сертификату, который установлен на файловом сервере. При использовании CA можно распространить на них корневой/промежуточный сертификат центра сертификации и добавить его в доверенные (можно установить сертификат через GPO). При использовании самоподписанного сертификата, нужно экспортировать его в хранилище доверенных сертификатов клиентов.

Теперь можно смонтировать сетевую папку с сервера с помощью PowerShell командлета New-SmbMapping:

New-SmbMapping -LocalPath W: -RemotePath \\fs01.winitpro.ru\Docs -TransportType QUIC

Или с помощью net use:

net use W: \\fs01.winitpro.ru\Docs /TRANSPORT:QUIC

Подключить сетевую папку через TransportType QUIC

Проверяем на клиенте в журнале событий Event Viewer -> Applications and Services Logs -> Microsoft -> Windows -> SMBClient -> Connectivity, что для подключения сетевой папки использовался транспорт QIUC (Event ID 30832):

The initial connection to the share was established.
Share name: \xxxxx
Server address: xxxxxxx:443
Session ID: 0x1900014000079
Tree ID: 0xD
Transport type: Quic
Signing used: true

Событие 30832 - использование QUIC для SMB подключения к общей папке

Если в журнале ошибка Event ID 30803, скорее всего вы не установили сертификат сервера на клиенте (или клиент не доверяет ему):

Failed to establish a network connection.
Error: The QUIC connection encountered a bad certificate during TLS.

30803 ошибка QUIC connection encountered a bad certificate during TLS

С помощью правил Client Access Control можно на сервере разрешать доступ к SMB шаре по протоколу QUIC только при наличии определенных сертификатов на клиентах. Включаем обязательную аутентификацию для SMB клиентов:

Set-SmbServerCertificateMapping -Name fs01.winitpro.ru -RequireClientAuthentication $true

Создадим самопдписанный сертификат на клиентском компьютере со сроком 3 месяца:

$clientCert = New-SelfSignedCertificate -DnsName dc01.reslab.local -CertStoreLocation "Cert:\LocalMachine\My" -NotAfter (Get-Date).AddMonths(3) -KeyAlgorithm "RSA" -KeyLength "2048"

На клиенте привязываем этот сертификат для использования при подключении к нашему файловому серверу:

New-SmbClientCertificateMapping -Namespace fs01.winitpro.ru -Thumbprint $clientCert.Thumbprint -Store My

Нужно получить SHA256 хэш сертификата клиента:

$clientCert.GetCertHashString("SHA256")

Получить SHA256 хэш сертификата клиента

Теперь на SMB сервере с QUIC разрешаем подключение клиентов с этим сертификатом (по SHA256 хэшу):

Grant-SmbClientAccessToServer -Name fs01.winitpro.ru -IdentifierType SHA256 -Identifier "892667c124ff1b8b9f9099329a8fe7701c7138a0037ed1ef7b65898fc43b6c91"

Разрешить аутентификацию на SMB сервера только для клиентов с определёнными сертификатами

Чтобы вывести все привязанные правила Client Access Control на сервере:

Get-SmbClientAccessToServer -Name fs01.winitpro.ru

Либо можно разрешить подключение всем клиентам с сертификатом от определенного издателя (задается в формате X.500). Сервер должен доверять корневому и промежуточному сертификату этого CA:

Grant-SmbClientAccessToServer -Name fs01.winitpro.ru -IdentifierType ISSUER -Identifier "<subject name>"

Дополнительно можно включить аудит событий аутентификации по сертификату (Applications and Services Logs\Microsoft\Windows\SMBServer\Audit):

Set-SmbServerConfiguration -AuditClientCertificateAccess $true

В результате, к вашему SMB серверу смогут подключиться только клиенты с одобренными сертификатами.

При использовании SMB over QUIC весь SMB трафик, включая аутентификацию, полностью шифруется. Если клиенту недоступен контроллер домена для проверки подлинности, вместо Kerberos аутентификации будет использоваться NTLMv2. Однако это безопасно, т.к. NTLM-трафик также передается в зашифрованном виде внутри TLS-туннеля QUIC.

Для использования Kerberos аутентификации клиентами, на стороне файлового сервера можно развернуть KDC Proxy, который будет пересылать запросы Kerberos с внешних клиентов на контроллер домена (описано в статье SMB over QUIC: Configure the KDC Proxy).

Одним из недостатков протокола SMB over QUIC является отсутствие поддержки старых версий SMB клиентов (Windows 10 и ниже, а также Samba до версии 4.23)


Предыдущая статья Следующая статья


Комментариев: 0 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)