SMB over QUIC
SMB over QUIC

Привет, Хабр!

Года три назад, если бы мне сказали, что мы будем раздавать корпоративные шары наружу без VPN, я бы покрутил пальцем у виска. Доступ к файлам из интернета — это либо IPSec/SSL-VPN, либо костыли вроде WebDAV и SFTP. Прямой SMB? Только для самых отчаянных. Но на дворе 2025 год, и правила игры изменились.

SMB over QUIC перестал быть экзотикой из Azure-изданий Windows Server и превратился в штатную фичу Windows Server 2025. А главное, с выходом Samba 4.23 эта технология стала по-настоящему кросс-платформенной. Теперь можно дать безопасный, стабильный и контролируемый доступ к файлам на Windows и Linux серверах через обычный порт 443/UDP.

В этой статье мы разберём, как это работает, настроим всё по шагам на обеих платформах и составим чек-лист для миграции с VPN. Без маркетинговой шелухи — только практика, команды и подводные камни.

Пролог: Боль удалённого филиала и магия RDP-копипаста

Думаю, у многих админов есть такой «интересный» филиал. У меня он был. Маленький офис, где интернет-провайдер наглухо блокировал всё, кроме 80/443 портов. О VPN речи не шло — «дорого, сложно, а у нас тут три бухгалтера».

Годами их работа с файлами напоминала изощрённую пытку:

  1. Зайти по RDP на терминальный сервер в центральном офисе.

  2. Найти нужный документ на общей шаре.

  3. Скопировать его.

  4. Свернуть RDP, вставить на свой рабочий стол.

  5. ...и молиться, чтобы сессия не отвалилась на середине 200-мегабайтного отчёта.

Когда файлы не пролезали через буфер обмена, в ход шла корпоративная почта с гигантскими вложениями, забивающая почтовые ящики. Любая попытка заикнуться про «пробросить 445-й порт» наталкивалась на стену непонимания со стороны безопасности и провайдера.

Решение пришло с апгрейдом файлового сервера до Windows Server 2025. Мы выпустили для него сертификат, открыли наружу 443/UDP и одной командой включили SMB over QUIC. В тот же вечер пользователи филиала просто открыли в Проводнике \\files.company.com\common и... всё заработало. Без VPN, без обрывов, с нормальной скоростью. Для них это выглядело как магия. Для нас — как логичный шаг инженерной эволюции.


Почему QUIC — это тот самый «SMB VPN», которого мы ждали?

Если коротко, QUIC — это современный транспортный протокол поверх UDP, который изначально разрабатывался для ускорения веба (HTTP/3), но оказался идеальным кандидатом и для других задач.

Чем он лучше классического TCP для доступа к файлам через интернет?

  • Шифрование по умолчанию: QUIC неотделим от TLS 1.3. Весь трафик шифруется с момента установки соединения. Не нужно отдельно настраивать IPsec или SMB Encryption.

  • Работает через порт 443/UDP: Этот порт почти никогда не блокируется провайдерами и корпоративными файрволами, в отличие от 445/TCP.

  • Устойчивость к смене сети: Пользователь с ноутбуком может переключиться с Wi-Fi на LTE, его IP-адрес сменится, но QUIC-соединение не разорвётся. TCP бы в такой ситуации «подвис».

  • Решение проблемы «Head-of-line blocking»: Потеря одного пакета в TCP-потоке тормозит все остальные. В QUIC потоки мультиплексируются, и потеря данных в одном не блокирует передачу других. Это делает связь по нестабильному интернету гораздо отзывчивее.

Microsoft не зря называет эту технологию «SMB VPN». Она даёт защищённый туннель для файлового доступа, но без необходимости настраивать и поддерживать полноценный VPN-клиент.


Windows Server 2025
Windows Server 2025

Практика №1: Настраиваем Windows Server 2025

Итак, к делу. Настройка на стороне Windows Server 2025 до смешного проста, но требует внимания к деталям.

