Блок сообщений сервера


Из Википедии, свободной энциклопедии
  (Перенаправлено из CIFS )
Перейти к навигации Перейти к поиску

В компьютерных сетях блок сообщений сервера ( SMB ), одна из версий которого также была известна как Common Internet File System ( CIFS / sɪfs / ), [ 1 ] [ 2] представляет собой коммуникационный протокол [3] для предоставления общего доступа . к файлам и принтерам между узлами в сети. Он также предоставляет механизм аутентифицированного межпроцессного взаимодействия (IPC). В большинстве случаев SMB используется на компьютерах под управлением Microsoft Windows ., где он был известен как «Сеть Microsoft Windows» до появления Active Directory . Соответствующими службами Windows являются LAN Manager Server для серверного компонента и LAN Manager Workstation для клиентского компонента. [4]

Функции

Блок сообщений сервера обеспечивает совместное использование файлов, просмотр сети, печать и межпроцессное взаимодействие (IPC) по сети.

Протокол SMB опирается на протоколы более низкого уровня для транспорта.

Протокол Microsoft SMB часто использовался с NetBIOS через TCP/IP (NBT) через UDP с использованием номеров портов 137 и 138 и номеров портов TCP 137 и 139. NBT для использования NetBIOS поддерживается в Windows Server 2003, Windows XP, Windows 2000, Windows NT и Windows Me/98/95. NetBIOS не поддерживается в Windows Vista, Windows Server 2008 и последующих версиях Windows. Комбинация SMB/NBT обычно используется для обратной совместимости .

Протокол NetBIOS поверх NetBEUI обеспечивает поддержку NetBIOS для протокола NetBEUI. Этот протокол также называется кадрами NetBIOS (NBF). NBF поддерживается в Windows 2000, Windows NT, Windows 95, Windows 98 и Windows Me. NetBEUI больше не поддерживается в Windows XP и более поздних версиях. Однако протокол SMB также можно использовать без отдельного транспортного протокола непосредственно через TCP, порт 445. NetBIOS также поддерживался для нескольких устаревших протоколов, таких как IPX/SPX .

Система SMB Inter-Process Communication (IPC) предоставляет именованные каналы и была одним из первых общедоступных для программистов механизмов межпроцессного взаимодействия, который предоставляет службам средства для наследования аутентификации, выполняемой при первом подключении клиента [ требуется пояснение ] к SMB-сервер. [ нужна ссылка ]

Некоторые службы, работающие через именованные каналы, например, использующие собственную реализацию Microsoft DCE/RPC через SMB, известную как MSRPC через SMB, также позволяют клиентским программам MSRPC выполнять аутентификацию, которая переопределяет авторизацию, предоставляемую сервером SMB, но только в контексте клиентской программы MSRPC, которая успешно выполняет дополнительную проверку подлинности.

Подписание SMB : Windows NT 4.0 Service Pack 3 и более поздние версии имеют возможность использовать криптографию для цифровой подписи SMB-соединений. Наиболее распространенным официальным термином является «подписание SMB». Другими официально используемыми терминами являются «подписи безопасности [SMB]», «порядковые номера SMB» [5] и «подпись сообщений SMB». [6] Подписание SMB можно настроить отдельно для входящих соединений SMB (обрабатываемых службой «LanManServer») и исходящих соединений SMB (обрабатываемых службой «LanManWorkstation»). Настройка по умолчанию в Windows 98 и более поздних версиях — подписывать исходящие соединения всякий раз, когда сервер также поддерживает это, и отступать .на неподписанный SMB, если оба партнера разрешают это. Настройка по умолчанию для контроллеров домена Windows, начиная с Windows Server 2003 и более поздних версий, не разрешает откат для входящих подключений. [7] Эту функцию также можно включить для любого сервера под управлением Windows NT 4.0 с пакетом обновления 3 или более поздней версии. Это защищает от атак «человек посередине» на клиентов, получающих свои политики с контроллеров домена при входе в систему. [8]

SMB поддерживает уступающую блокировку — особый тип механизма блокировки — файлов для повышения производительности.

SMB служит основой для реализации распределенной файловой системы Microsoft .

История

SMB/CIFS/SMB1

Барри Фейгенбаум первоначально разработал SMB в IBM в начале 1983 года с целью превратить локальный доступ к файлам DOS INT 21h в сетевую файловую систему. [9] Microsoft внесла значительные изменения в наиболее часто используемую версию. Microsoft объединила протокол SMB с продуктом LAN Manager , который она начала разрабатывать для OS/2 вместе с 3Com примерно в 1990 году, и продолжала добавлять функции в протокол в Windows для рабочих групп ( около  1992 года ) и в более поздних версиях Windows.

Первоначально SMB был разработан для работы поверх API NetBIOS /NetBEUI (обычно реализуемого с помощью NBF , NetBIOS поверх IPX/SPX или NBT ). Начиная с Windows 2000 , SMB работает по умолчанию с тонким слоем, подобным пакету сообщений сеанса службы сеансов NBT, поверх TCP , используя TCP-порт 445, а не TCP-порт 139 — функция, известная как «прямой хост SMB». . [10]

Windows Server 2003 и более старые устройства NAS изначально используют SMB1/CIFS. SMB1/CIFS — чрезвычайно болтливый протокол, который не является проблемой в локальной сети с низкой задержкой. Таким образом, SMB1/CIFS становится очень медленным в глобальных сетях, поскольку рукопожатие протокола вперед и назад увеличивает присущую такой сети высокую задержку. Более поздние версии протокола уменьшили количество рукопожатий. Хотя Microsoft оценивает, что SMB1/CIFS составляет менее 10% сетевого трафика в средней корпоративной сети, это все же значительный объем трафика. [ нужна ссылка ]

