Как обнаруживать, включать и отключать SMBv1, SMBv2 и SMBv3 в Windows
Применимо к: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 11, Windows 10, Windows 8.1 Windows 8
В этой статье описывается, как включить и отключить SMB версии 1 (SMBv1), SMB версии 2 (SMBv2) и SMB версии 3 (SMBv3) в клиентских и серверных компонентах SMB.
Хотя отключение или удаление SMBv1 может вызвать некоторые проблемы совместимости со старыми компьютерами или программным обеспечением, SMBv1 имеет значительные уязвимости системы безопасности, и мы настоятельно рекомендуем вам не использовать его.
Отключение SMBv2 или SMBv3 для устранения неполадок
Мы рекомендуем оставить SMBv2 и SMBv3 включенными, но может оказаться полезным временно отключить один из них для устранения неполадок. Дополнительные сведения см. в статье Определение состояния, включение и отключение протоколов SMB на сервере SMB.
В Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2 и Windows Server 2012 отключение SMBv3 позволяет отключить следующие функции:
- Прозрачная отработка отказа — клиенты повторно подключались без прерывания работы с узлами кластера во время обслуживания или отработки отказа
- Scale Out — одновременный доступ к общим данным на всех узлах файлового кластера
- Multichannel — агрегирование пропускной способности сети и отказоустойчивости, если между клиентом и сервером доступно несколько путей.
- SMB Direct — добавляет поддержку сети RDMA для обеспечения высокой производительности с низкой задержкой и низкой загрузкой ЦП.
- Шифрование — обеспечивает сквозное шифрование и защищает от перехвата в ненадежных сетях.
- Аренда каталогов — увеличение времени отклика приложений в филиалах за счет кэширования
- Оптимизация производительности — оптимизация для небольших случайных операций чтения и записи
В Windows 7 и Windows Server 2008 R2 отключение SMBv2 приводит к отключению следующих функций:
- Составное управление запросами — позволяет отправлять несколько запросов SMBv2 в виде одного сетевого запроса.
- Более крупные операции чтения и записи — более эффективное использование более быстрых сетей
- Кэширование свойств папок и файлов — клиенты сохраняют локальные копии папок и файлов.
- Устойчивые дескрипторы — позволяют прозрачно повторно подключаться к серверу при временном отключении.
- Улучшенное подписывание сообщений — HMAC SHA-256 заменяет MD5 в качестве алгоритма хэширования.
- Улучшенная масштабируемость общего доступа к файлам — количество пользователей, общих папок и открытых файлов на сервер значительно увеличилось
- Поддержка символьных ссылок
- Модель аренды клиента oplock — ограничивает передачу данных между клиентом и сервером, повышая производительность в сетях с высокой задержкой и увеличивая масштабируемость сервера SMB.
- Поддержка больших MTU — для полного использования 10 Gigabit Ethernet (GbE)
- Улучшенная энергоэффективность — клиенты с открытыми файлами на сервере могут переходить в спящий режим
Протокол SMBv2 появился в Windows Vista и Windows Server 2008, а протокол SMBv3 появился в Windows 8 и Windows Server 2012. Дополнительные сведения о возможностях SMBv2 и SMBv3 см. в следующих статьях:
Удаление SMBv1 с помощью PowerShell
Ниже приведены инструкции по обнаружению, отключению и включению клиента и сервера SMBv1 с помощью команд PowerShell с повышенными правами.
Примечание
Компьютер перезагрузится после выполнения команд PowerShell, чтобы отключить или включить SMBv1.
Обнаружить:
Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Отключите:
Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Включите параметр
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
Совет
Вы можете определить состояние SMBv1 без повышения прав, выполнив: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol
.
Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: метод диспетчер сервера
Чтобы удалить SMBv1 из Windows Server, выполните приведенные далее действия.
- На панели мониторинга диспетчер сервера сервера, на котором требуется удалить SMBv1, в разделе Настройка этого локального сервера выберите Добавить роли и компоненты.
- На странице Перед началом работы выберите Запустить мастер удаления ролей и компонентов, а затем на следующей странице нажмите кнопку Далее.
- На странице Выбор целевого сервера в разделе Пул серверов убедитесь, что выбран сервер, с которого требуется удалить компонент, и нажмите кнопку Далее.
- На странице Удаление ролей сервера нажмите кнопку Далее.
- На странице Удаление компонентов снимите флажок для поддержки общего доступа к файлам SMB 1.0/CIFS и нажмите кнопку Далее.
- На странице Подтверждение выбора удаления убедитесь, что функция указана в списке, а затем нажмите кнопку Удалить.
Windows 8.1, Windows 10 и Windows 11: метод добавления и удаления программ
Чтобы отключить SMBv1 для упомянутых операционных систем, выполните следующие действия.
- Откройте Панель управления, выберите раздел Программы и компоненты.
- В разделе панель управления Главная выберите Включить или выключить компоненты Windows, чтобы открыть поле Компоненты Windows.
- В окне Компоненты Windows прокрутите список вниз, снимите флажок для SMB 1.0/CIFS Поддержка общего доступа к файлам и нажмите кнопку ОК.
- После того как Windows применит изменение, на странице подтверждения выберите Перезапустить сейчас.
Определение состояния, включение и отключение протоколов SMB
Примечание
При включении или отключении SMBv2 в Windows 8 или Windows Server 2012 smBv3 также включается или отключается. Это происходит потому, что эти протоколы используют один и тот же стек.
Windows 8 и Windows Server 2012 появился новый командлет Set-SMBServerConfiguration Windows PowerShell. Командлет позволяет включить или отключить протоколы SMBv1, SMBv2 и SMBv3 в серверном компоненте.
После выполнения командлета Set-SMBServerConfiguration не нужно перезагружать компьютер.
SMBv1;
Обнаружить:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
Отключите:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Включите параметр
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Дополнительные сведения см. в разделе Хранилище сервера на Майкрософт.
SMB версии 2 или 3
Обнаружить:
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Отключите:
Set-SmbServerConfiguration -EnableSMB2Protocol $false
Включите параметр
Set-SmbServerConfiguration -EnableSMB2Protocol $true
Для Windows 7, Windows Server 2008 R2, Windows Vista и Windows Server 2008
Чтобы включить или отключить протоколы SMB на сервере SMB под управлением Windows 7, Windows Server 2008 R2, Windows Vista или Windows Server 2008, используйте Windows PowerShell или редактор реестра.
Дополнительные методы PowerShell
Примечание
Для этого метода требуется PowerShell 2.0 или более поздней версии.
SMBv1 на сервере SMB
Обнаружить:
Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Конфигурация по умолчанию = Включено (не создается именованное значение реестра), поэтому значение SMB1 не будет возвращено.
Отключите:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force
Включите параметр
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force
Примечание После внесения этих изменений компьютер необходимо перезагрузить. Дополнительные сведения см. в разделе Хранилище сервера на Майкрософт.
SMBv2/v3 на сервере SMB
Обнаружить:
Get-ItemProperty HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
Отключите:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force
Включите параметр
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 -Force
Примечание
После внесения этих изменений компьютер необходимо перезагрузить.
Редактор реестра
Важно!
Внимательно выполните действия, описанные в этом разделе. Неправильное изменение реестра может привести к серьезным проблемам. Перед внесением изменений создайте резервную копию реестра для его восстановления в случае возникновения проблем.
Чтобы включить или отключить SMBv1 на сервере SMB, настройте следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)
Чтобы включить или отключить SMBv2 на сервере SMB, настройте следующий раздел реестра:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)
Примечание
После внесения этих изменений компьютер необходимо перезагрузить.
Отключение SMBv1 с помощью групповая политика
В этом разделе описывается, как использовать групповая политика для отключения SMBv1. Этот метод можно использовать в разных версиях Windows.
SMBv1;
Эта процедура настраивает следующий новый элемент в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Запись реестра: SMB1
- REG_DWORD: 0 = отключено
Чтобы использовать групповая политика для настройки, выполните следующие действия.
Откройте Консоль управления групповыми политиками. Щелкните правой кнопкой мыши объект групповой политики (GPO), который должен содержать новый элемент настройки, а затем щелкните Изменить.
В дереве консоли в разделе Конфигурация компьютера разверните папку Параметры , а затем — папку Параметры Windows .
Щелкните правой кнопкой мыши узел Реестр , наведите указатель мыши на пункт Создать и выберите Элемент реестра.
В диалоговом окне Новые свойства реестра выберите следующее:
- Действие: Создать
- Hive: HKEY_LOCAL_MACHINE
- Путь к ключу: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Имя значения: SMB1
- Тип значения: REG_DWORD
- Данные значения: 0
Эта процедура отключает компоненты сервера SMBv1. Эта групповая политика должна применяться ко всем необходимым рабочим станциям, серверам и контроллерам домена в домене.
Примечание
Фильтры WMI также можно настроить для исключения неподдерживаемых операционных систем или выбранных исключений, таких как Windows XP.
Важно!
Будьте внимательны при внесении этих изменений на контроллерах домена, на которых устаревшим системам Windows XP или более старым версиям Linux и сторонним системам (которые не поддерживают SMBv2 или SMBv3) требуется доступ к SYSVOL или другим файловым ресурсам, в которых отключается SMB версии 1.
Аудит использования SMBv1
Чтобы определить, какие клиенты пытаются подключиться к серверу SMB с помощью SMBv1, можно включить аудит в Windows Server 2016, Windows 10 и Windows Server 2019. Вы также можете выполнять аудит в Windows 7 и Windows Server 2008 R2, если установлено ежемесячное обновление за май 2018 г., а также на Windows 8.1 и Windows Server 2012 R2, если установлено ежемесячное обновление за июль 2017 г.
Включите параметр
Set-SmbServerConfiguration -AuditSmb1Access $true
Отключите:
Set-SmbServerConfiguration -AuditSmb1Access $false
Обнаружить:
Get-SmbServerConfiguration | Select AuditSmb1Access
Если аудит SMBv1 включен, в журнале событий Майкрософт-Windows-SMBServer\Audit отображается событие 3000, определяющее каждый клиент, который пытается подключиться к SMBv1.
Сводка
Если все параметры находятся в одном объекте групповой политики, групповая политика Management отображает следующие параметры.
Тестирование и проверка
После выполнения действий по настройке, описанных в этой статье, разрешите политике реплицировать и обновлять их. При необходимости для тестирования выполните команду gpupdate /force в командной строке, а затем проверьте целевые компьютеры, чтобы убедиться, что параметры реестра применены правильно. Убедитесь, что SMBv2 и SMBv3 работают для всех других систем в среде.
Примечание
Не забудьте перезапустить целевые системы.