Обмен файлами необходим для любого предприятия или группы, занятых совместной работой над проектом. Будь то офисные сотрудники или разработчики ПО — каждому требуется надёжный способ передачи информации и данных. Вот почему особую роль играют протоколы SMB и CIFS, названия которых различаются больше исторически, чем технически.
Давайте подробно рассмотрим, что означают эти протоколы и какая связь существует между ними.
1. Различия между SMB и CIFS
Итак, SMB (Server Message Block) представляет собой сетевой протокол, используемый на прикладном уровне коммуникационной модели OSI (Open Systems Interconnection). Этот протокол используется для обмена файлами между пользователями и серверами, синхронизации данных между устройствами и копирования файлов. Помимо задач, связанных с управлением файлами, SMB включает возможности отправки сообщений, печати документов и просмотра списка устройств в сети.
Протокол появился ещё в 1983 году благодаря IBM, претерпел развитие и прошёл три ключевые стадии эволюции:
SMBv1 — первоначальная версия, созданная IBM и позже усовершенствованная Microsoft. SMBv2 — обновленная версия, представленная с выпуском Windows Vista, значительно улучшила производительность и повысила уровень защиты. SMBv3 — новейшая и наиболее защищённая версия, дебютировавшая в Windows 8, обеспечивает шифрование и отказоустойчивость соединений.
Что же такое CIFS? Common Internet File System — специализированная реализация SMB, выпущенная Microsoft в 1996 году вслед за появлением Windows 95. По сути, CIFS является модификацией первой версии SMB (SMBv1) с добавлением новых особенностей. Главное новшество заключается в поддержке прямого подключения через TCP-порт 445 без участия промежуточного слоя NetBIOS.
Таким образом, CIFS — всего лишь одна из вариаций оригинального протокола SMB на определённом этапе его истории.
2. Основные характеристики разных версий SMB
Посмотрим внимательнее, какие улучшения были внесены в каждую версию SMB, какие функции появились и для каких целей они применяются.
SMBv1. Первоначальная версия протокола обладает рядом недостатков и проблем с безопасностью. Её небезопасная структура послужила причиной известных кибератак, таких как эпидемия вируса вымогателя WannaCry в 2017 году, поразившего системы Microsoft Windows. Впоследствии от использования SMBv1 повсеместно отказываются в пользу более надежных вариантов.
SMBv2. Версия SMB 2.0 вышла в свет в 2006 году одновременно с релизом Windows Vista. Она гораздо эффективнее предыдущей версии, количество используемых команд сократилось примерно с сотни до двадцати. Скорость передачи увеличилась благодаря механизму конвейеризации запросов, позволяющему отправлять следующий запрос до получения ответа на предыдущий.
SMBv3. Данная версия протокола была введена в эксплуатацию с Windows 8 и Windows Server 2012. Изначально она именовалась SMB 2.2, однако позднее была переименована в SMB 3.0.
Вот некоторые важные дополнения, внесённые в версию SMB 3.0:
Прямой доступ к памяти (SMB Direct); Многоканальная передача и отказоустойчивое подключение (SMB Multichannel и SMB Transport Failover); Поддержка полного шифрования трафика; Значительное повышение общей безопасности; Оптимизация производительности за счёт уменьшения задержек.
В версии SMB 3.0.2 (3.02), вышедшей совместно с Windows 8.1 и Windows Server 2012 R2, впервые появилась возможность отключать совместимость с SMB 1.0 для усиления безопасности.
SMB 3.1.1. Появилась в составе Windows 10 и Windows Server 2016. Обеспечивает значительный прирост безопасности благодаря улучшению алгоритмов шифрования (AES 128 GCM и AES 128 CCM) и алгоритма хэширования SHA-512 для проверки подлинности. Дополнительно было внедрено противодействие атакам типа «man-in-the-middle», когда злоумышленники перехватывают конфиденциальные данные незаметно для сторонних наблюдателей.
3. Как работает протокол SMB?
SMB действует по схеме «клиент-сервер»: клиенты используют IP-адрес или имя сервера для подключения к нему. До начала передачи данных обе стороны договариваются о параметрах связи, после чего осуществляется обмен пакетами данных.
Работа протокола SMB базируется на передаче пакетов трёх типов:
Пакеты управления сессиями: инициируют и завершают соединение с ресурсами общего пользования;
Пакеты доступа к файлам: обеспечивают взаимодействие с файлами и общие манипуляции ими;
Пакеты уведомлений: содержат механизмы оповещения и координации компонентов сети.
Принцип работы протокола SMB
При установлении сессии SMB система проверяет наличие соединения и успешно завершает процедуру аутентификации. Затем отправляется перечень функциональных возможностей клиента, зависящих от версии SMB-протокола.
Традиционно SMB способен взаимодействовать двумя путями:
Прямо через TCP/IP по стандартному порту 445, минуя NetBIOS. Этот вариант стал доминирующим способом функционирования.
Через NetBIOS — ныне устаревшую технологию, ранее применяемую до выхода Windows Server 2000, использовавшую NetBIOS API и работу с портами 137, 138 и 139.
Сегодня основным методом остаётся прямое взаимодействие по TCP/IP, которое гарантирует высокую степень гибкости и удобства эксплуатации.
4. Работа в режиме многопользовательской среды
Клиентские и серверные компоненты операционной системы Windows предоставляют встроенную поддержку SMB. Тем не менее, в клиентских выпусках Windows имеется ограничение на число пользователей, которые могут одновременно обращаться к одному хосту, тогда как серверные версии лишены подобного ограничения. Так, в зависимости от версии Windows существуют лимиты на максимальное количество параллельных подключений:
Windows XP и Vista допускают до десяти одновременных соединений;
Windows 7 и Windows 10 ограничены двадцатью соединениями.
Эти цифры важны учитывать при проектировании схемы распределения прав доступа к файлам.
5. Реализации SMB в среде Linux
Linux также поддерживает протокол SMB посредством программы Samba, представляющей бесплатную реализацию SMB-сервера. Благодаря Samba возможна интеграция Linux в среду Active Directory (AD), позволяя выступать в роли контроллера домена. К тому же доступна свободная клиентская поддержка SMB для Linux и других платформ. Подробнее о работе Samba мы поговорим отдельно, раскрыв нюансы использования этого свободно распространяемого решения.
6. Применение SMB в разных версиях Windows
Поскольку каждая версия Windows подразумевает свою специфику поддержки SMB, возникает необходимость разобраться в особенностях совместимости. Мы собрали всю необходимую информацию в удобную таблицу, демонстрирующую типы SMB, доступные в конкретных версиях операционной системы.
Таблица использование SMB в различных версиях Windows
Итог
Сегодня SMB играет ключевую роль в сетевых инфраструктурах как основной инструмент для обмена информацией между Windows и Linux. Высокая универсальность и функциональные возможности позволяют применять этот протокол в сетях различного масштаба — от малых офисов до крупных корпоративно-производственных комплексов. Несмотря на то, что эпоха CIFS осталась позади, его влияние на развитие технологий совместного доступа нельзя недооценивать.
Мы используем файлы cookie и обрабатываем персональные данные пользователей (включая данные, вводимые в формах на сайте) для улучшения работы сайта и взаимодействия с пользователями. Продолжая использовать сайт, вы соглашаетесь с этим, а также с Политикой обработки персональных данных.
Будьте в курсе вместе с ATLAS
Подпишитесь на наш Telegram-канал
и получайте актуальные новости,
обновления и полезные материалы первыми.