Шаг 0: Подготовка

  1. Сервер: У вас должен быть Windows Server 2025 любой редакции (Standard или Datacenter).

  2. Сертификат: Нужен SSL-сертификат (подойдёт и от публичного CA, и от вашего внутреннего), у которого в Subject Alternative Name (SAN) прописано FQDN вашего файлового сервера (например, files.company.com). Ни в коем случае не используйте IP-адреса в сертификате! Это приведёт к откату на NTLM-аутентификацию. В поле EKU (Enhanced Key Usage) должно быть Server Authentication.

  3. Файрвол: Откройте порт UDP 443 на вход для внешних интерфейсов сервера. При этом TCP 445 снаружи должен быть закрыт.

Шаг 1: Привязка сертификата и включение QUIC

Заходим на файловый сервер и запускаем PowerShell с правами администратора.

PowerShell

# 1. Находим наш сертификат в хранилище LocalMachine\My
$cert = Get-ChildItem Cert:\LocalMachine\My | Where-Object {$_.Subject -match "files.company.com"}

# 2. Привязываем (маппим) этот сертификат к SMB-серверу для использования с QUIC
New-SmbServerCertificateMapping -Name files.company.com -Thumbprint $cert.Thumbprint -StoreName My

# 3. Включаем SMB over QUIC на сервере
Set-SmbServerConfiguration -EnableSMBQUIC $true

Всё! Сервер готов принимать подключения.

Шаг 2: Подключение клиента

На клиентской машине (Windows 11 или Server 2025) можно подключиться как обычно, и система сама попытается использовать QUIC, если TCP/445 недоступен. Но для надёжности можно указать транспорт явно:

PowerShell

# Подключаем сетевой диск, принудительно используя QUIC
New-SmbMapping -LocalPath Z: -RemotePath \\files.company.com\common -TransportType QUIC

Или старым добрым net use:

DOS

net use Z: \\files.company.com\common /TRANSPORT:QUIC

Шаг 3: «Стоп-кран» и аудит

Если что-то пошло не так, вы всегда можете отключить QUIC на стороне клиента для диагностики:

PowerShell

# Полностью отключаем QUIC на клиенте
Set-SmbClientConfiguration -EnableSMBQUIC $false

Эта же настройка доступна через GPO. Для мониторинга подключений заглядывайте в журнал событий: Applications and Services Logs > Microsoft > Windows > SMBClient > Connectivity. Успешное QUIC-соединение отмечается событием с ID 30832.


Безопасность на максимум: Client Access Control (CAC)

Просто включить шифрованный доступ — это хорошо. Но ещё лучше — контролировать, кто именно может подключаться. Здесь на сцену выходит Client Access Control — возможность разрешать или блокировать доступ на основе клиентских сертификатов.

Это идеальный сценарий для корпоративных ноутбуков: вы выдаёте им сертификаты через автоэнроллмент и разрешаете доступ только им. Случайное устройство из интернета, даже зная логин и пароль, подключиться не сможет.

Настраивается это так:

PowerShell

# На сервере: требуем, чтобы клиенты представляли свой сертификат
Set-SmbServerCertificateMapping -Name files.company.com -RequireClientAuthentication $true

# Включаем аудит, чтобы видеть в логах решения о доступе
Set-SmbServerConfiguration -AuditClientCertificateAccess $true

# Теперь создаём правило. Например, разрешим доступ клиенту с конкретным сертификатом
# (хеш можно взять из свойств сертификата клиента)
Grant-SmbClientAccessToServer -Name files.company.com -IdentifierType SHA256 -Identifier "хеш_сертификата_клиента"

# Посмотреть все правила
Get-SmbClientAccessToServer -Name files.company.com

События аудита будут падать в SMBServer\Audit (ID 3007-3009). Есть и команды для блокировки (Block-SmbClientAccessToServer). Это мощнейший инструмент, превращающий ваш файловый сервер в настоящую крепость.


Samba 4.23
Samba 4.23

Практика №2: Приручаем Samba 4.23 на Linux

Исторически Samba и Windows шли рука об руку, и поддержка SMB over QUIC — не исключение. С версии 4.23 это стало возможным.

Шаг 0: Подготовка

  1. Версия: Убедитесь, что у вас Samba 4.23 или новее.

  2. Зависимости: В официальной документации отмечается, что для серверной части требуется поддержка QUIC на уровне ядра Linux. Клиентская часть может работать через userspace-библиотеки. Следите за документацией вашего дистрибутива.

  3. Сертификаты и файрвол: Требования те же, что и для Windows: валидный сертификат (key+cert+ca) и открытый порт 443/UDP.