Одним из подходов к уменьшению неэффективности протокола является использование продуктов WAN Acceleration, таких как продукты, предоставляемые Riverbed, Silver Peak или Cisco Systems. Лучший подход — просто исключить SMB1/CIFS, обновив серверную инфраструктуру, которая его использует. Это включает в себя как устройства NAS, так и Windows Server 2003. Наиболее эффективный метод, используемый в настоящее время для идентификации трафика SMB1/CIFS, заключается в использовании инструмента сетевого анализа, такого как Wireshark и т. д., для выявления «говорящих» SMB1/CIFS, а затем списания, перенастройки. , или обновляйте их с течением времени. Microsoft также предоставляет инструмент аудита в Windows Server 2016, который можно использовать для отслеживания говорящих SMB1/CIFS. [11]

В 1996 году, когда Sun Microsystems объявила о WebNFS , [12] Microsoft выступила с инициативой переименовать SMB в Common Internet File System (CIFS) [9] и добавила дополнительные функции, включая поддержку символических ссылок , жестких ссылок , больших размеров файлов и первоначальная попытка поддержки прямых подключений через TCP-порт 445 без использования NetBIOS в качестве транспорта (в значительной степени экспериментальная попытка, которая потребовала дальнейшей доработки). Microsoft представила некоторые частичные спецификации в виде Internet-Drafts в IETF , [13] хотя срок их подачи истек.

Microsoft «добавила SMB1 в список устаревших Windows Server 2012 R2 в июне 2013 года». [14] В Windows Server 2016 и некоторых версиях Windows 10 Fall Creators Update по умолчанию не установлен SMB1. [15]

СМБ 2.0

Microsoft представила новую версию протокола (SMB 2.0 или SMB2) в Windows Vista в 2006 году [16] и Server 2008 . Хотя протокол является частным, его спецификация была опубликована, чтобы позволить другим системам взаимодействовать с операционными системами Microsoft, использующими новый протокол. [17]

SMB2 уменьшает «болтливость» протокола SMB 1.0, уменьшая количество команд и подкоманд с более чем сотни до девятнадцати. [18] Он имеет механизмы конвейерной обработки , то есть отправки дополнительных запросов до получения ответа на предыдущий запрос, тем самым повышая производительность по каналам с высокой задержкой . Он добавляет возможность объединять несколько действий в один запрос, что значительно сокращает количество обращений клиента к серверу и обратно, в результате повышая производительность . [18] SMB1 также имеет механизм объединения, известный как AndX, для объединения нескольких действий, но клиенты Microsoft редко используют AndX. [ нужна ссылка ]Он также вводит понятие «устойчивых файловых дескрипторов»: они позволяют подключению к серверу SMB выдерживать кратковременные сбои в работе сети, типичные для беспроводной сети, без необходимости нести накладные расходы на повторное согласование нового сеанса.

SMB2 включает поддержку символических ссылок . Другие улучшения включают кэширование свойств файлов, улучшенную подпись сообщений с помощью алгоритма хеширования HMAC SHA-256 и лучшую масштабируемость за счет увеличения числа пользователей, общих ресурсов и открытых файлов на сервере, среди прочего. [18] Протокол SMB1 использует 16-битные размеры данных, что, среди прочего, ограничивает максимальный размер блока до 64 КБ. SMB2 использует 32- или 64-битные поля хранения и 128-битные в случае дескрипторов файлов , тем самым устраняя прежние ограничения на размеры блоков, что повышает производительность при передаче больших файлов по быстрым сетям. [18]

Windows Vista/ Server 2008 и более поздние операционные системы используют SMB2 при обмене данными с другими машинами, которые также могут использовать SMB2. SMB1 по-прежнему используется для соединений со старыми версиями Windows, а также с решениями NAS различных производителей. Samba 3.5 также включает экспериментальную поддержку SMB2. [19] Samba 3.6 полностью поддерживает SMB2, за исключением изменения пользовательских квот с помощью инструментов управления квотами Windows. [20]

