SMB протокол, обзор версий, описание технологии
Однако для того, чтобы взаимодействие между отдельными компонентами работало, необходимы четкие соглашения, представленные в форме протоколов. Например, одним из самых важных и старых сетевых протоколов является протокол SMB. Мы подробно разберём его это в этой статье.
Что такое SMB (блок сообщений сервера)?
Для реализации протокола SMB в Windows NT 4.0 Microsoft использовала название Common Internet File System (CIFS), которое впоследствии использовалось как синоним семейства протоколов SMB. Сегодня CIFS является особенно распространенным термином для первой версии SMB 1.0.
Как работает SMB?
TCP – порт 445 предназначен для установления соединения и передачи данных через TCP / SMB. Разрешение адресов обычно происходит через систему доменных имен (DNS) или через Link Local Multicast Name Resolution (LLMNR) в небольших сетях.
Протокол SMB: обзор версий
SMB 1.0 (CIFS)
Первая версия протокола сетевой связи часто приравнивается к варианту Common Internet File System (CIFS), описанному ранее. Однако последнее на самом деле относится только к аспекту первой редакции протокола – особенно для реализации протокола в устройствах с Windows NT 4.0. В этом первом варианте связь по-прежнему осуществлялась через интерфейс NetBIOS, а также через UDP-порты 137 (разрешение имен) и 138 (передача пакетов), а также через TCP-порт 139 (установка и транспортировка соединения). Зависимость от NetBIOS прекратилась с выходом Windows 2000 ; протокол, официально обозначенный как SMB 1.0, теперь позволяет прямое соединение через TCP (порт 445).
SMB 2.0
По соображениям совместимости первая версия протокола была сохранена. Microsoft также придерживалась этой меры в последующих версиях.
SMB 2.1
Версия 2.1 протокола SMB тесно связана с Windows 7. Пересмотренная версия второй редакции протокола была выпущена вместе с операционной системой в 2007 году и, помимо ряда незначительных оптимизаций производительности, она предоставила новые механизмы блокировки для регулирования доступа к файлам. более эффективно (чтение, запись, удаление и т. д.).
SMB 3.0
Windows 8 была выпущена в 2012 году, а вместе с новой версией операционной системы Microsoft появилась новая версия Server Message Block. Первоначально это называлось SMB 2.2, но позже было изменено на обозначение SMB 3.0, которое применяется и сегодня. Эта версия протокола также направлена на повышение производительности и безопасности соединений SMB, особенно в виртуализированных центрах обработки данных. Следующие новые функции были ключевыми для этого улучшения:
SMB 3.1.1
SMB 3.1.1 (опубликованный в 2015 году с Windows 10) расширил серию протоколов проверкой целостности перед аутентификацией на основе хэш-значений SHA-256. Кроме того, в системе используется шифрование AES-128 в режиме счетчика Галуа (GCM). Для всех устройств связи с SMB 2.0 или выше SMB 3.1.1 делает безопасное соединение обязательным.
Таблица версий SMB
| Версия SMB | Поддерживается с | Новые особенности |
|---|---|---|
| CIFS | Windows NT 4.0 | Связь через интерфейс NetBIOS |
| SMB 1.0 | Windows 2000 | Прямое подключение через TCP |
| SMB 2.0 | Windows Vista, Windows Server 2008, Samba 3.5 | Различные улучшения производительности, улучшенная подпись сообщений, функция кеширования свойств файла |
| SMB 2.1 | Windows 7, Windows Server 2008 R2 | Механизмы блокировки |
| SMB 3.0 | Windows 8, Windows Server 2012, Samba 4.0 | Многоканальные соединения, сквозное шифрование, удаленный доступ к хранилищу |
| SMB 3.0.2 | Windows 8.1, Windows Server 2012 R2 | |
| SMB 3.1.1 | Windows 10, Windows Server 2016, Samba 4.3 | Проверка целостности, шифрование AES-128 с режимом Галуа / счетчика (GCM) |
Какие аспекты безопасности важно учитывать при использовании SMB?
В течение многих лет Microsoft считала важным в своих системах, чтобы старые версии Server Message Block также поддерживались более новыми выпусками для обеспечения бесперебойной связи между старыми и новыми устройствами. Но обеспечение совместимости с тех пор связано с повышенным риском безопасности. Это связано с тем, что SMB 1.0 имеет ряд уязвимостей по сравнению с последующими протоколами, которые, например, делают компьютер уязвимым для DoS-атак.
Особенно в сетях высок риск атаки на основе протокола SMB. Все версии SMB обычно активируются из соображений совместимости – например, поскольку это требуется для подключенных принтеров или других сетевых устройств. Даже если старая версия протокола практически больше не используется, она остается легкой мишенью для злоумышленников, которые могут переключить связь на SMB 1.0 и атаковать целевую систему без серьезных препятствий. Вот почему с Windows 10 Microsoft решила больше не поддерживать первую версию и автоматически деактивировать ее, когда она не используется.
Где используется или реализуется SMB
Помимо реализаций Server Message Block в различных выпусках Windows, протокол был интегрирован во множество других программных проектов, чтобы обеспечить связь за пределами семейства Microsoft. Наиболее известные реализации SMB включают следующее:
SMB, CIFS и Samba: что это за протоколы и для чего они используются
Чтобы подключиться к Интернету, отправлять или получать файлы, важно, чтобы это было возможно с помощью ряда протоколов. В этой статье мы поговорим о трех из них. Мы собираемся объяснить, что такое SMB, CIFS и Samba протокол. Мы увидим, в чем их основные отличия и для чего каждый из них используется.
Что такое протокол SMB
Прежде всего мы собираемся объяснить, что Протокол SMB. Это одна из старейших программ, которая со временем открыла доступ к файлам и каталогам, а также к сетевым ресурсам. Он отвечает за обмен информацией между процессами системы. Он был создан IBM.
SMB означает Сервер Блок сообщение. Этот протокол клиент-сервер отвечает за управление доступом к этим файлам или каталогам. В частности, он был разработан в 1983 году. Он присутствовал в различных Windows операционных систем.
Сегодня этот протокол позволяет подключаться к более старым устройствам с предыдущими версиями Microsoft операционная система. Для обмена файлами два устройства должны сначала установить соединение. Отсюда протокол SMB позволяет клиенту подключаться к серверу.
В соответствии с тем, что мы упомянули, Microsoft решила удалить поддержку первой версии SMB 1.0. Это может позволить, например, проводить DDoS-атаки на компьютер.
Что такое протокол CIFS?
Но, конечно, это было не только изменение имени. Логично добавлены разные функции. Например, они добавили поддержку символических ссылок или жестких ссылок, большего размера файла.
Сегодня CIFS используется очень редко. Современные системы будут использовать SMB 2 или SMB 3. В основном последний, поскольку он находится в самых последних версиях, начиная с Windows 8. Можно сказать, что это обновления CIFS, которые соответствуют первой версии SMB.
Как работает Samba
Эта реализация была для UNIX-подобных систем. Мы можем использовать его в Linux, macOS или Unix, и таким образом они действуют как клиенты в сетях Windows. В данном случае его первоначальный выпуск был в 1992 году, хотя с течением времени у него были разные версии.
Вывод о различиях между SMB, CIFS и Samba
Так в чем же разница между SMB, CIFS и Samba? Мы можем сказать что SMB был первоначальным протоколом, появившимся в 1980-х годах. Он был создан IBM для обмена файлами и доступа к принтерам. Со временем были разные версии. В основном он использовался в Windows и DOS.
В свою очередь, CIFS так позже стала известна первоначальная версия SMB, когда Microsoft начала использовать ее в своих системах. У него были определенные реализации, позволяющие подключать несколько платформ, таких как Windows или Linux. Однако в настоящее время CIFS практически не используется. С другой стороны, мы можем найти последние версии SMB, такие как SMB 2 или SMB 3.
Наконец, самба это реализация вышеизложенного с открытым исходным кодом. Бесплатная реализация, позволяющая использовать его в различных системах, таких как Linux, macOS или Unix. При этом он был выпущен в начале 1990-х годов.
Общие сведения о совместном использовании файлов с помощью протокола SMB 3 в Windows Server
Область применения: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012
В этой статье описывается функция SMB 3 в Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012, а также практическое применение совершенно новой или обновленной функциональной возможности этой версии по сравнению с предыдущими, а также требования к оборудованию. SMB также является протоколом структуры для решений программно-определяемого центра обработки данных (SDDC), например для Локальных дисковых пространств, реплик хранилища и др. SMB версии 3.0 появился в Windows Server 2012 и постепенно улучшался в последующих выпусках.
Описание компонента
Протокол SMB — это сетевой протокол для общего доступа к файлам, который позволяет приложениям компьютера читать и записывать файлы, а также запрашивать службы серверных программ в компьютерной сети. Протокол SMB может использоваться поверх протокола TCP/IP или других сетевых протоколов. С помощью протокола SMB приложение (или использующий его пользователь) может получать доступ к файлам и другим ресурсам удаленного сервера. Это позволяет приложениям читать, создавать и обновлять файлы на удаленном сервере. SMB может также обмениваться данными с любой серверной программой, которая настроена на получение клиентских запросов SMB. SMB — это протокол структуры, который используется вычислительными технологиями программно-определяемых центров обработки данных (SDDC), такими как Локальные дисковые пространства и реплики хранилища. Дополнительные сведения см. в статье Windows Server software-defined datacenter (Программно-определяемый центр обработки данных Windows Server).
Практическое применение
В этом подразделе описан ряд способов использования нового протокола SMB 3.0.
Если вам нужно сэкономить дисковое пространство в общем файловом ресурсе SMB, рассмотрите возможность использования Синхронизации файлов Azure с включенным распределением по уровням облака. Благодаря этому вы сможете кэшировать часто используемые файлы локально и распределять редко используемые файлы по уровням облака, сохраняя пространство в локальном хранилище и поддерживая производительность. Дополнительные сведения см. в статье Планирование развертывания Синхронизации файлов Azure.
Новые и измененные функции
В следующих разделах описываются функциональные возможности, добавленные в SMB 3, и последующие обновления.
Функции, добавленные в Windows Server 2019 и Windows 10 версии 1809
Функции, добавленные в Windows Server версии 1709 и Windows 10 версии 1709
| Компонент или функция | Новинка или обновление | Сводка |
|---|---|---|
| Гостевой доступ к общим папкам отключен | Создать | Клиент SMB больше не разрешает следующие действия: доступ учетной записи гостя к удаленному серверу; откат к учетной записи гостя после ввода недопустимых учетных данных. Дополнительные сведения см. в статье Гостевой доступ в SMB2 отключен по умолчанию в Windows. |
| Глобальное сопоставление SMB | Создать | Сопоставляет удаленную общую папку SMB с буквой диска, доступного всем пользователям на локальном узле, включая контейнеры. Это необходимо, чтобы включить операции ввода-вывода для контейнера в томе данных для прохода через удаленную точку подключения. Учтите, что при использовании глобального сопоставления SMB для контейнеров всем пользователям на узле контейнера предоставляется доступ к удаленной общей папке. Все приложения, работающие на узле контейнера, также получат доступ к сопоставленной удаленной общей папке. Дополнительные сведения см. в статье Container Storage Support with Cluster Shared Volumes (CSV), Storage Spaces Direct, SMB Global Mapping (Поддержка контейнера хранилища с общими томами кластера (CSV), Локальными дисковыми пространствами и глобальным сопоставлением SMB). |
| Управление диалектом SMB | Создать | Теперь можно задать значения реестра, чтобы управлять минимальной (диалектом) и максимальной версией SMB. Дополнительные сведения см. в статье Controlling SMB Dialects (Управление диалектами SMB). |
Функции, добавленные в SMB 3.11 с Windows Server 2016 и Windows 10 версии 1607
| Компонент или функция | Новинка или обновление | Сводка |
|---|---|---|
| Шифрование SMB | Обновлено | Шифрование SMB 3.1.1 в режиме AES-GCM выполняется быстрее, чем подписывание SMB или шифрование SMB предыдущей версии с использованием AES-CCM. |
| Кэширование каталогов | Создать | SMB 3.1.1 включает дополнительные возможности для кэширования каталогов. Клиенты Windows теперь могут кэшировать каталоги гораздо большего размера (приблизительно с 500 000 записей). Клиенты Windows могут выполнять запросы к каталогу, используя буферы размером в 1 МБ, чтобы сократить круговые пути и увеличить производительность. |
| Целостность предварительной проверки подлинности | Создать | В SMB 3.1.1 целостность предварительной проверки подлинности обеспечивает улучшенную защиту от атак типа «злоумышленник в середине», при которых несанкционировано изменяются подключения SMB и сообщения проверки подлинности. Дополнительные сведения см. в статье SMB 3.1.1 Pre-authentication integrity in Windows 10 (Целостность предварительной проверки подлинности с SMB 3.1.1 в Windows 10). |
| Улучшения в шифровании SMB | Создать | SMB 3.1.1 предоставляет механизм для согласования алгоритма шифрования при каждом соединении с вариантами для AES-128-CCM и AES-128-GCM. AES-128-GCM используется по умолчанию для новых версий Windows, в то время как для более старых версий продолжается использование AES-128-CCM. |
| Поддержка последовательного обновления кластера | Создать | Позволяет последовательно обновлять кластер, используя SMB для поддержки различных максимальных версий SMB для кластеров в процессе обновления. Дополнительные сведения об обмене данными SMB с помощью различных версий (диалектов) протокола см. в статье Controlling SMB Dialects (Управление диалектами SMB). |
| Поддержка клиентов SMB Direct в Windows 10 | Создать | Windows 10 Корпоративная, Windows 10 для образовательных учреждений и Windows 10 Pro для рабочих станций теперь предусматривают поддержку клиентов SMB Direct. |
| Встроенная поддержка вызовов API FileNormalizedNameInformation | Создать | Добавлена встроенная поддержка для запросов нормализованного имени файла. Дополнительные сведения см. в статье о FileNormalizedNameInformation. |
Дополнительные сведения см. в статье What’s new in SMB 3.1.1 in the Windows Server 2016 Technical Preview 2 (Новые возможности SMB 3.1.1 в Windows Server 2016 (техническая версия 2)).
Возможности, добавленные в SMB 3.02 с Windows Server 2012 R2 и Windows 8.1
| Компонент или функция | Новинка или обновление | Сводка |
|---|---|---|
| Автоматическая повторная балансировка клиентов масштабируемого файлового сервера | Создать | Увеличивает масштабируемость и управляемость масштабируемых файловых серверов. Клиентские подключения SMB отслеживаются для каждого общего файлового ресурса (а не для каждого сервера), после чего клиенты перенаправляются в узел кластера с оптимальным доступом к тому, используемому общим файловым ресурсом. Это повышает производительность, снижая трафик перенаправления между узлами файлового сервера. Клиенты перенаправляются после начального подключения при перенастройке системы хранения данных кластера. |
| Производительность в глобальной сети | Обновлено | В Windows 8.1 и Windows 10 улучшена работа CopyFile SRV_COPYCHUNK благодаря поддержке SMB при использовании проводника для удаленного копирования из одного расположения на удаленном компьютере в другую копию на том же сервере. Вы скопируете только небольшой объем метаданных через сеть (передается 1/2 КиБ на 16 МиБ данных файла). Это приводит к значительному увеличению производительности. Для SMB — это различие на уровне операционной системы и проводника. |
| SMB Direct | Обновлено | Улучшает производительность нагрузок малого ввода-вывода, повышая эффективность при размещении нагрузок с малыми вводами-выводами (например, база данных оперативной обработки транзакций (OLTP) в виртуальной машине). Эти улучшения заметны при использовании более быстрых сетевых интерфейсов, таких как Ethernet 40 Гбит/с и InfiniBand 56 Гбит/с. |
| Ограничения пропускной способности SMB | Создать | Теперь можно использовать Set-SmbBandwidthLimit, чтобы задать ограничения пропускной способности в трех категориях: VirtualMachine (трафик Hyper-V по протоколу SMB), LiveMigration (трафик динамической миграции Hyper-V по протоколу SMB) или по умолчанию (все остальные типы трафика SMB). |
Дополнительные сведения о новых и измененных функциях SMB в Windows Server 2012 R2 см. в статье What’s New in SMB in Windows Server (Новые возможности SMB в Windows Server).
Функции, добавленные в SMB 3.0 с Windows Server 2012 и Windows 8
| Компонент или функция | Новинка или обновление | Сводка |
|---|---|---|
| Прозрачная отказоустойчивость SMB | Создать | Позволяет администраторам обслуживать аппаратное и программное обеспечение узлов кластерного файлового сервера, не прерывая работу приложений сервера, хранящих данные в этих файловых ресурсах. Кроме того, при сбое оборудования или программного обеспечения в узле кластера клиенты SMB подключатся к другому узлу кластера, не прерывая работу приложений сервера, хранящих данные в этих файловых ресурсах. |
| Масштабирование SMB | Создать | Поддержка нескольких экземпляров SMB на масштабируемом файловом сервере. С помощью версии 2 общих томов кластера (CSV) администраторы могут создавать файловые ресурсы, предоставляющие одновременный доступ к файлам данных с прямыми операциями ввода-вывода через все узлы кластера файлового сервера. Это улучшает использование пропускной способности сети и балансировку нагрузки клиентов файлового сервера, а также оптимизирует производительность серверных приложений. |
| Технология SMB Multichannel | Создать | Обеспечивает агрегирование пропускной способности и отказоустойчивости сети, если доступно несколько путей между клиентом SMB и сервером. Это позволяет приложениям сервера использовать всю доступную пропускную способность сети и быть устойчивыми к сетевым сбоям. |
SMB Multichannel в SMB 3 вносит значительные улучшения в производительность по сравнению с предыдущими версиями SMB.
SMB Direct в SMB 3 вносит значительные улучшения в производительность по сравнению с предыдущими версиями SMB.
В SMB 3 реализация SMB в Windows изменена для улучшения поведения кэширования на клиенте, а также увеличения пропускной способности.
SMB 3 предусматривает улучшения для API CopyFile (), а также для связанных инструментов, таких как Robocopy, позволяя отправлять значительно больше данных через сеть.
Требования к оборудованию
Для обеспечения прозрачной отказоустойчивости SMB необходимо соблюдать следующие требования.
Клиенты нижнего уровня могут подключаться к общим папкам со свойством «Постоянная доступность», но для таких клиентов прозрачная отказоустойчивость не поддерживается.
Для поддержки многоканальности SMB необходимо соблюдать следующие требования.
Для поддержки прямой технологии SMB необходимо соблюдать следующие требования.
Дополнительные сведения
Следующий список содержит дополнительные ресурсы со сведениями о работе в сети по протоколу SMB и связанным технологиям в Windows Server 2012 R2, Windows Server 2012 и Windows Server 2016.