Шаг 1: Настройка smb.conf

Откройте /etc/samba/smb.conf и добавьте в секцию [global] пару новых параметров:

Ini, TOML

# /etc/samba/smb.conf (фрагмент)

[global]
   # Добавляем QUIC к списку разрешённых транспортов. TCP оставляем для локальной сети.
   server smb transports = tcp, quic
   
   # Если эта машина будет и клиентом, указываем и для неё
   client smb transports = tcp, quic

   # Настройки для TLS, необходимые для QUIC
   tls enabled = yes
   tls keyfile  = /etc/samba/ssl/server.key
   tls certfile = /etc/samba/ssl/server.crt
   tls cafile   = /etc/samba/ssl/ca.crt

   # ... остальные ваши глобальные настройки

[common]
   path = /srv/samba/common
   read only = no
   # ...

После сохранения конфига перезапустите сервисы Samba (smbd и nmbd). Сервер готов! Клиенты Windows смогут подключаться к нему по FQDN точно так же, как к Windows Server.


Чек-лист миграции с VPN и частые грабли

Переход на SMB over QUIC не означает, что VPN нужно немедленно выкинуть. Это просто другой инструмент для конкретной задачи.

Когда стоит переходить:

  • Удалённые сотрудники и филиалы: основной сценарий, для которого это и создавалось.

  • Доступ с мобильных устройств: устойчивость к смене сети — киллер-фича.

  • Упрощение инфраструктуры: если VPN нужен был только для доступа к файлам, от него можно отказаться.

Когда не стоит отключать TCP/445:

  • Внутри локальной сети: TCP-транспорт по-прежнему быстрее и проще для внутреннего трафика. QUIC здесь не даёт преимуществ.

  • Устаревшие клиенты: старые версии Windows или сторонние клиенты могут не поддерживать QUIC.

  • Сценарии с DFS-N: Будьте осторожны! Внешние клиенты могут не видеть внутренние имена DFS-таргетов. Microsoft работает над этим, но пока это известное ограничение.

Частые грабли (и как на них не наступать):

  1. «Не работает по имени!» — 99% проблем здесь. Проверьте:

    • DNS-имя сервера корректно разрешается во внешний IP.

    • Это же FQDN прописано в SAN сертификата.

    • Вы не пытаетесь подключиться по IP-адресу.

  2. «Работает медленнее, чем VPN» — Проверьте MTU и политики шейпинга UDP-трафика на всём пути. Некоторые провайдеры режут UDP.

  3. Проблемы с Kerberos — Для «чистой» Kerberos-аутентификации извне Microsoft рекомендует разворачивать KDC Proxy. Без него аутентификация скорее всего пойдёт через NTLMv2 (внутри защищённого TLS-туннеля, что безопасно, но всё же).

  4. Samba не стартует с QUIC — Проверьте версию, наличие нужных библиотек и модулей ядра, а также права доступа к файлам сертификатов.


Эпилог: Будущее уже здесь

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

В 2025 году эта технология наконец-то стала зрелой и доступной как в мире Windows, так и в Linux. Это тот редкий случай, когда новая фича не усложняет жизнь, а, наоборот, позволяет убрать десяток костылей и сделать инфраструктуру проще и надёжнее.

Главное — подходить к внедрению с умом: тестировать, настраивать безопасность и иметь план отката.