Когда был представлен SMB2, он дал ряд преимуществ по сравнению с SMB1 для сторонних разработчиков протоколов SMB. SMB1, первоначально разработанный IBM , был реконструирован и позже стал частью большого количества операционных систем, отличных от Windows, таких как Xenix , OS/2 и VMS ( Pathworks ). X/Open частично стандартизировала его; Microsoft представила Internet-Drafts, описывающие SMB2, в IETF , частично в ответ на официальную стандартизацию IETF версии 4 сетевой файловой системы в декабре 2000 года как IETF RFC 3010. [21]; однако срок действия этих Internet-Drafts, связанных с SMB, истек без получения какого-либо одобрения IETF для отслеживания стандартов или любого другого одобрения IETF. (Исторические подробности см . на http://ubiqx.org/cifs/Intro.html .) SMB2 также представляет собой относительно чистый разрыв с прошлым. Код Microsoft SMB1 должен работать с большим количеством клиентов и серверов SMB. SMB1 предлагает множество версий информации для команд (выбор структуры, возвращаемой для конкретного запроса), потому что такие функции, как поддержка Unicode , были модифицированы позднее. SMB2 включает значительно сокращенное тестирование совместимости для разработчиков протокола. Код SMB2 имеет значительно меньшую сложность, поскольку существует гораздо меньше вариаций (например, пути кода, отличные от Unicode, становятся избыточными, поскольку SMB2 требует поддержки Unicode).

Apple перешла на SMB2 (со своего собственного Apple Filing Protocol , теперь устаревшего), начиная с OS X (MacOS) 10.9. [22] Однако этот переход был сопряжен с проблемами совместимости. [23] [24] Поддержка SMB2 не по умолчанию фактически появилась в OS X 10.7, когда Apple отказалась от Samba в пользу собственной реализации SMB под названием SMBX. [22] Apple переключилась на собственную реализацию SMBX после того, как Samba приняла GPLv3 . [25] [26] MacOS также поддерживает сетевую файловую систему IETF (NFS) в течение многих лет (и продолжает это делать с 2021 года).

Клиентская файловая система CIFS ядра Linux поддерживает SMB2, начиная с версии 3.7. [27]

SMB 2.1

В SMB 2.1, представленном в Windows 7 и Server 2008 R2, представлены незначительные улучшения производительности благодаря новому механизму уступающей блокировки. [28]

СМБ 3.0

SMB 3.0 (ранее называвшийся SMB 2.2) [29] был представлен в Windows 8 [29] и Windows Server 2012 . [29] Он принес несколько существенных изменений, предназначенных для добавления функциональности и повышения производительности SMB2, [30] особенно в виртуализированных центрах обработки данных :

  • прямой протокол SMB (SMB через удаленный прямой доступ к памяти [RDMA])
  • SMB Multichannel (несколько подключений на сеанс SMB), [31] [32]
  • Прозрачная отказоустойчивость SMB [33] [34]

Он также представляет несколько улучшений безопасности, таких как сквозное шифрование и новый алгоритм подписи на основе AES . [35] [36]

SMB 3.0.2

SMB 3.0.2 (известный в то время как 3.02) был представлен в Windows 8.1 и Windows Server 2012 R2; [37] [38] в этих и более поздних версиях более ранняя версия SMB 1 может быть дополнительно отключена для повышения безопасности. [39] [40]

SMB 3.1.1

SMB 3.1.1 был представлен в Windows 10 и Windows Server 2016 . [41] Эта версия поддерживает шифрование AES-128 GCM в дополнение к шифрованию AES-128 CCM , добавленному в SMB3, и реализует проверку целостности перед аутентификацией с использованием хэша SHA-512 . SMB 3.1.1 также делает безопасное согласование обязательным при подключении к клиентам, использующим SMB 2.x и выше. [ нужна ссылка ]

Выполнение

Общие вопросы

SMB работает по принципу клиент-сервер , когда клиент делает определенные запросы, а сервер отвечает соответствующим образом. Один раздел протокола SMB специально касается доступа к файловым системам , так что клиенты могут делать запросы к файловому серверу ; но некоторые другие разделы протокола SMB специализируются на межпроцессном взаимодействии (IPC). Общий ресурс межпроцессного взаимодействия (IPC) или ipc$ — это общий сетевой ресурс на компьютерах под управлением Microsoft Windows. Этот виртуальный общий ресурс используется для облегчения связи между процессами и компьютерами через SMB, часто для обмена данными между компьютерами, прошедшими проверку подлинности.

Разработчики оптимизировали протокол SMB для использования в локальной подсети , но пользователи также используют SMB для доступа к различным подсетям в Интернете — эксплойты , связанные с совместным использованием файлов или принтеров в средах MS Windows, обычно сосредоточены на таком использовании.

Серверы SMB делают свои файловые системы и другие ресурсы доступными для клиентов в сети. Клиентским компьютерам может потребоваться доступ к общим файловым системам и принтерам на сервере, и в этой основной функции SMB стал наиболее известным и широко используемым. Однако аспект файлового сервера SMB не имел бы большого значения без набора протоколов доменов NT , которые, по крайней мере , обеспечивают аутентификацию на основе домена в стиле NT . Почти все реализации серверов SMB используют аутентификацию домена NT для подтверждения доступа пользователя к ресурсам.

Проблемы с производительностью

Использование протокола SMB часто коррелирует со значительным увеличением широковещательного трафика в сети. Однако сам SMB не использует широковещательные рассылки — проблемы широковещательной рассылки, обычно связанные с SMB, на самом деле возникают из-за протокола определения местоположения службы NetBIOS . [ требуется уточнение ] По умолчанию Microsoft Windows NT 4.0сервер использовал NetBIOS для рекламы и поиска служб. NetBIOS функционирует путем широковещательной рассылки служб, доступных на определенном хосте, через регулярные промежутки времени. Хотя это обычно обеспечивает приемлемое значение по умолчанию в сети с меньшим количеством узлов, увеличение широковещательного трафика может вызвать проблемы по мере увеличения числа узлов в сети. Эта проблема решается внедрением инфраструктуры разрешения имен в виде службы Windows Internet Naming Service (WINS) или системы доменных имен (DNS). WINS была проприетарной реализацией, использовавшейся в сетях Windows NT 4.0, но принесла свои проблемы и сложности при проектировании и обслуживании сети Microsoft.

После выпуска Windows 2000 использование WINS для разрешения имен было объявлено корпорацией Майкрософт устаревшим, а иерархический динамический DNS теперь настроен как протокол разрешения имен по умолчанию для всех операционных систем Windows. Разрешение (коротких) имен NetBIOS с помощью DNS требует, чтобы клиент DNS расширял короткие имена, обычно добавляя суффикс DNS для конкретного подключения к своим запросам поиска DNS. WINS по-прежнему можно настроить на клиентах в качестве вторичного протокола разрешения имен для взаимодействия с устаревшими средами и приложениями Windows. Кроме того, DNS-серверы Microsoft могут перенаправлять запросы на разрешение имен на устаревшие WINS-серверы, чтобы поддерживать интеграцию разрешения имен с устаревшими (до Windows 2000) средами, которые не поддерживают DNS.

Разработчики сети обнаружили, что задержка оказывает значительное влияние на производительность протокола SMB 1.0, что он работает хуже, чем другие протоколы, такие как FTP . Мониторинг показывает высокую степень «болтливости» и игнорирование сетевой задержки между хостами. [18] Например, VPN -подключение через Интернет часто вызывает задержку в сети. Microsoft объяснила, что проблемы с производительностью возникают в первую очередь из-за того, что SMB 1.0 — это блочный, а не потоковый протокол, который изначально был разработан для небольших локальных сетей ; у него размер блока ограничен 64 КБ, подпись SMB создает дополнительные накладные расходы, аРазмер окна TCP не оптимизирован для каналов WAN. [42] Решения этой проблемы включают обновленный протокол SMB 2.0, [43] Offline Files , масштабирование окна TCP и устройства ускорения WAN от различных сетевых поставщиков, которые кэшируют и оптимизируют SMB 1.0 [44] и 2.0. [45]

модификации Майкрософт

Microsoft добавила несколько расширений к собственной реализации SMB. Например, был добавлен NTLM , за которым следуют протоколы аутентификации NTLMv2, чтобы устранить уязвимость в системе безопасности исходной аутентификации LAN Manager . Аутентификация LAN Manager была реализована на основе исходного требования устаревшей спецификации SMB об использовании паролей IBM «LAN Manager», но реализовывала DES ошибочным образом , что позволяло взламывать пароли. [46] Позднее была добавлена ​​аутентификация Kerberos . Протоколы входа в домен NT 4.0 изначально использовали 40-битное шифрование за пределами США ., из-за экспортных ограничений на более сильное 128-битное шифрование [47] (впоследствии снятые в 1996 году, когда президент Билл Клинтон подписал Исполнительный указ 13026 [48] ). Поддержка уступающей блокировки менялась с каждым выпуском сервера.

самба

В 1991 году Эндрю Триджелл начал разработку Samba, бесплатной программной повторной реализации (с использованием обратного проектирования ) сетевого протокола SMB/CIFS для Unix-подобных систем, первоначально для реализации сервера SMB, позволяющего ПК-клиентам запускать DEC Pathworks . клиент для доступа к файлам на машинах SunOS . [9] [49] Из-за важности протокола SMB для взаимодействия с широко распространенной платформой Microsoft Windows , Samba стала популярной бесплатной программной реализацией совместимого клиента и сервера SMB, позволяющей использовать операционные системы, отличные от Windows, такие как Unix-подобные . операционных систем для взаимодействия с Windows.

Начиная с версии 3 (2003 г.), Samba предоставляет службы файлов и печати для клиентов Microsoft Windows и может интегрироваться с серверным доменом Windows NT 4.0 либо в качестве основного контроллера домена (PDC), либо в качестве члена домена. Установки Samba4 могут действовать как контроллер домена Active Directory или рядовой сервер на функциональных уровнях домена Windows 2008 и леса . [50]

Менеджеры пакетов в дистрибутивах Linux могут искать пакет cifs-utils . Пакет предоставлен мейнтейнерами Samba.

Нетсмб

NSMB ( Netsmb и SMBFS ) — это семейство встроенных в ядро реализаций SMB-клиента и сервера в операционных системах BSD. Впервые он был добавлен в FreeBSD 4.4 Борисом Поповым, и теперь он встречается в большом количестве других систем BSD, включая NetBSD и macOS . [51] С тех пор реализации значительно разошлись. [52]

Версия NSMB для macOS отличается общепринятой схемой представления символических ссылок. Этот формат «Minshall-French» показывает символические ссылки в виде текстовых файлов с .symlinkрасширением и Xsym\nмагическим числом, всегда длиной 1067 байт. Этот формат также используется для хранения символических ссылок на простых SMB-серверах или в неподдерживаемых файловых системах. Samba поддерживает этот формат с mfsymlinkопцией. [53] Похоже, что Docker в Windows тоже его использует. [ нужна ссылка ]

НК

NQ — это семейство портативных клиентов и серверов для малого и среднего бизнеса, разработанных Visuality Systems , израильской компанией, основанной в 1998 году Сэмом Видерманом, бывшим генеральным директором Siemens Data Communications. Семейство NQ включает в себя встроенный стек SMB (написанный на C), SMB-клиент Pure Java и реализацию SMB-сервера для хранения. Все решения поддерживают новейший диалект SMB 3.1.1. NQ для Linux , NQ для WinCE , iOS, Android, VxWorks и другие операционные системы реального времени поддерживаются настраиваемым решением NQ.

МоСМБ

MoSMB — это собственная реализация SMB для Linux и других Unix-подобных систем, разработанная Ryussi Technologies. Он поддерживает только SMB 2.x и SMB 3.x. [54]

Таксера СМБ

Tuxera SMB — это проприетарная реализация сервера SMB, разработанная Tuxera , которая может работать как в ядре, так и в пользовательском пространстве . [55] Он поддерживает SMB 3.1.1 и предыдущие версии.

так же

Аналогичным образом в 2009 году была разработана реализация CIFS/SMB (версии 1.0, 2.0, 2.1 и NFS 3.0), которая предоставила многопротокольную платформу с идентификацией для сетевого доступа к файлам, используемым в продуктах хранения OEM , созданных на устройствах на базе Linux/Unix. Платформу можно использовать для традиционных устройств NAS, облачного шлюза и облачного кэширования для обеспечения безопасного доступа к файлам по сети. Аналогично был куплен EMC Isilon в 2012 году.

КИФСД

CIFSD — это реализация сервера CIFS/SMB в ядре с открытым исходным кодом для ядра Linux. Он имеет следующие преимущества по сравнению с реализациями в пользовательском пространстве: он обеспечивает более высокую производительность и упрощает реализацию некоторых функций, таких как SMB Direct. Он поддерживает SMB 3.1.1 и предыдущие версии.

Оппортунистическая блокировка

В протоколе SMB уступающая блокировка — это механизм, предназначенный для повышения производительности за счет контроля кэширования сетевых файлов клиентом. [56] В отличие от традиционных блокировок , OpLock не является строгой блокировкой файлов и не используется для обеспечения взаимного исключения.

Существует четыре типа оппортунистических блокировок:

Пакетные блокировки
Пакетные OpLocks изначально были созданы для поддержки определенного поведения операции выполнения пакетного файла DOS, при которой файл открывается и закрывается много раз за короткий период, что является проблемой производительности. Чтобы решить эту проблему, клиент может запросить OpLock типа «пакет». В этом случае клиент задерживает отправку запроса на закрытие, и если последующий запрос на открытие дается, два запроса отменяют друг друга. [57]
OpLocks/Эксклюзивные блокировки уровня 1
Когда приложение открывает в «общем режиме» файл, размещенный на сервере SMB, который не открывается каким-либо другим процессом (или другими клиентами), клиент получает от сервера эксклюзивную блокировку OpLock . Это означает, что теперь клиент может предположить, что это единственный процесс, имеющий доступ к этому конкретному файлу, и теперь клиент может кэшировать все изменения в файле перед его фиксацией на сервере. Это улучшение производительности, так как требуется меньше циклов для чтения и записи в файл. Если другой клиент/процесс пытается открыть тот же файл, сервер отправляет клиенту сообщение (называемое прерыванием или отзывом ), которое отменяет монопольную блокировку, ранее предоставленную клиенту. Затем клиент сбрасывает все изменения в файл.
OpLocks уровня 2
Если исключительный OpLock удерживается клиентом, а заблокированный файл открывается третьей стороной, клиент должен отказаться от своего монопольного OpLock, чтобы разрешить другому клиенту доступ для записи/чтения. Затем клиент может получить «OpLock уровня 2» от сервера. OpLock уровня 2 позволяет кэшировать запросы на чтение, но исключает кэширование записи.
Фильтр OpLocks
Оптические блокировки фильтра, добавленные в NT 4.0, аналогичны блокировкам уровня 2, но предотвращают нарушение режима совместного использования между открытием файла и получением блокировки. Корпорация Майкрософт рекомендует использовать OpLocks фильтра только там, где важно разрешить несколько считывателей, и OpLock уровня 2 в других обстоятельствах.

Клиенты, удерживающие OpLock, на самом деле не блокируют файл, вместо этого они уведомляются через прерывание , когда другой клиент хочет получить доступ к файлу способом, несовместимым с их блокировкой. Запрос другого клиента задерживается на время обработки прерывания.

Перерывы
В отличие от «стандартного» поведения протокола SMB, запрос на прерывание может быть отправлен с сервера на клиент. Он информирует клиента о том, что блокировка OpLock больше недействительна. Это происходит, например, когда другой клиент хочет открыть файл таким образом, что блокировка OpLock становится недействительной. Затем первому клиенту отправляется разрыв OpLock, и ему требуется отправить все свои локальные изменения (в случае пакетных или эксклюзивных блокировок OpLock), если таковые имеются, и подтвердить разрыв OpLock. После этого подтверждения сервер может ответить второму клиенту согласованным образом.

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

За прошедшие годы в реализации Microsoft протокола или компонентов, на которые он напрямую опирается, было много уязвимостей безопасности. [58] [59] Уязвимости безопасности других поставщиков заключаются прежде всего в отсутствии поддержки более новых протоколов аутентификации, таких как NTLMv2 и Kerberos , в пользу таких протоколов, как NTLMv1, LanMan или незашифрованных паролей. Отслеживание атак в режиме реального времени [60] показывает, что SMB является одним из основных векторов атак для попыток вторжения, [61] например , атака Sony Pictures в 2014 году [62] и атака программы- вымогателя WannaCry.от 2017 г. [63] В 2020 г. были обнаружены две уязвимости высокой степени серьезности в SMB, получившие название SMBGhost ( CVE-2020-0796 ) и SMBleed ( CVE-2020-1206 ), которые при объединении в цепочку могут обеспечить RCE (удаленное выполнение кода) привилегия злоумышленника. [64]

Характеристики

Спецификации для SMB являются проприетарными и изначально закрытыми, что вынуждает других поставщиков и проекты перепроектировать протокол, чтобы взаимодействовать с ним. Протокол SMB 1.0 был в конечном итоге опубликован через некоторое время после того, как он был реконструирован, тогда как протокол SMB 2.0 с самого начала был доступен в Центре разработчиков открытых спецификаций Microsoft MSDN. [65] Существует ряд спецификаций, относящихся к протоколу SMB:

  • [MS-CIFS]: протокол общей файловой системы Интернета (CIFS)
    • Определяет протокол общей файловой системы Интернета (CIFS), межплатформенный, независимый от транспорта протокол, предоставляющий клиентским системам механизм использования файловых служб и служб печати, предоставляемых серверными системами по сети.
  • [MS-SMB]: протокол блока сообщений сервера (SMB)
    • Указывает протокол блока сообщений сервера (SMB), который определяет расширения существующей спецификации общей файловой системы Интернета (CIFS), которые были реализованы корпорацией Майкрософт с момента публикации спецификации CIFS.
  • [MS-SMB2]: версии 2 и 3 протокола Server Message Block (SMB)
    • Определяет версии 2 и 3 протокола Server Message Block (SMB), которые поддерживают совместное использование файлов и ресурсов печати между компьютерами и расширяют концепции протокола Server Message Block.
  • [MS-SMBD]: транспортный протокол удаленного прямого доступа к памяти (RDMA) SMB2
    • Указывает транспортный протокол удаленного прямого доступа к памяти (RDMA) SMB2, оболочку для существующего протокола SMB2, которая позволяет доставлять пакеты SMB2 через транспорты с поддержкой RDMA, такие как iWARP или Infiniband, с использованием возможностей прямого размещения данных (DDP) этих транспортов. . Преимущества включают снижение нагрузки на ЦП, меньшую задержку и повышенную пропускную способность.
  • [MS-FSSO]: Обзор системы служб доступа к файлам ( статус документа в архиве )
    • Описывает предполагаемую функциональность системы служб доступа к файлам, как она взаимодействует с системами и приложениями, которым требуются файловые службы, и как она взаимодействует с административными клиентами для настройки и управления системой. Службы доступа к файлам используют несколько протоколов для доступа к файлам и администрирования файлового сервера. В этом документе перечислены эти протоколы и описано, как они используются для реализации системы служб доступа к файлам. Обзоры системы заменены более новыми обзорами.

Смотрите также

  • Список продуктов, поддерживающих SMB
  • Активный каталог
  • Административный ресурс
  • Общий доступ к файлам
  • AppleTalk
  • Сетевая файловая система (протокол)
  • Удаленная файловая система
  • WebDAV
  • Единое соглашение об именах
  • DCE/RPC
  • Сетевое окружение

использованная литература

  1. ^ «Общая файловая система Интернета» . Библиотека Microsoft TechNet. Архивировано из оригинала 7 июля 2017 года . Проверено 20 августа 2013 г. .
  2. ^ «Обзор протокола Microsoft SMB и протокола CIFS» . Библиотека Microsoft MSDN. 25 июля 2013 года. Архивировано из оригинала 21 августа 2013 года . Проверено 20 августа 2013 г. .
  3. ^ «Обзор протокола Microsoft SMB и протокола CIFS» . Майкрософт . 22 октября 2009 года. Архивировано из оригинала 2 августа 2016 года . Проверено 10 апреля 2019 г. .
  4. ^ «Сетевые концепции диспетчера локальной сети» . Майкрософт. Архивировано из оригинала 30 декабря 2012 года . Проверено 18 сентября 2014 г.
  5. ^ «MSKB887429: Обзор подписания блока сообщений сервера» . Корпорация Майкрософт . 30 ноября 2007 года. Архивировано из оригинала 20 ноября 2010 года . Проверено 24 октября 2012 г. Подписи безопасности (порядковые номера SMB)
  6. ^ Джеспер М. Йоханссон (8 сентября 2005 г.). «Как выстрелить себе в ногу с помощью службы безопасности, часть 1» . Корпорация Майкрософт . Архивировано из оригинала 19 октября 2018 года . Проверено 24 октября 2012 г. В этой статье рассматривается [...] подписывание сообщений Server Message Block (SMB).
  7. ^ «MSKB887429: Обзор подписания блока сообщений сервера» . Корпорация Майкрософт . 30 ноября 2007 года. Архивировано из оригинала 20 ноября 2010 года . Проверено 24 октября 2012 г. По умолчанию подпись SMB требуется для входящих сеансов SMB на контроллерах домена под управлением Windows Server 2003.
  8. Хосе Баррето (1 декабря 2010 г.). «Основы подписания SMB (охватывающие как SMB1, так и SMB2)» . Блоги Microsoft TechNet Server и управления. Архивировано из оригинала 2 декабря 2012 года . Проверено 24 октября 2012 г. Этот механизм безопасности в протоколе SMB помогает избежать таких проблем, как фальсификация пакетов и атаки типа «человек посередине». [...] Подписание SMB доступно во всех поддерживаемых в настоящее время версиях Windows, но по умолчанию оно включено только на контроллерах домена. Это рекомендуется для контроллеров домена, поскольку SMB — это протокол, используемый клиентами для загрузки информации о групповой политике. Подписание SMB позволяет гарантировать, что клиент получает подлинную групповую политику.
  9. ^ a b c Триджелл, Эндрю . «Мифы о самбе» . Архивировано из оригинала 20 октября 2017 года . Проверено 3 января 2016 г. .
  10. ^ «Прямой хостинг SMB через TCP/IP» . Майкрософт . 11 октября 2007 года. Архивировано из оригинала 26 марта 2011 года . Проверено 1 ноября 2009 г. .
  11. ^ Киттл, Ральф (13 мая 2017 г.). «SMB1 — Аудит активного использования с помощью анализатора сообщений» . Технет Майкрософт . Майкрософт. Архивировано из оригинала 28 марта 2019 года . Проверено 28 марта 2019 г. .
  12. ^ «WebNFS — Технический обзор» . Архивировано из оригинала 18 мая 2007 года.
  13. ^ * И. Хейзер; П. Лич; Д. Перри (13 июня 1996 г.). «Общий протокол файловой системы Интернета (CIFS/1.0)» . Архивировано из оригинала 8 августа 2019 года . Проверено 10 декабря 2017 г. .
    • Пол Дж. Лич; Дилип К. Найк (3 января 1997 г.). «Вход в систему CIFS и сквозная аутентификация» .
    • Пол Дж. Лич; Дилип К. Найк (10 января 1997 г.). "Протокол браузера CIFS/E" .
    • Пол Дж. Лич; Дилип К. Найк (31 января 1997 г.). "Спецификация печати CIFS" .
    • Пол Дж. Лич; Дилип С. Найк (26 февраля 1997 г.). "Протокол удаленного администрирования CIFS" .
    • Пол Дж. Лич; Дилип К. Найк (19 декабря 1997 г.). «Протокол общей файловой системы Интернета (CIFS / 1.0)» .
  14. ^ «Устаревание SMB1 - Вы должны планировать избавиться от этого старого диалекта SMB - Блог Хосе Баррето» . blogs.technet.microsoft.com . Архивировано из оригинала 21 мая 2017 года . Проверено 9 октября 2019 г. .
  15. ^ «SMBv1 не установлен по умолчанию в Windows 10 Fall Creators Update и Windows Server версии 1709 и более поздних версиях» . support.microsoft.com . Архивировано из оригинала 10 октября 2019 года . Проверено 9 октября 2019 г. .
  16. ↑ Навджот Вирк и Прашант Прахалад (10 марта 2006 г.). «Что нового в SMB в Windows Vista» . Проверьте свои диски . MSDN. Архивировано из оригинала 5 мая 2006 года . Проверено 1 мая 2006 г.
  17. ^ Версии 2 и 3 протокола блока сообщений сервера (SMB) . Протоколы Windows. Открытые спецификации (Технический отчет). Документы Майкрософт . Майкрософт . МС-СМБ2 . Проверено 29 ноября 2020 г. .
  18. ^ a b c d e Хосе Баррето (9 декабря 2008 г.). «SMB2, полная переработка основного протокола удаленных файлов для Windows» . Блоги Microsoft TechNet Server и управления. Архивировано из оригинала 3 июня 2012 года . Проверено 1 ноября 2009 г. .
  19. ^ «Samba 3.5.0 доступна для загрузки» . Архивировано из оригинала 24 июля 2011 года . Проверено 8 июля 2011 г. .
  20. ^ «Samba 3.6.0 доступна для загрузки» . Архивировано из оригинала 24 сентября 2011 года . Проверено 10 августа 2011 г.
  21. ^ " http://www.ietf.org/rfc/rfc3010.txt "
  22. ↑ a b Эран, Дэниел (11 июня 2013 г.). «Apple переходит от общего доступа к файлам AFP к SMB2 в OS X 10.9 Mavericks» . AppleInsider.com. Архивировано из оригинала 12 февраля 2017 года . Проверено 12 января 2014 г.
  23. Воан, Стивен Дж. (28 октября 2013 г.). «Проблема SMB2 Mavericks и ее исправления» . ZDNet. Архивировано из оригинала 5 января 2014 года . Проверено 12 января 2014 г.
  24. ^ МакПарк. «10.9: Переключите стек SMB на использование SMB1 по умолчанию» . Подсказки для Mac OS X. macworld.com. Архивировано из оригинала 12 января 2014 года . Проверено 12 января 2014 г.
  25. Тофер Кесслер (23 марта 2011 г.). «Попрощайтесь с Samba в OS X» . CNET. Архивировано из оригинала 15 января 2014 года . Проверено 12 января 2014 г.
  26. ↑ Том Холверда (26 марта 2011 г.). «Apple Ditchs SAMBA в пользу доморощенной замены» . Архивировано из оригинала 2 ноября 2013 года . Проверено 12 января 2014 г.
  27. ^ «Linux 3.7 - новички в ядре Linux» . Архивировано из оригинала 11 сентября 2016 года . Проверено 4 сентября 2016 г. .
  28. ^ «Внедрение решения для централизации данных конечного пользователя» . Майкрософт . 21 октября 2009 г. стр. 10–11. Архивировано из оригинала 6 сентября 2010 года . Проверено 2 ноября 2009 г. .
  29. ^ a b c Джеффри Сновер (19 апреля 2012 г.). «SMB 2.2 теперь называется SMB 3.0» . Блог Windows Server . Проверено 6 июля 2020 г. .
  30. ^ Коммуникации Челсио. "40G SMB Direct" . Архивировано из оригинала 7 сентября 2013 года . Проверено 18 июня 2013 г. .
  31. Хосе Баррето (19 октября 2012 г.). «Учебник SNIA по протоколу SMB» (PDF) . Ассоциация производителей сетей хранения данных . Архивировано (PDF) из оригинала 3 июня 2013 г .. Проверено 28 ноября 2012 г. .
  32. ^ Томас Пфеннинг. «Будущее файловых протоколов: SMB 2.2 в центре обработки данных» (PDF) . Архивировано из оригинала (PDF) 20 июля 2012 г.
  33. Йоргенсен, Клаус (7 июня 2012 г.). «SMB Transparent Failover — постоянная доступность файловых ресурсов» . Технет Майкрософт . Архивировано из оригинала 11 января 2019 года . Проверено 1 февраля 2017 г. .
  34. Сэвилл, Джон (21 августа 2012 г.). «Новые способы обеспечения высокой доступности для файловых ресурсов» . Windows IT Pro . Архивировано из оригинала 27 ноября 2016 года . Проверено 1 февраля 2017 г. .
  35. ^ «Улучшения безопасности малого и среднего бизнеса» . Технет Майкрософт. 15 января 2014 года. Архивировано из оригинала 9 октября 2014 года . Проверено 18 июня 2014 г. .
  36. Хосе Баррето (5 мая 2013 г.). «Обновленные ссылки на файловый сервер Windows Server 2012 и SMB 3.0» . Блоги Microsoft TechNet Server и управления. Архивировано из оригинала 3 августа 2016 года . Проверено 14 августа 2016 г.
  37. Хосе Баррето (7 июля 2014 г.). «Обновленные ссылки на файловый сервер Windows Server 2012 R2 и SMB 3.02» . Блоги Microsoft TechNet Server и управления. Архивировано из оригинала 26 августа 2016 года . Проверено 14 августа 2016 г.
  38. Хосе Баррето (12 декабря 2013 г.). «Конференция разработчиков хранилищ — слайды SDC 2013 теперь общедоступны. Вот ссылки на слайды Microsoft…» . Блоги Microsoft TechNet Server и управления. Архивировано из оригинала 26 августа 2016 года . Проверено 14 августа 2016 г.
  39. Эрик Гейер (5 декабря 2013 г.). «WindowsNetworking.com: улучшения в обновлениях протокола SMB 3.0 и 3.02» . WindowsNetworking.com . Архивировано из оригинала 9 апреля 2015 года . Проверено 6 апреля 2015 г. .
  40. Хосе Баррето (5 мая 2015 г.). «Что нового в SMB 3.1.1 в Windows Server 2016 Technical Preview 2» . Блоги Microsoft TechNet Server и управления. Архивировано из оригинала 8 октября 2016 года . Проверено 14 августа 2016 г.
  41. Нил Карпентер (26 октября 2004 г.). «Производительность SMB/CIFS по каналам WAN» . Майкрософт . Архивировано из оригинала 13 февраля 2020 года . Проверено 13 февраля 2020 г. .
  42. ^ «Что нового в SMB в Windows Server» . Майкрософт . Архивировано из оригинала 11 февраля 2017 года . Проверено 6 февраля 2017 г. .
  43. Марк Рабинович, Игорь Гохман. «Методы ускорения CIFS» (PDF) . Конференция разработчиков систем хранения данных, SNIA, Санта-Клара, 2009 г. Проверено 6 июля 2020 г. .
  44. ^ Марк Рабинович. «Ускорение SMB2» (PDF) . Конференция разработчиков систем хранения данных, SNIA, Санта-Клара, 2011 г. Проверено 6 июля 2020 г. .
  45. ^ Кристофер Хертель (1999). «SMB: протокол блока сообщений сервера» . Архивировано из оригинала 10 марта 2010 года . Проверено 1 ноября 2009 г. .
  46. ^ «Описание пакета шифрования Microsoft Windows 1» . Майкрософт . 1 ноября 2006 года. Архивировано из оригинала 2 октября 2009 года . Проверено 1 ноября 2009 г. .
  47. ^ «Распоряжение президента США 13026» (PDF) . Правительство Соединенных Штатов . 1996. Архивировано (PDF) из оригинала 10 октября 2009 г .. Проверено 1 ноября 2009 г. .
  48. Триджелл, Эндрю (27 июня 1997 г.). «Немного истории и немного веселья» . Архивировано из оригинала 17 июля 2011 года . Проверено 26 июля 2011 г.
  49. ^ «Функциональные уровни Samba 4» . 25 февраля 2011 года. Архивировано из оригинала 29 июля 2014 года . Проверено 12 января 2014 г.
  50. ^ "netsmb (4)" . Страницы руководства NetBSD 8.0 . Проверено 5 января 2020 г. .
  51. ^ nbsd.conf(5)  —  Руководство по форматам файлов FreeBSD .  – Руководство по форматам файлов Darwin и macOS.nbsd.conf(5)
  52. ^ «Расширения UNIX» . СамбаВики . Архивировано из оригинала 12 июня 2020 года . Проверено 15 марта 2020 г. .
  53. ^ Доктор Суну Инженер. «Создание высокомасштабируемого и производительного сервера протокола SMB» (PDF) . Архивировано (PDF) из оригинала 27 сентября 2016 г. Проверено 25 сентября 2016 г.
  54. ^ «Microsoft и Tuxera укрепляют партнерские отношения с помощью Tuxera SMB Server» . Майкрософт . Центр новостей Майкрософт. Архивировано из оригинала 17 ноября 2016 года . Проверено 6 февраля 2017 г. .
  55. Викискладе есть медиафайлы по теме оппортунистических замков . Майкрософт. 31 мая 2018 г. . Проверено 19 августа 2021 г. .
  56. ^ «Все об оппортунистической блокировке» . Сфера ИТ . 2014 . Проверено 19 августа 2021 г. .
  57. ^ «MS02-070: ошибка в подписи SMB может привести к изменению групповой политики» . Майкрософт . 1 декабря 2007 года. Архивировано из оригинала 8 октября 2009 года . Проверено 1 ноября 2009 г. .
  58. ^ «MS09-001: Уязвимости в SMB делают возможным удаленное выполнение кода» . Майкрософт . 13 января 2009 года. Архивировано из оригинала 5 октября 2009 года . Проверено 1 ноября 2009 г. .,
  59. ^ "Sicherheitstacho.eu" . Дойче Телеком . 7 марта 2013 года. Архивировано из оригинала 8 марта 2013 года . Проверено 7 марта 2013 г. .
  60. ^ «Предупреждение (TA14-353A) Целевое разрушительное вредоносное ПО» . US-CERT . Архивировано из оригинала 20 декабря 2014 года . Проверено 20 декабря 2014 г.
  61. ^ «Хакеры Sony использовали червь для блока сообщений сервера (SMB)» . Архивировано из оригинала 20 декабря 2014 года . Проверено 20 декабря 2014 г.
  62. ^ «Атака программы-вымогателя WannaCry поражает жертв с помощью эксплойта Microsoft SMB» . электронная неделя . Проверено 13 мая 2017 г. .
  63. ^ «Запись SMBleedingGhost: объединение SMBleed (CVE-2020-1206) с SMBGhost» . Блог ZecOps . 9 июня 2020 г. . Проверено 19 ноября 2020 г. .
  64. ^ «Протоколы Windows» . Архивировано из оригинала 26 сентября 2009 года . Проверено 13 октября 2009 г.

внешняя ссылка

  • Раздел DFS в документации "Windows Developer"
  • Хертель, Кристофер (2003). Внедрение CIFS — общей файловой системы Интернета . Прентис Холл. ISBN 0-13-047116-X . (Текст под лицензией Open Publication License версии 1.0 или более поздней версии доступен по ссылке выше.) 
  • Общая файловая система Интернета , технические подробности от Microsoft Corporation
  • диалект SMB NT LM 0.12 . В формате Microsoft Word
  • Стивен М. Френч, Рождение новой сетевой файловой системы: сравнение SMB2, CIFS и NFS , Linux Symposium 2007
  • Стив Френч, Будущее файловых протоколов: SMB2 встречает Linux , Linux Collaboration Summit 2012
Получено с https://en.wikipedia.org/w/index.php?title=Server_Message_Block&oldid=1061129505 "