Поделиться через


Обнаружение, включение и отключение SMBv1, SMBv2 и SMBv3 в Windows

В этой статье описывается, как включить и отключить блок сообщений сервера (SMB) версии 1 (SMBv1), SMB версии 2 (SMBv2) и SMB версии 3 (SMBv3) на клиентских и серверных компонентах SMB.

При отключении или удалении SMBv1 могут возникнуть проблемы совместимости со старыми компьютерами или программным обеспечением. SMBv1 имеет значительные уязвимости безопасности, и мы настоятельно рекомендуем не использовать его. SMBv1 по умолчанию не устанавливается в любом выпуске Windows 11 или Windows Server 2019 и более поздних версий. SMBv1 также не устанавливается по умолчанию в Windows 10, кроме выпусков Home и Pro. Мы рекомендуем вместо переустановки SMBv1 обновить сервер SMB, если он все еще требует эту версию. Список партнеров, требующих SMBv1, и обновлений, которые снимают это требование, см. в SMB1 Product Clearinghouse.

Отключение SMBv2 или SMBv3 для устранения неполадок

Мы рекомендуем включить SMBv2 и SMBv3, но может оказаться полезным отключить его временно для устранения неполадок. Дополнительные сведения см. в разделе Использование командной строки или редактора реестра для управления протоколами SMB.

Отключение SMBv3 деактивирует следующие функции:

  • Прозрачное восстановление после отказа предоставляет клиентам возможность повторного подключения без прерывания сеанса к узлам кластера во время обслуживания или восстановления после отказа.
  • Горизонтальное масштабирование: Предоставляет одновременный доступ к общим данным на всех узлах файлового кластера
  • SMB Multichannel: упрощает агрегирование пропускной способности сети и отказоустойчивости, если между клиентом и сервером доступно несколько путей.
  • SMB Direct: добавляет поддержку сети удаленного прямого доступа к памяти (RDMA) для обеспечения высокой производительности, с низкой задержкой и низким использованием ЦП
  • Шифрование: обеспечивает сквозное шифрование и обеспечивает защиту от перехвата в ненадежных сетях
  • Аренда каталогов: улучшение времени отклика приложений в филиалах с помощью кэширования
  • Оптимизация производительности: оптимизирует небольшие случайные операции чтения и записи ввода-вывода

Отключение SMBv2 деактивирует следующие функции:

  • Соединение запросов: поддерживает отправку нескольких запросов SMBv2 в виде одного сетевого запроса
  • Увеличенные операции чтения и записи: повышают эффективность использования более быстрых сетей.
  • Кэширование свойств папки и файлов: позволяет клиентам хранить локальные копии папок и файлов.
  • Устойчивые дескрипторы: предоставляют способ прозрачного повторного подключения к серверу после временного отключения.
  • Улучшенная подпись сообщений: использует хэш-код проверки подлинности сообщений (HMAC) безопасный хэш-алгоритм (SHA) с 256-разрядным дайджестом (HMAC SHA-256) вместо Message-Digest алгоритма 5 (MD5) в качестве алгоритма хэширования
  • Улучшенная масштабируемость для общего доступа к файлам: значительно увеличивается число пользователей, общих папок и открытых файлов на сервер
  • Поддержка символьных ссылок
  • Модель аренды клиента oplock: ограничивает данные, передаваемые между клиентом и сервером, повышая производительность сетей с высокой задержкой и увеличивая масштабируемость сервера SMB
  • Поддержка большой максимальной единицы передачи (MTU): поддерживает полное задействование 10-гигабитного Ethernet (GbE)
  • Повышение энергоэффективности: предоставляет клиентам, имеющим открытые файлы на сервере, возможность перехода в режим сна.

Протокол SMBv2 появился в Windows Vista и Windows Server 2008. Протокол SMBv3 появился в Windows 8 и Windows Server 2012. Дополнительные сведения о возможностях SMBv2 и SMBv3 см. в следующих статьях:

Удаление SMBv1 с помощью PowerShell

