smbshare в сети что это
Боремся с вирусами и инфраструктурой, или отключение SMB v1
В связи с недавной эпидемией шифровальщика WannaCry, эксплуатирующим уязвимость SMB v1, в сети снова появились советы по отключению этого протокола. Более того, Microsoft настоятельно рекомендовала отключить первую версию SMB еще в сентябре 2016 года. Но такое отключение может привести к неожиданным последствиям, вплоть до курьезов: лично сталкивался с компанией, где после борьбы с SMB перестали играть беспроводные колонки Sonos.
Специально для минимизации вероятности «выстрела в ногу» я хочу напомнить об особенностях SMB и подробно рассмотреть, чем грозит непродуманное отключение его старых версий.
SMB (Server Message Block) – сетевой протокол для удаленного доступа к файлам и принтерам. Именно он используется при подключении ресурсов через \servername\sharename. Протокол изначально работал поверх NetBIOS, используя порты UDP 137, 138 и TCP 137, 139. С выходом Windows 2000 стал работать напрямую, используя порт TCP 445. SMB используется также для входа в домен Active Directory и работы в нем.
Помимо удаленного доступа к ресурсам протокол используется еще и для межпроцессорного взаимодействия через «именованные потоки» – named pipes. Обращение к процессу производится по пути \.\pipe\name.
Первая версия протокола, также известная как CIFS (Common Internet File System), была создана еще в 1980-х годах, а вот вторая версия появилась только с Windows Vista, в 2006. Третья версия протокола вышла с Windows 8. Параллельно с Microsoft протокол создавался и обновлялся в его открытой имплементации Samba.
В каждой новой версии протокола добавлялись разного рода улучшения, направленные на увеличение быстродействия, безопасности и поддержки новых функций. Но при этом оставалась поддержка старых протоколов для совместимости. Разумеется, в старых версиях было и есть достаточно уязвимостей, одной из которых и пользуется WannaCry.
Версия | Операционная система | Добавлено, по сравнению с предыдущей версией |
SMB 2.0 | Windows Vista/2008 | Изменилось количество команд протокола со 100+ до 19 |
Возможность «конвейерной» работы – отправки дополнительных запросов до получения ответа на предыдущий | ||
Поддержка символьных ссылок | ||
Подпись сообщений HMAC SHA256 вместо MD5 | ||
Увеличение кэша и блоков записи\чтения | ||
SMB 2.1 | Windows 7/2008R2 | Улучшение производительности |
Поддержка большего значения MTU | ||
Поддержка службы BranchCache – механизм, кэширующий запросы в глобальную сеть в локальной сети | ||
SMB 3.0 | Windows 8/2012 | Возможность построения прозрачного отказоустойчивого кластера с распределением нагрузки |
Поддержка прямого доступа к памяти (RDMA) | ||
Управление посредством командлетов Powershell | ||
Поддержка VSS | ||
Подпись AES–CMAC | ||
Шифрование AES–CCM | ||
Возможность использовать сетевые папки для хранения виртуальных машин HyperV | ||
Возможность использовать сетевые папки для хранения баз Microsoft SQL | ||
SMB 3.02 | Windows 8.1/2012R2 | Улучшения безопасности и быстродействия |
Автоматическая балансировка в кластере | ||
SMB 3.1.1 | Windows 10/2016 | Поддержка шифрования AES–GCM |
Проверка целостности до аутентификации с использованием хеша SHA512 | ||
Обязательные безопасные «переговоры» при работе с клиентами SMB 2.x и выше |
Считаем условно пострадавших
Посмотреть используемую в текущий момент версию протокола довольно просто, используем для этого командлет Get–SmbConnection:
Вывод командлета при открытых сетевых ресурсах на серверах с разной версией Windows.
Из вывода видно, что клиент, поддерживающий все версии протокола, использует для подключения максимально возможную версию из поддерживаемых сервером. Разумеется, если клиент поддерживает только старую версию протокола, а на сервере она будет отключена – соединение установлено не будет. Включить или выключить поддержку старых версий в современных системах Windows можно при помощи командлета Set–SmbServerConfiguration, а посмотреть состояние так:
Выключаем SMBv1 на сервере с Windows 2012 R2.
Результат при подключении с Windows 2003.
Таким образом, при отключении старого, уязвимого протокола можно лишиться работоспособности сети со старыми клиентами. При этом помимо Windows XP и 2003 SMB v1 используется и в ряде программных и аппаратных решений (например NAS на GNU\Linux, использующий старую версию samba).
Производитель | Продукт | Комментарий |
Barracuda | SSL VPN | |
Web Security Gateway backups | ||
Canon | Сканирование на сетевой ресурс | |
Cisco | WSA/WSAv | |
WAAS | Версии 5.0 и старше | |
F5 | RDP client gateway | |
Microsoft Exchange Proxy | ||
Forcepoint (Raytheon) | «Некоторые продукты» | |
HPE | ArcSight Legacy Unified Connector | Старые версии |
IBM | NetServer | Версия V7R2 и старше |
QRadar Vulnerability Manager | Версии 7.2.x и старше | |
Lexmark | МФУ, сканирование на сетевой ресурс | Прошивки Firmware eSF 2.x и eSF 3.x |
Linux Kernel | Клиент CIFS | С 2.5.42 до 3.5.x |
McAfee | Web Gateway | |
Microsoft | Windows | XP/2003 и старше |
MYOB | Accountants | |
NetApp | ONTAP | Версии до 9.1 |
NetGear | ReadyNAS | |
Oracle | Solaris | 11.3 и старше |
Pulse Secure | PCS | 8.1R9/8.2R4 и старше |
PPS | 5.1R9/5.3R4 и старше | |
QNAP | Все устройства хранения | Прошивка старше 4.1 |
RedHat | RHEL | Версии до 7.2 |
Ricoh | МФУ, сканирование на сетевой ресурс | Кроме ряда моделей |
RSA | Authentication Manager Server | |
Samba | Samba | Старше 3.5 |
Sonos | Беспроводные колонки | |
Sophos | Sophos UTM | |
Sophos XG firewall | ||
Sophos Web Appliance | ||
SUSE | SLES | 11 и старше |
Synology | Diskstation Manager | Только управление |
Thomson Reuters | CS Professional Suite | |
Tintri | Tintri OS, Tintri Global Center | |
VMware | Vcenter | |
ESXi | Старше 6.0 | |
Worldox | GX3 DMS | |
Xerox | МФУ, сканирование на сетевой ресурс | Прошивки без ConnectKey Firmware |
Список взят с сайта Microsoft, где он регулярно пополняется.
Перечень продуктов, использующих старую версию протокола, достаточно велик – перед отключением SMB v1 обязательно нужно подумать о последствиях.
Все-таки отключаем
Если программ и устройств, использующих SMB v1 в сети нет, то, конечно, старый протокол лучше отключить. При этом если выключение на SMB сервере Windows 8/2012 производится при помощи командлета Powershell, то для Windows 7/2008 понадобится правка реестра. Это можно сделать тоже при помощи Powershell:
Или любым другим удобным способом. При этом для применения изменений понадобится перезагрузка.
Для отключения поддержки SMB v1 на клиенте достаточно остановить отвечающую за его работу службу и поправить зависимости службы lanmanworkstation. Это можно сделать следующими командами:
Для удобства отключения протокола по всей сети удобно использовать групповые политики, в частности Group Policy Preferences. С помощью них можно удобно работать с реестром.
Создание элемента реестра через групповые политики.
Чтобы отключить протокол на сервере, достаточно создать следующий параметр:
новый параметр: REG_DWORD c именем SMB1;
Создание параметра реестра для отключения SMB v1 на сервере через групповые политики.
Для отключения поддержки SMB v1 на клиентах понадобится изменить значение двух параметров.
Сначала отключим службу протокола SMB v1:
параметр: REG_DWORD c именем Start;
Обновляем один из параметров.
Потом поправим зависимость службы LanmanWorkstation, чтоб она не зависела от SMB v1:
параметр: REG_MULTI_SZ с именем DependOnService;
После применения групповой политики необходимо перезагрузить компьютеры организации. После перезагрузки SMB v1 перестанет использоваться.
Работает – не трогай
Как ни странно, эта старая заповедь не всегда полезна – в редко обновляемой инфраструктуре могут завестись шифровальщики и трояны. Тем не менее, неаккуратное отключение и обновление служб могут парализовать работу организации не хуже вирусов.
Расскажите, а вы уже отключили у себя SMB первой версии? Много было жертв?
Монтирование SMB
Монтирование SMB не что иное как подключение сетевой папки WIndows в Linux. SMB (Server Message Block) — сетевой протокол удаленного доступа к сетевым ресурсам (файлы, папки, принтеры и т.п.). В первой версии протокола был известен также как CIFS (Common Internet File System). Протоком SMB повсеместно используется во всех ОС Microsoft Windows.
В современных дистрибутивах Linux уже можно совершенной спокойно путешествовать по сетевым дискам. Но куда удобнее если смонтировать сетевой диск сразу в папку, да еще и на рабочем столе, красота. Я создал папку с общим доступом на сервере Hyper-V, её и буду монтировать. Монтирование SMB буду делать под специально заведенным пользователем, дабы не светить пароль админа.
Монтируемая папка
Монтируемая директория доступна только администраторам и пользователю smb (создан специально для монтирования). Сделать общую папку на сервере Windows можно двумя способами: 1 — через свойства папки; 2 — через Powershell. Через свойства папки проще и быстрее как для новичка.
Но в моем случае с сервером HyperV 2019 сработал только второй способ, через Powershell.
Данной командой я сделал общей папку расположенную по пути F:\smb_mount и присвоил ей имя smb_mount. Права на доступ к папке выдал пользователю Administrator и smb.
Общая папка у меня доступна по пути \\hvs19\smb_mount, но монтировать я буду ее по ip адресу. Принципиального вопроса как монтировать нет, просто не всегда есть возможность использовать имя.
С монтируемой папкой закончили, создадим папку куда будем монтировать. Я создал папку в /opt и назвал её F (по имени диска где лежит монтируемая папка) для удобства.
Установим набор утилит для монтирования SMB
Для Ubuntu (и прочих Debian`ов)
Для Centos 8 (и прочих RPM дистрибутивов на YUM)
Монтирование SMB
Все необходимые папки мы создали, теперь приступим к монтированию файловой системы.
Пройдемся по параметрам:
Посмотрим что все получилось, проверим свободное место в сетевой папке
Можно использовать дополнительные возможности при монтировании, используя ключи после параметра -o. Вот некоторые из них
Используя команду mount мы монтируем папку в ручном режиме и после перезагрузки монтирования не произойдет. Для автоматического монтирования папки читаем следующий раздел.
Автоматическое монтирование SMB
Для постоянного монтирования папке при старте системы необходимо внести изменения в файл /etc/fstab. При монтировании сетевого диска с SMB используется пароль. Для большей сохранности не будем указывать его в файле fstab, а сохраним в директории root.
Создадим файл с учетными данными
Добавим в файл строки: имя пользователя, пароль, домен (если используется). У меня домена нет, поэтому добавлю только имя и пароль
Откроем файл /etc/fstab для редактирования
Добавим новую строку в конец файла
Сохраним файл и перезагрузим компьютер. После этого сетевая папка будет монтироваться автоматически.
Разберем указанные параметры
Права на папки и файлы
Примонтированный диск по умолчанию монтируется от root и разрешает запись на диск только под ним. Рассмотрим опции позволяющие изменить доступ на примонтированные папки и файлы. Также рассмотрим настройки по смене владельца смонтированной папки.
Пример записи в файле /etc/fstab монтирования от моего пользователя (не root) с полным доступом ко всем файлам и папкам
Размонтирование SMB
Размонтировать сетевую папку SMB можно используя команду umount
В параметрах команды umount указываем директорию куда была смонтирована сетевая папка. В моем случае это /opt/F
Решение проблем монтирования
Если по какой либо причине после ваших попыток папка все же не монтируется, необходимо смотреть системный журнал.
В системном журнале будет указана причина ошибки монтирования. Как пример не верный логин/пароль, не установленные утилиты cifs и т.п.
Smb Share
This reference provides cmdlet descriptions and syntax for all Server Message Block (SMB) Share-specific cmdlets. It lists the cmdlets in alphabetical order based on the verb at the beginning of the cmdlet.
SmbShare
Adds a deny ACE for a trustee to the security descriptor of the SMB share.
Closes a file that is open by one of the clients of the SMB server.
Ends forcibly the SMB session.
Disables a constrained delegation authorization for an SMB client and server.
Enables a constrained delegation authorization for an SMB client and server.
Gets the list of SMB bandwidth caps for each traffic category.
Retrieves the SMB client configuration.
Retrieves the network interfaces used by the SMB client.
Retrieves the connections established from the SMB client to the SMB servers.
Gets the constrained delegation authorizations for an SMB client.
Retrieves the properties of a Server Message Block (SMB) global mapping.
Retrieves the SMB client directory mappings created for a server.
Retrieves the SMB connections made between the SMB client network interfaces and the SMB server network interfaces.
Retrieves the constraints that define how the SMB client uses network interfaces to connect to the servers.
Retrieves basic information about the files that are open on behalf of the clients of the SMB server.
Retrieves a certificate associated with the SMB server for SMB over QUIC.
Retrieves an SMB over QUIC-mapped certificate’s properties and tests certificate validity.
Retrieves the SMB server configuration.
Retrieves the network interfaces used by the SMB server.
Retrieves information about the SMB sessions that are currently established between the SMB server and the associated clients.
Retrieves the SMB shares on the computer.
Retrieves the ACL of the SMB share.
Adds an allow access control entry (ACE) for a trustee to the security descriptor of the Server Message Block (SMB) share.
Specifies Server Message Block (SMB) leasing and oplock behaviors.
Creates an SMB mapping.
Creates an SMB multi-channel constraint for the specified server.
Creates a certificate association with the SMB server for SMB over QUIC.
Creates an SMB share.
Removes SMB bandwidth caps.
Removes SMB1 components.
Removes a Server Message Block (SMB) global mapping to an SMB share.
Removes the SMB mapping to an SMB share.
Removes SMB multi-channel constraints.
Removes a certificate mapping from the SMB server for SMB over QUIC.
Deletes the specified SMB shares.
Removes all of the allow ACEs for a trustee from the security descriptor of the SMB share.
Adds an SMB bandwidth cap.
Sets the SMB client configuration.
Sets the ACL for the file system folder to match the ACL used by an SMB share.
Modifies a certificate association with the SMB server for SMB over QUIC.
Sets the Server Message Block (SMB) server configuration.
Modifies the properties of the SMB share.
Removes all of the deny ACEs for the trustee from the security descriptor of the SMB share.
Forces the SMB client to update the multi-channel-related information.
Сжатие SMB
применимо к: Windows Server 2022, Windows 11
Сжатие SMB позволяет администратору, пользователю или приложению запрашивать сжатие файлов по мере их передачи по сети. Это избавляет от необходимости сначала вручную выполнить деструктурирование файла с помощью приложения, скопировать его, а затем увеличить на конечном компьютере. Сжатые файлы потребляют меньше пропускной способности сети и требуют меньше времени на передачу, за счет незначительного увеличения загрузки ЦП во время передачи. Сжатие SMB наиболее эффективно для сетей с меньшим объемом пропускной способности, например Ethernet-или Wi-Fi сети клиента 1Gbps; передачу файлов по неперегруженной сети Ethernet между двумя серверами с хранилищем Flash может выполняться так же быстро без сжатия SMB на практике, но при этом они по-прежнему снижают перегрузку для других приложений.
сжатие SMB в Windows имеет следующие характеристики.
Демонстрацию сжатия SMB смотрите в этом видео:
Требования
Для использования сжатия SMB в традиционной рабочей нагрузке на клиентские файловые серверы необходимо следующее:
Настройка сжатия SMB
Можно настроить сжатие SMB как с точки зрения клиента, так и с сервера. клиент и сервер не относятся к определенному выпуску, например Windows server 2022 или Windows 11 Insider preview, а не к архитектуре обмена файлами между двумя компьютерами. как Windows server 2022, так и Windows 11 поддерживаются клиентом или сервером сжатия SMB.
Запрос сжатия SMB в файловых ресурсах
Можно настроить общие ресурсы так, чтобы всегда запрашивать сжатие при соединении с клиентами. вы можете использовать центр администрирования Windows или PowerShell.
Использование Windows Admin Center
Использование PowerShell
Откройте командную строку PowerShell с повышенными привилегиями с правами администратора.
Запрос сжатия SMB на подключенных дисках
Можно запросить сжатие всех данных, копируемых на сопоставленном диске. Это можно сделать в рамках сценария входа в систему или при запуске вручную.
Использование PowerShell
Откройте командную строку PowerShell.
Использование NET USE
Откройте командную строку.
Сопоставьте диск с помощью NET USE с /REQUESTCOMPRESSION:YES параметром и аргументом. Пример:
NET USE * \\fs1.corp.contoso.com\sales /REQUESTCOMPRESSION:YES
Запрос сжатия SMB с помощью средств копирования
Вы можете запросить сжатие SMB для определенных файлов с помощью команды Robocopy или xcopy.
Если требуется, чтобы в проводнике, в сторонних средствах копирования или в приложениях использовалось сжатие, сопоставьте диски с помощью сжатия, включите сжатие для общих ресурсов или настройте для клиентов SMB постоянное сжатие.
Использование Robocopy.exe
Открытие командной строки или командной строки PowerShell
Скопируйте с флагом/COMPRESS. Пример:
ROBOCOPY c:\hypervdisks \\hypervcluster21.corp.contoso.com\disks$ *.vhdx /COMPRESS
Использование Xcopy.exe
Открытие командной строки или командной строки PowerShell
Скопируйте с флагом/COMPRESS. Пример:
XCOPY c:\hypervdisks\*.vhdx \\hypervcluster21.corp.contoso.com\disks$\* /COMPRESS
Всегда требовать или всегда отклонять запросы на сжатие
Вы можете настроить клиент SMB так, чтобы всегда запрашивать сжатие и всегда отклонять запросы на сжатие. Можно настроить сервер SMB, чтобы всегда отклонять запросы на сжатие.
Всегда сжимать
На клиентском компьютере SMB запустите Regedit.exe.
Перейдите к следующему разделу реестра:
Создайте новое имя REG_DWORD значения:
Задайте для значение:
Закройте программу regedit. Этот параметр вступает в силу немедленно, перезагрузка не требуется.
Никогда не сжимать (клиент SMB)
Откройте командную строку PowerShell с повышенными привилегиями с правами администратора.
Игнорировать все запросы на сжатие с любого подключенного диска, средства или сервера с помощью:
DisableCompression [dword] = 1
Никогда не сжимать (SMB-сервер)
Запустите Regedit.exe на компьютере SMB Server.
Перейдите к следующему разделу реестра:
Создайте новое имя REG_DWORD значения:
Задайте для значение:
Закройте программу regedit. Этот параметр вступает в силу немедленно, перезагрузка не требуется.
Основные сведения и управление поведением сжатия
при сжатии SMB в Windows Server 2022 и Windows 11 используется алгоритм по умолчанию, при котором он пытается сжать первые 524 288 000 байт (500 mib) файла во время перемещения и отслеживает, что по крайней мере 104 857 600 байт (100 mib) сжаты в пределах этого диапазона 500-MiB. Если менее 100 MiB — со сжатием, то сжатие SMB прекращает попытки сжатия оставшейся части файла. Если по крайней мере 100 MiB сжимается, то сжатие SMB пытается сжать оставшуюся часть файла. Это означает, что очень большие файлы с со сжатием данными, например, диск виртуальной машины с несколькими гигабайтами, скорее всего, будут сжиматься, но довольно маленький файл даже очень со сжатием один — не будет сжиматься.
это поведение не будет оставаться по умолчанию в Windows Server 2022 и Windows 11. он был впервые изменен в Windows 11 предварительной версии сборки 22449, где SMB больше не будет использовать этот алгоритм принятия решений по умолчанию. дополнительные сведения см. в объявлении о Windows 11 Insider preview Build 22449.
Если требуется, чтобы сжатие SMB было активно сжато независимо от размера файла, можно переопределить значения по умолчанию:
На клиентском компьютере SMB запустите Regedit.exe.
Перейдите к следующему разделу реестра:
Создайте новое имя REG_DWORD значения:
Задайте десятичное значение:
Создайте новое имя REG_DWORD значения:
Задайте для значение:
Закройте программу regedit. Этот параметр вступает в силу немедленно, перезагрузка не требуется.
Эти параметры означают, что при сжатии SMB будет предпринята попытка сжать первые 4 гиб файла и, если он сжимает по крайней мере 1 байт, будет пытаться сжать оставшуюся часть файла.
Тестирование сжатия SMB
Тестирование
Простой способ проверить конфигурацию сжатия — использовать VHDX-файлы. Вы можете создать и подключить VHDX-файл, добавить в него файлы, затем отключить VHDX и скопировать его в виде файла. Кроме того, можно просто скопировать имеющийся отключенный VHDX-файл виртуальной машины, так как часть его содержимого будет сжиматься. Пример создания файла теста VHDX:
Запустите diskmgmt. msc.
Щелкните действие и выберите создать виртуальный жесткий диск.
В diskmgmt щелкните правой кнопкой мыши VHDX-файл, который отображается как «не инициализировано», и нажмите кнопку инициализировать диск и нажмите кнопку ОК. Щелкните правой кнопкой мыши раздел невыделенные диски и выберите команду создать простой том, а затем нажмите кнопкуГотоводля всех запросов меню.
Укажите путь к файлу, задайте для параметра Размер значение «25 ГБ», выберите VHDX и фиксированный размер, а затем нажмите кнопку ОК.
Щелкните диск правой кнопкой мыши и выберите пункт отсоединить виртуальный жесткий диск, а затем нажмите кнопку ОК.
В проводнике дважды щелкните этот VHDX-файл, чтобы подключить его. Скопируйте несколько МБ файлов ункомпрессибле (например, формат JPG), щелкните подключенный диск правой кнопкой мыши и выберите пункт извлечь.
Теперь у вас есть большой тестовый файл с очень со сжатием содержимым.
Чтобы увидеть, насколько хорошо работает сжатие, можно выполнить Robocopy один и тот же файл на сервере дважды, один раз с /compress флагом и снова без сжатия, удалив Серверный файл между тестами. Если файл сжимается, вы должны увидеть меньшее использование сети в диспетчере задач и меньшее время копирования. Для счетчика «сжатых запросов в секунду» и «сжатых ответов/с» также можно наблюдать за объектом монитора производительности SMB-сервера «общие серверные ресурсы SMB».
RDMA и SMB Direct
Сжатие SMB Direct и RDMA не поддерживаются. Это означает, что даже если клиент запрашивает сжатие и сервер его поддерживает, сжатие не будет предпринято с помощью SMB Direct и RDMA. поддержка сжатия smb Direct и RDMA будет происходить после Windows Server 2022 и Windows 11 открытых предварительных версий.