Открыть сервисСервис

SMB — сетевой файловый протокол

SMB (Server Message Block) — сетевой протокол прикладного уровня, предназначенный для совместного доступа к файлам, принтерам и другим ресурсам между компьютерами в локальной сети. Протокол работает поверх TCP/IP (в современных реализациях) или NetBIOS (в исторических) и позволяет клиентам читать и записывать файлы на удалённых серверах, обращаться к сетевым принтерам, обмениваться сообщениями между процессами. SMB является одним из основных протоколов организации файловых сервисов в корпоративных сетях и активно используется в средах с операционными системами Windows, а также в UNIX-подобных системах через свободные реализации.

История

Протокол был разработан компанией IBM в 1980-х годах для организации совместного доступа к файлам и принтерам в сетях на базе OS/2. Первоначально SMB работал поверх транспортного уровня NetBIOS и использовал порты 137–139. В 1990-х годах Microsoft, ставшая основным разработчиком протокола, интегрировала SMB в линейку операционных систем Windows NT, сделав его центральным компонентом службы «Общая папка» (File and Printer Sharing).

В 1996 году Microsoft представила спецификацию SMB, позже переименованную в CIFS (Common Internet File System) — попытку адаптировать протокол для работы через Интернет. CIFS оказалась не слишком удачной: протокол был тяжеловесным и медленным. В 2006 году вышла версия SMB 2.0, разработанная для Windows Vista, которая существенно упростила командную структуру и повысила производительность. Последующие версии — SMB 2.1, SMB 3.0, SMB 3.1.1 — добавили поддержку шифрования, многоузловые кластеры (Scale-Out File Server), устойчивость к сбоям сети и аутентификацию Kerberos.

Принцип работы

SMB использует клиент-серверную модель. Сервер экспортирует ресурсы (каталоги, принтеры), клиент подключается к ним и выполняет операции: открытие файла, чтение, запись, поиск, блокировка. Обмен сообщениями происходит по модели запрос-ответ: клиент отправляет SMB-запрос, сервер возвращает ответ.

В современных версиях SMB работает поверх TCP на порту 445. Этот порт появился в Windows 2000, когда Microsoft отказалась от транспортного уровня NetBIOS в пользу прямой инкапсуляции SMB в TCP-пакеты (Direct hosting). Порты 137–139 остались для совместимости со старыми системами.

Версии протокола

ВерсияГодОперационная системаОсновные особенности
SMB 1.0 / CIFS1996Windows 95/98/NTРабота через NetBIOS, низкая производительность
SMB 2.02006Windows VistaУпрощённые команды, оптимизация для медленных сетей
SMB 2.12010Windows 7Многоузловые кластеры, оптимизация памяти
SMB 3.02012Windows 8 / Server 2012Шифрование AES-128-CCM, отказоустойчивость
SMB 3.1.12015Windows 10 / Server 2016Протокол SMB over QUIC, защита от атак

Реализации

Помимо проприетарной реализации Microsoft, существует свободная реализация Samba, разрабатываемая с 1992 года. Samba позволяет UNIX- и Linux-серверам предоставлять файловые ресурсы по протоколу SMB и подключаться к SMB-ресурсам Windows. Samba входит в состав большинства дистрибутивов Linux и используется для построения файловых серверов, интеграции Linux-машин в домены Active Directory.

Безопасность

SMB 1.0 считается уязвимым протоколом. В 2017 году уязвимость EternalBlue в реализации SMB 1.0 Microsoft была использована вредоносным программным обеспечением WannaCry и NotPetya для массового шифрования файлов и распространения по сети. После этого Microsoft выпустила патчи и рекомендовала отключить SMB 1.0. В современных версиях Windows 10 и Windows 11 SMB 1.0 по умолчанию отключён.

Для защиты трафика SMB в версии 3.0 и выше предусмотрено шифрование AES-128-CCM, а аутентификация выполняется через Kerberos. Рекомендуется ограничивать доступ к порту 445 на сетевых периметрах и использовать SMB 3.1.1.

Применение

SMB является стандартом де-факто для организации файловых сервисов в корпоративных сетях на базе Windows. Протокол поддерживается сетевыми файловыми системами NAS-устройств (Synology, QNAP), виртуальными платформами (Hyper-V, VMware), системами резервного копирования. В Linux-средах SMB используется Samba для интеграции с Windows-инфраструктурой.

Источники:

  • Microsoft Docs. SMB Protocol Overview.
  • Samba Project Documentation. https://www.samba.org
  • Microsoft Security Response Center. MS17-010: Security Update for SMB Server.
  • RFC 1002, RFC 2113 (NetBIOS over TCP/IP).
Заметили ошибку или не согласны с информацией в статье? Напишите нам support@bfometr.ru