Вы можете использовать Get-WindowsOptionalFeature, Disable-WindowsOptionalFeatureи команды Enable-WindowsOptionalFeature PowerShell для обнаружения, отключения и включения клиента или сервера SMBv1. Выполните команды в командной строке с повышенными привилегиями.

Примечание.

После запуска команд PowerShell компьютер перезагрузится, чтобы отключить или включить SMBv1.

  • Обнаружение:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Отключите:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    
  • Включить

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
    

Совет

Чтобы определить состояние SMBv1 без повышения прав, выполните команду Get-SmbServerConfiguration: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Удалите SMBv1

SMBv1 по умолчанию не устанавливается в Windows Server 2019 и более поздних версиях. В более ранних версиях Windows Server можно использовать диспетчер серверов для удаления SMBv1:

  1. На сервере, из которого требуется удалить SMBv1, откройте диспетчер серверов.

  2. На панели мониторинга Диспетчера серверов в разделе Настройка этого локального серверавыберите Добавить роли и компоненты.

  3. На странице "Перед началом работы" выберите "Пуск мастера удаления ролей и компонентов", а затем на следующей странице нажмите кнопку "Далее".

  4. На странице Выбор целевого сервера в разделе Пул серверовубедитесь, что выбран сервер, с которого нужно удалить функцию, а затем нажмите кнопку Далее.

  5. На странице "Удалить роли сервера" нажмите кнопку "Далее".

  6. На странице Удаление функций снимите флажок для компонента SMB 1.0/CIFS File Sharing Support, а затем выберите Далее.

    снимок экрана: страница

  7. На странице выбора "Подтверждение удаления" убедитесь, что эта функция указана, а затем нажмите кнопку "Удалить".

Использование командной строки или редактора реестра для управления протоколами SMB

Начиная с Windows 10 Fall Creators Update и Windows Server 2019, SMBv1 больше не устанавливается по умолчанию. Дополнительные сведения см. в статье SMBv1 не устанавливается по умолчанию в Windows 10 версии 1709, Windows Server версии 1709 и более поздних версиях.

Если включить или отключить SMBv2 в Windows 8 или Windows Server 2012, SMBv3 также включен или отключен. Это происходит, так как эти протоколы используют один стек.

Вы можете использовать командлет Set-SMBServerConfiguration для включения или отключения протоколов SMBv1, SMBv2 и SMBv3 на сервере. Для получения конфигурации сервера SMB можно использовать командлет Get-SmbServerConfiguration.

После запуска командлета Set-SMBServerConfiguration не нужно перезагрузить компьютер.

SMBv1

  • Обнаружение:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
    
  • Отключите:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
    
  • Включить

    Set-SmbServerConfiguration -EnableSMB1Protocol $true
    

Дополнительные сведения см. в разделе Прекратите использовать SMB1.

SMBv2 и SMBv3

  • Обнаружение:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
    
  • Отключите:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
    
  • Включить

    Set-SmbServerConfiguration -EnableSMB2Protocol $true
    

Включение или отключение SMB в 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 или редактор реестра, как описано в следующих разделах.

Использование Windows PowerShell

Вы можете использовать командлеты Get-Item, Get-ItemPropertyи Set-ItemProperty для обнаружения, включения и отключения протоколов SMB.

Примечание.

Для команд в следующих разделах требуется PowerShell 2.0 или более поздней версии.

SMBv1 на сервере SMB
  • Обнаружение:

    Get-Item HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters | ForEach-Object {Get-ItemProperty $_.pspath}
    

    Конфигурация по умолчанию — Enabled. В результате не создается именованное значение реестра, поэтому команда не возвращает значение 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
    

Примечание.

После внесения этих изменений необходимо перезапустить компьютер.

Дополнительные сведения см. в разделе Прекратите использовать SMB1.

SMBv2 и SMBv3 на сервере 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

Настройте запись со следующими свойствами:

  • Для имени используйте SMB1.
  • Для типа используйте REG_DWORD.
  • Для данных используйте 0 для отключено и 1 для включено. Значение по умолчанию — 1или Включено. В этом случае раздел реестра не создается.

Чтобы включить или отключить SMBv2 на сервере SMB, откройте Редактор реестра и перейдите к следующему пути к разделу реестра:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