Комментарии (25)


  1. SlavikF
    26.09.2025 17:03

    На каких дистрибутивах Линукса запустится такой сервер?

    И на каких версия Windows будет работать клиент?


  1. exchange12rocks
    26.09.2025 17:03

    Мы выпустили для него сертификат, открыли наружу 443/UDP и одной командой включили SMB over QUIC. В тот же вечер пользователи филиала просто открыли в Проводнике \\files.company.com\common и... всё заработало. Без VPN, без обрывов, с нормальной скоростью.

    А могли давным давно просто сделать WebDAV и всего-то


  1. AdminFuture Автор
    26.09.2025 17:03

    Сервер запустится на дистрибутивах Linux со свежим ядром и Samba 4.23 или новее. В первую очередь это Arch, openSUSE и последние версии Fedora.

    Клиент будет работать на Windows 11 и Windows Server 2025. Поддержки в Windows 10 нет.


    1. Sudo22
      26.09.2025 17:03

      А жаль, я уж обрадовался..


  1. haga777
    26.09.2025 17:03

    Извините, а можно уточнить ?

    Если у меня выделенный адрес на микротик, далее мне какие шаги предпринять ? Приобрести портов, но не пойму как это взаимодействовать с именем, вместо адреса


    1. Sudo22
      26.09.2025 17:03

      DDNS в помощь.


    1. AdminFuture Автор
      26.09.2025 17:03

      Вам нужно приобрести доменное имя, и создать dns запись с ip адресом в настройках у регистратора


  1. vikarti
    26.09.2025 17:03

    И сразу вопросы:

    • а с безопасностью что? иногда ж smb в VPN суют из-за того что дырки находятся переодически

    • как это в России работает, с учетом что QUIC в России часто работает....своебразно


    1. AdminFuture Автор
      26.09.2025 17:03

      Это надёжно. Весь SMB-трафик, включая аутентификацию, полностью шифруется туннелем TLS 1.3. Атакующий извне не видит сам протокол SMB, чтобы его атаковать. Дополнительно можно включить проверку клиентских сертификатов, что защитит от кражи пароля.

      В России нужно обязательно тестировать. Из-за особенностей работы провайдеров и систем фильтрации (ТСПУ), QUIC может работать нестабильно, со снижением скорости или обрывами. Перед внедрением проведите пилот на сотрудниках с разными интернет-провайдерами.


  1. Vilos
    26.09.2025 17:03

    Спасибо не надо!

    Самба - боль, как в части безопасности, с регулярными уязвимостями.

    Чем вас sftp не устроило?


    1. zonek
      26.09.2025 17:03

      на виндовом ФС + 22 порт открыть в интернет? для ИБ будет прям праздник.


      1. Vilos
        26.09.2025 17:03

        Ну вешай на любой свободный порт и будет счаться....особо разницы не вижу какой номер порта торчит наружу - повешай sftp, к примеру, на самбовский порт :) Вот интересно, то что самба в статье наружу смотрит Вас вообще не смущает, а то что sftp будет смотреть: ай-яй-яй....странный вы...


    1. AdminFuture Автор
      26.09.2025 17:03

      SFTP неудобен для рядовых пользователей, так как требует отдельного клиента (вроде FileZilla) и ручного скачивания/загрузки файлов.

      SMB работает прозрачно как обычный сетевой диск в «Проводнике», позволяя редактировать файлы прямо на сервере. При этом SMB over QUIC решает исторические проблемы безопасности, шифруя весь трафик в туннеле TLS 1.3.


      1. AVX
        26.09.2025 17:03

        Tls решает только проблему чтения и/или модификации трафика посторонними. От дыр в smb он не защищает, а их за всë время столько было, что smb уже никто не доверяет. Потому и прячут за VPN.

        Упомянута возможность проверять клиентские сертификаты, но как это включить, настроить и проверить - не увидел. Хотя это наверное самое важное с точки зрения безопасности.


        1. AdminFuture Автор
          26.09.2025 17:03

          Вы абсолютно правы, TLS сам по себе не лечит уязвимости в коде Samba или Windows. Его задача — защитить канал.

          Ключевое отличие SMB over QUIC в том, что атакующий не может добраться до уязвимого кода SMB до аутентификации. Весь процесс, включая согласование диалектов и аутентификацию (самые опасные фазы в старых атаках), происходит внутри уже установленного туннеля TLS 1.3. Внешний сканер не видит SMB-сервер — он видит только зашифрованный UDP-поток. Это принципиально снижает поверхность атаки по сравнению с открытым портом 445/TCP.

          Вот краткая инструкция для Windows Server (все команды в PowerShell):

          # 1. Требуем от клиентов предъявлять сертификат
          Set-SmbServerCertificateMapping -Name files.company.com -RequireClientAuthentication $true
          
          # 2. Разрешаем доступ конкретному клиенту по SHA256-хешу его сертификата
          Grant-SmbClientAccessToServer -Name files.company.com -IdentifierType SHA256 -Identifier "хеш_сертификата"
          
          # 3. Включаем аудит, чтобы видеть в логах, кто и как подключается
          Set-SmbServerConfiguration -AuditClientCertificateAccess $true


          1. vikarti
            26.09.2025 17:03

            А можно и для Samba тоже?

            И кстати - а что с маками?


      1. Vilos
        26.09.2025 17:03

        Вот ВООБЩЕ не проблема! Не скажу за windows, но в любом Линуксе sftp монтируется как обычная папка, более того можно сделать так что пользователь даже знать не будет что эта папка сетевая и висит где то в сети....она выглядеть будет как самая обычная папка. Думаю в windows плюс-минус тоже самое можно реализовать.....через GPO монтировать сетевой диск вроде он такое умеет....но неточно, могу ошибаться, в windows я неочень


        1. vikarti
          26.09.2025 17:03

          В Windows более менее штатными средствами можно webdav...но как же он гемморойный (ну или не все его умеют готовить). Как sftp смонтировать на windows...я вот способа без допсофта не знаю.

          Если решение в статье позволит без проблем выставлять SMB в интернет без рисков безопасности и оно еще и работать будет нормально хотя бы в пределах страны - это очень хорошо.


          1. Vilos
            26.09.2025 17:03

            Я не поленился и посмотрел можно ли примонтировать сетевой диск при использовании sftp в Windows...и да....можно....Конечно придется софт установить, но для пользователя это будет как обычная сетевая папка (/или сетевой диск)....так что не самбой единой. Более того я только в очередной раз убедился что самбу использовать нежелательно, когда существуют в природе "нормальные" протоколы.

            И дааа....sftp я лишь для примера привел в комментарии выше, он просто попался "под руку"....а есть еще более красивый протокол ssh, по которому так же можно гонять файлы, короче было бы желание разобраться...


          1. Vaitek
            26.09.2025 17:03

            Штатных средств для WebDAV в Windows скоро не будет. Фича деприкейтед и скоро будет выпилена, если ещё не...


  1. AlexGluck
    26.09.2025 17:03

    А между линуксами можно 10гбит развить? Какая скорость будет если с шары на линуксе копировать в Винду?


  1. asatost
    26.09.2025 17:03

    У меня он был. Маленький офис, где интернет-провайдер наглухо блокировал всё, кроме 80/443 портов. О VPN речи не шло — «дорого, сложно, а у нас тут три бухгалтера».

    Ну т.е. SSTP не захотели разворачивать Вы, а виноват офис?

    Исторически Samba и Windows шли рука об руку

    Эээээ.... что?!
    https://www.samba.org/samba/PFIF/


    1. Vilos
      26.09.2025 17:03

      ТОже не понял:

      "VPN речи не шло — «дорого, сложно, а у нас тут три бухгалтера»."

      Почему дорого? Почему сложно? Да и не важно сколько там юзверей сидит, да хоть один - поднять тоннель дело 20 минут с перекурами.


    1. Atgorhead
      26.09.2025 17:03

      Только хотел написать что статья для админов типа next next next и есть SSTP, вы меня опередили.


  1. Rend
    26.09.2025 17:03

    Я бы не стал называть это VPN-less. Да, безопасное соединение. Но не очень понятно с безопасностью подключения к таким серверам из Internet.

    В случае VPN будет два уровня защиты - как средствами самой VPN, так и средствами сервера внутри сети после "прохода" по VPN. И, скорее всего, в этом случае будет использоваться внутренняя корпоративная зона DNS, которая не видна снаружи, а также внутренняя подсеть, опять же снаружи не маршрутизируемая.

    В описанном в статье случае этот сервер должен иметь легальный IP-адрес с легальным DNS-именем. То есть его нужно ставить либо напрямую с доступом в Internet, либо, хотя бы в DMZ. То есть он будет доступен для возможных атак напрямую только с одним уровнем защиты - самого сервера. Да, в принципе перед ним тоже можно поставить внешний Firewall, но сам факт выноса такого сервера из внутренней сети во внешнюю вызывает дополнительные опасения в безопасности.

    P. S. И я понимаю, что это решение красиво смотрится с точки зрения идеологии Azure.