- Службы Обмена Файлами и Протокол SMB
- SMB протокол, обзор версий, описание технологии
- Что такое SMB (блок сообщений сервера)?
- Как работает SMB?
- Протокол SMB: обзор версий
- SMB 1.0 (CIFS)
- SMB 2.0
- SMB 2.1
- SMB 3.0
- SMB 3.1.1
- Таблица версий SMB
- Какие аспекты безопасности важно учитывать при использовании SMB?
- Где используется или реализуется SMB
- Протоколы передачи данных: что это, какие бывают и в чём различия?
- Протоколы передачи данных: что это, какие бывают и в чём различия?
- IP — Internet Protocol
- TCP/IP — Transmission Control Protocol/Internet Protocol
- UDP — User Datagram Protocol
- FTP — File Transfer Protocol
- HTTP — HyperText Transfer Protocol
- NTP — Network Time Protocol
- SSH — Secure SHell
Службы Обмена Файлами и Протокол SMB
SMB — протокол, основанный на технологии клиент/сервер, используемый для обмена файлами. IBM разработала SMB-протокол в поздних 1980-х, чтобы описать структуру разделяемых сетевых ресурсов, таких как директории, файлы, принтеры и последовательные порты. В отличие от обмена файлами, который реализован в FTP, клиенты устанавливают долгосрочное соединение с серверами. Как только соединение установлено, пользователь клиента может обращаться к ресурсам на сервере, как будто эти ресурсы являются локальными по отношению к хосту клиента.
Обмен файлами SMB и службы печати стали основой для организации сетей Microsoft. С введением ПО серии Windows 2000, Microsoft изменила основополагающую структуру при использовании SMB. В предыдущих версиях продуктов Microsoft для реализации разрешения имен службы SMB использовали протокол, отличный от TCP/IP. Начиная с Windows 2000, все последующие продукты Microsoft используют DNS именование. Это позволяет протоколам TCP/IP напрямую поддерживать обмен ресурсами SMB, как показано на рисунке.
Операционные системы Apple Macintosh также поддерживают обмен ресурсами с использованием протокола SMB, как и операционные системы LINUX и UNIX, которые реализуют метод обмена ресурсами с сетями Microsoft, используя версию SMB, называемую SAMBA. .
SMB протокол описывает доступ к файловой системе и то, как клиенты могут осуществлять запросы файлов. Также он описывает межпроцессную коммуникацию. Все сообщения SMB используют общий формат. Этот формат использует заголовок фиксированного размера, за которым следует параметр переменного размера и компонент данных.
SMB сообщения могут:
- Начинать, аутентифицировать и прерывать сеансы
- Контролировать доступ к файлам и принтерам
- Позволять приложению отправлять сообщения на другое устройство, либо принимать сообщения с другого устройства
SMB протокол, обзор версий, описание технологии
Подключение всех технологических устройств к общей локальной сети (автономная альтернатива Интернету) обычно является чисто технической задачей благодаря компьютерным сетям . Участники сети могут легко обмениваться файлами через LAN или WLAN, управлять серверами или использовать типичные сетевые устройства, такие как принтеры или маршрутизаторы.
Однако для того, чтобы взаимодействие между отдельными компонентами работало, необходимы четкие соглашения, представленные в форме протоколов. Например, одним из самых важных и старых сетевых протоколов является протокол SMB. Мы подробно разберём его это в этой статье.
Что такое SMB (блок сообщений сервера)?
SMB (Server Message Block) — это протокол клиент/сервер, который управляет доступом к файлам и целым каталогам , а также к другим сетевым ресурсам, таким как принтеры, маршрутизаторы или интерфейсы, открытые для сети. Обмен информацией между различными процессами системы (также известный как межпроцессное взаимодействие) может осуществляться на основе протокола SMB.
Разработанный ИТ-группой IBM в 1983 году, за последние десятилетия были выпущены различные версии и реализации протокола. SMB впервые стал доступен для широкой публики как часть сетевой операционной системы OS/2 LAN Manager и ее преемника LAN Server . Основным применением протокола с тех пор была операционная система Windows, поскольку ее сетевые службы обратно совместимы с SMB. Это позволяет устройствам с более новыми выпусками легко взаимодействовать с устройствами, на которых установлена более старая операционная система Microsoft. Более того, проект бесплатного программного обеспечения Samba предлагает решение, которое позволяет использовать Server Message Block в дистрибутивах Linux и Unix, что позволяет кроссплатформенное общение через SMB.
Для реализации протокола SMB в Windows NT 4.0 Microsoft использовала название Common Internet File System (CIFS), которое впоследствии использовалось как синоним семейства протоколов SMB. Сегодня CIFS является особенно распространенным термином для первой версии SMB 1.0.
Как работает SMB?
Протокол Server Message Block позволяет клиенту связываться с другими участниками той же сети, позволяя ему получать доступ к файлам или службам, открытым для него в сети. Чтобы это работало, другая система также должна реализовать сетевой протокол и получать и обрабатывать соответствующий клиентский запрос с помощью приложения сервера SMB . Но обе стороны должны сначала установить соединение, поэтому сначала они обмениваются соответствующими сообщениями. В IP-сетях SMB использует протокол управления передачей (TCP), который обеспечивает трехстороннее рукопожатие между клиентом и сервером перед окончательным установлением соединения. Последующий перенос данных регулируется положениями протокола TCP.
TCP — порт 445 предназначен для установления соединения и передачи данных через TCP / SMB. Разрешение адресов обычно происходит через систему доменных имен (DNS) или через Link Local Multicast Name Resolution (LLMNR) в небольших сетях.
Протокол SMB: обзор версий
Как уже упоминалось, с тех пор, как SMB был впервые выпущен в 1983 году, в сетевой стандарт были внесены многочисленные изменения, отраженные в различных версиях протокола . Они начинаются с SMB 1.0 и заканчиваются текущей версией SMB 3.1.1, которую Microsoft представила вместе с Windows 10. В следующих разделах резюмируются основные этапы разработки протокола Server Message Block.
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
Первая большая редакция Server Message Block была предоставлена Microsoft в ноябре 2006 года вместе с операционной системой Windows Vista . Несмотря на то, что протокол — теперь известный как SMB 2.0 — продолжал оставаться проприетарным , компания-производитель программного обеспечения также впервые выпустила спецификацию, позволяющую другим системам взаимодействовать с операционными системами Windows. Наиболее важные изменения во второй версии протокола включали следующее:
- Уменьшение количества команд и подкоманд с более 100 до 19
- Оптимизированная производительность благодаря новой функции очереди для запросов SMB
- Поддержка символических ссылок (подключения к файлам или каталогам)
- Промежуточное хранение / кеширование свойств файла
- Улучшено подписывание сообщений (алгоритм HMAC SHA-256)
- Лучшая масштабируемость благодаря большему максимальному количеству клиентов, общих объектов и одновременно открытых файлов
По соображениям совместимости первая версия протокола была сохранена. 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 через RDMA (Remote Direct Memory Access)
- Многоканальная функция позволяет настраивать несколько подключений на сеанс 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
Наиболее важные сценарии применения для SMB уже были представлены в этой статье. Ключевым моментом протокола является доступ к файловым системам, поэтому основные преимущества заключаются в соединениях клиент/сервер между компьютерами и файловыми серверами . Поскольку другие разделы протокола явно нацелены на межпроцессное взаимодействие, простой обмен данными между двумя устройствами или двумя процессами относится к профилю его приложения.
Помимо реализаций Server Message Block в различных выпусках Windows, протокол был интегрирован во множество других программных проектов, чтобы обеспечить связь за пределами семейства Microsoft. Наиболее известные реализации SMB включают следующее:
- Samba : Программный проект Samba, вероятно, является самым известным примером реализации SMB за пределами Windows. Еще в 1991 году программист Эндрю Триджелл начал разработку бесплатного программного обеспечения, которое обеспечивает связь в системах Unix / Linux через Server Message Block.
- Netsmb: Netsmb относится к реализациям клиента и сервера SMB непосредственно в ядре операционных систем BSD. Впервые они были выпущены для ОС FreeBSD 4.4, но теперь доступны для ряда систем BSD, включая NetBSD и macOS.
- YNQ : YNQ (ранее NQ) — это библиотека SMB, которая реализует технологию Server Message Block во встроенных системах без Windows и, таким образом, обеспечивает взаимодействие с устройствами на базе Windows. YNQ разрабатывается израильской софтверной компанией Visuality Systems Ltd. с 1998 года.
- FreeNAS : любой, кто хочет запустить свой собственный NAS — сервер, поддерживающий протокол SMB, найдет подходящее решение в FreeNAS с открытым исходным кодом . Программное обеспечение NAS основано на FreeBSD и файловой системе OpenZFS.
- ConnectedNAS : ConnectedNAS, программное обеспечение, разработанное Connected Way, служит SMB-сервером и клиентом для устройств Android . Пользователи платного приложения могут легко обмениваться данными между мобильным устройством и другими устройствами SMB — как в частном порядке, так и внутри компании. По соображениям безопасности ConnectedNAS поддерживает SMB только начиная с версии 2.
Протоколы передачи данных: что это, какие бывают и в чём различия?
Протоколы передачи данных: что это, какие бывают и в чём различия?
Интернет очень большой и комплексный. Но на базовом уровне это всего лишь связь между различными компьютерами (не только персональными). Эта связь представляет из себя сетевые протоколы передачи данных — набор правил, который определяет порядок и особенности передачи информации для конкретных случаев.
Протоколов большое множество. Про основные из них рассказано далее.
IP — Internet Protocol
Протокол передачи, который первым объединил отдельные компьютеры в единую сеть. Самый примитивный в этом списке. Он является ненадёжным, т. е. не подтверждает доставку пакетов получателю и не контролирует целостность данных. По протоколу IP передача данных осуществляется без установки соединения.
Основная задача этого протокола — маршрутизация датаграмм, т. е. определение пути следования данных по узлам сети.
22 апреля в 19:00, Онлайн, Беcплатно
Популярная версия на текущий момент — IPv4 с 32-битными адресами. Это значит, что в интернете могут хранится 4.29 млрд адресов IPv4. Число большое, но не бесконечное. Поэтому существует версия IPv6, которая поможет решить проблему переполнения адресов, ведь уникальных IPv6 будет 2 ^ 128 адресов (число с 38 знаками).
TCP/IP — Transmission Control Protocol/Internet Protocol
Это стек протоколов TCP и IP. Первый обеспечивает и контролирует надёжную передачу данных и следит за её целостностью. Второй же отвечает за маршрутизацию для отправки данных. Протокол TCP часто используется более комплексными протоколами.
UDP — User Datagram Protocol
Протокол, обеспечивающий передачу данных без предварительного создания соединения между ними. Этот протокол является ненадёжным. В нём пакеты могут не только не дойти, но и прийти не по порядку или вовсе продублироваться.
Основное преимущество UDP протокола заключается в скорости доставки данных. Именно поэтому чувствительные к сетевым задержкам приложения часто используют этот тип передачи данных.
FTP — File Transfer Protocol
Протокол передачи файлов. Его использовали ещё в 1971 году — задолго до появления протокола IP. На текущий момент этим протоколом пользуются при удалённом доступе к хостингам. FTP является надёжным протоколом, поэтому гарантирует передачу данных.
Этот протокол работает по принципу клиент-серверной архитектуры. Пользователь проходит аутентификацию (хотя в отдельных случаях может подключаться анонимно) и получает доступ к файловой системе сервера.
Это не только система доменных имён (Domain Name System), но и протокол, без которого эта система не смогла бы работать. Он позволяет клиентским компьютерам запрашивать у DNS-сервера IP-адрес какого-либо сайта, а также помогает обмениваться базами данных между серверами DNS. В работе этого протокола также используются TCP и UDP.
HTTP — HyperText Transfer Protocol
Изначально протокол передачи HTML-документов. Сейчас же он используется для передачи произвольных данных в интернете. Он является протоколом клиент-серверного взаимодействия без сохранения промежуточного состояния. В роли клиента чаще всего выступает веб-браузер, хотя может быть и, например, поисковый робот. Для обмена информацией протокол HTTP в большинстве случаев использует TCP/IP.
HTTP имеет расширение HTTPS, которое поддерживает шифрование. Данные в нём передаются поверх криптографического протокола TLS.
NTP — Network Time Protocol
Не все протоколы передачи нужны для обмена классического вида информацией. NTP — протокол для синхронизации локальных часов устройства со временем в сети. Он использует алгоритм Марзулло. Благодаря нему протокол выбирает более точный источник времени. NTP работает поверх UDP — поэтому ему удаётся достигать большой скорости передачи данных. Протокол достаточно устойчив к изменениям задержек в сети.
Последняя версия NTPv4 способна достигать точности 10мс в интернете и до 0,2мс в локальных сетях.
SSH — Secure SHell
Протокол для удалённого управления операционной системой с использованием TCP. В SSH шифруется весь трафик, причём с возможностью выбора алгоритма шифрования. В основном это нужно для передачи паролей и другой важной информации.
Также SSH позволяет обрабатывать любые другие протоколы передачи. Это значит, что кроме удалённого управления компьютером, через протокол можно пропускать любые файлы или даже аудио/видео поток.
SSH часто применяется при работе с хостингами, когда клиент может удалённо подключиться к серверу и работать уже оттуда.