Настройте запись со следующими свойствами:

  • Для имени используйте SMB2.
  • Для типа используйте REG_DWORD.
  • Для данных используйте 0 для отключено и 1 для включено. Значение по умолчанию — 1или Включено. В этом случае раздел реестра не создается.

Примечание.

 После внесения этих изменений необходимо перезапустить компьютер.

Отключение SMBv1 с помощью групповой политики

В этом разделе показано, как использовать групповую политику для отключения SMBv1. Этот метод можно использовать в различных версиях Windows.

SMBv1

Вы можете отключить SMBv1 на сервере SMB, настроив следующий новый элемент в реестре:

  • Путь к ключу: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
  • Запись реестра: SMB1
  • Тип записи: REG_DWORD
  • Входные данные: 0, для отключено

Чтобы использовать групповую политику для настройки этого элемента, выполните следующие действия.

  1. Откройте консоль управления групповыми политиками. Щелкните правой кнопкой мыши объект групповой политики, который должен содержать новый элемент предпочтения, а затем выберите Изменить.

  2. В дереве консоли в разделе Конфигурация компьютера разверните папку Предпочтения, а затем разверните папку Параметры Windows.

  3. Щелкните правой кнопкой мыши узел реестра, выберите пункт Создать, а затем выберите элемент реестра.

    снимок экрана: дерево консоли в консоли управления групповыми политиками. Контекстные меню реестра отображаются с выделенным элементом

  4. В диалоговом окне "Новые свойства реестра" выберите или введите следующие значения:

    • Действие: создание
    • Улей: HKEY_LOCAL_MACHINE
    • Путь к ключу: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    • название значения: SMB1
    • тип значения: REG_DWORD
    • значение данных: 0

    снимок экрана диалогового окна

Эта процедура отключает компоненты сервера SMBv1. Эту политику необходимо применить ко всем необходимым рабочим станциям, серверам и контроллерам домена в домене.

Примечание.

 Фильтры инструментария управления Windows (WMI) можно задать для исключения определенных операционных систем или исключения клиентских или серверных операционных систем. Дополнительные сведения см. в статье Фильтрация групповой политики и Создание фильтров WMI дляГрупповой политики.

Важно!

Некоторые системы требуют доступа к папке SYSVOL или другим общим папкам, но не поддерживают SMBv2 или SMBv3. Примерами таких систем являются устаревшие системы Windows и старые системы Linux и партнерские системы. Будьте осторожны при отключении SMBv1 на контроллерах домена в этих системах.

Аудит использования SMBv1

Чтобы определить, какие клиенты пытаются подключиться к серверу SMB с помощью SMBv1, можно включить аудит на клиентах Windows Server и Windows. Чтобы включить или отключить аудит, используйте командлет Set-SmbServerConfiguration. Чтобы проверить статус аудита, используйте командлет Get-SmbServerConfiguration.

  • Включить

    Set-SmbServerConfiguration -AuditSmb1Access $true
    
  • Отключите:

    Set-SmbServerConfiguration -AuditSmb1Access $false
    
  • Обнаружение:

    Get-SmbServerConfiguration | Select AuditSmb1Access
    

После включения аудита SMBv1 можно проверить журнал событий Microsoft-Windows-SMBServer\Audit для событий доступа. Каждый раз, когда клиент пытается использовать SMBv1 для подключения к серверу, запись с идентификатором события 3000 отображается в журнале.

Проверка параметров групповой политики

Если все параметры находятся в одном объекте групповой политики, управление групповыми политиками отображает следующие параметры:

снимок экрана реестра редактора управления групповыми политиками. Три элемента видимы: DependOnService, SMB1 и Start.

Тестирование и проверка политики

После выполнения шагов по конфигурации в консоли управления групповыми политиками дождитесь применения обновлений к параметрам групповых политик. При необходимости для тестирования запустите gpupdate /force в командной строке и просмотрите целевые компьютеры, чтобы убедиться, что параметры реестра применяются правильно. Убедитесь, что SMBv2 и SMBv3 работают для всех других систем в среде.

Примечание.

После тестирования политики перезапустите целевые системы.