Как обнаруживать, включать и отключать SMBv1, SMBv2 и SMBv3 в Windows
В этой статье описывается включение и отключение блока сообщений сервера (SMB) версии 1 (SMBv1), SMB версии 2 (SMBv2) и SMB версии 3 (SMBv3) на клиентских и серверных компонентах SMB.
При отключении или удалении SMBv1 могут возникнуть некоторые проблемы совместимости со старыми компьютерами или программным обеспечением, SMBv1 имеет значительные уязвимости безопасности, и мы настоятельно рекомендуем не использовать его. SMB 1.0 по умолчанию не устанавливается в любом выпуске Windows 11 или Windows Server 2019 и более поздних версий. SMB 1.0 также не устанавливается по умолчанию в Windows 10, за исключением выпусков Home и Pro. Рекомендуется вместо переустановки SMB 1.0 обновить сервер SMB, который по-прежнему требуется. Список сторонних разработчиков, требующих SMB 1.0 и их обновлений, которые удалят требование, ознакомьтесь с разделом "Очистка продуктов SMB1".
Отключение 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 деактивирует следующие функции:
- Прозрачная отработка отказа — клиенты повторно подключались без прерывания работы с узлами кластера во время обслуживания или отработки отказа.
- Горизонтальное масштабирование — одновременный доступ к общим данным на всех узлах кластера файлов
- Multichannel — агрегирование пропускной способности сети и отказоустойчивости при наличии нескольких путей между клиентом и сервером
- SMB Direct — добавляет ПОДДЕРЖКУ сети RDMA для высокой производительности, с низкой задержкой и низким использованием ЦП
- Шифрование — обеспечивает сквозное шифрование и защищает от перехвата в ненадежных сетях.
- Аренда каталогов — улучшает время отклика приложений в филиалах с помощью кэширования
- Оптимизация производительности — оптимизация для небольших случайных операций чтения и записи операций ввода-вывода
В Windows 7 и Windows Server 2008 R2 отключение SMBv2 деактивирует следующие функции:
- Соединение запросов — позволяет отправлять несколько запросов SMBv2 в виде одного сетевого запроса.
- Более крупные операции чтения и записи — лучшее использование более быстрых сетей
- Кэширование свойств папки и файлов — клиенты хранят локальные копии папок и файлов.
- Устойчивые дескрипторы — разрешить прозрачное повторное подключение к серверу при временном отключении
- Улучшенная подпись сообщения — HMAC SHA-256 заменяет MD5 в качестве алгоритма хэширования
- Улучшенная масштабируемость для общего доступа к файлам — количество пользователей, общих папок и открытых файлов на сервер значительно увеличилось
- Поддержка символьных ссылок
- Модель аренды клиента oplock — ограничивает данные, передаваемые между клиентом и сервером, повышая производительность в сетях с высокой задержкой и увеличивая масштабируемость сервера SMB
- Поддержка большого MTU — для полного использования 10 Гигабит 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 не нужно перезагрузить компьютер.
SMB версии 1;
Обнаружение:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
Отключите:
Set-SmbServerConfiguration -EnableSMB1Protocol $false
Включите параметр
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Дополнительные сведения см. в разделе "Хранилище сервера" в Корпорации Майкрософт.
SMB версии 2/v3
Обнаружение:
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.
SMB версии 1;
Эта процедура настраивает следующий новый элемент в реестре:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Запись реестра: SMB1
- REG_DWORD: 0 = отключен
Чтобы настроить групповую политику, выполните следующие действия.
Откройте Консоль управления групповыми политиками. Щелкните правой кнопкой мыши объект групповой политики, который должен содержать новый элемент предпочтения, а затем нажмите кнопку "Изменить".
В дереве консоли в разделе "Конфигурация компьютера" разверните папку "Параметры" и разверните папку "Параметры 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, событие 3000 отображается в журнале событий Microsoft-Windows-SMBServer\Audit, определяющем каждый клиент, который пытается подключиться к SMBv1.
Итоги
Если все параметры находятся в одном объекте групповой политики, управление групповыми политиками отображает следующие параметры.
Тестирование и проверка
Выполнив действия по настройке в этой статье, разрешите политике репликацию и обновление. При необходимости для тестирования запустите gpupdate /force в командной строке, а затем просмотрите целевые компьютеры, чтобы убедиться, что параметры реестра применяются правильно. Убедитесь, что SMBv2 и SMBv3 работают для всех других систем в среде.
Примечание.
Не забудьте перезапустить целевые системы.