Как отключить или включить протокол SMBv1 в Windows 10/Server 2016?

По-умолчанию в Windows Server 2016/2019 и Windows 10 (начиная с билда 1709) отключена поддержка сетевого протокола для общего доступа к файлам в сетевых папках Server Message Block 1.0 (SMBv1). Этот протокол в большинстве случаев нужно только для обеспечения работы устаревших систем, например снятых с поддержки Windows XP, Windows Server 2003 и т.д. В этой статье мы рассмотрим, как включить или корректно отключить поддержку клиента и сервера SMBv1 в Windows 10 и Windows Server 2016/2019.

Если вашей сети не осталось устройств, которые поддерживают только протокол SMB 1.1, нужно полностью отключить протокол SMBv1 на всех Windows компьютерах в целях безопасности. Отключив SMB 1, вы защитите компьютеры Windows от большого количества уязвимостей, которые есть в этом устаревшем протоколе (самый известный публичный эксплоит для SMBv1 — EternalBlue). В результате клиенты при доступе к общим сетевым SMB шарам будут использовать новые более производительные, безопасные и функциональные версии протокола SMB.

В одной из предыдущих статей мы приводили таблицу совместимости версий протокола SMB на стороне клиента и сервера. Согласно этой таблице, старые версии клиентов (XP, Server 2003 и некоторые устаревшие *nix клиенты) могут использовать для доступа к файловым ресурсам только протокол SMB 1.0. Если таких клиентов в сети не осталось, можно полностью отключить SMB 1.0 на стороне файловых серверов (в том числе контролерах домена AD) и клиентских станциях.

В Windows 10 и Windows Server 2016 протокол SMBv1 разделен на два отдельных компонента – SMB клиент и SMB сервер, которые можно включать/отключать отдельно.

Аудит доступа к файловому серверу по SMB v1.0

Перед отключением и полным удалением драйвера SMB 1.0 на стороне файлового SMB сервера желательно убедится, что в сети не осталось устаревших клиентов, которые используют для подключения протокол SMB v1.0. Для этого, нужно включить аудит доступа к файловому серверу по SMB1 протоколу с помощью команды PowerShell:

Set-SmbServerConfiguration –AuditSmb1Access $true

Через пару дней откройте на сервере журнал событий Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit и проверьте, были ли зафиксированы попытки доступа к ресурсам сервера по протоколу SMB1.

Совет. Список событий из журнала Event Viewer можно вывести командой PowerShell:

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

В нашем примере в журнале обнаружено событие с EventID 3000 от источника SMBServer, в котором указано что клиент 192.168.1.10 пытается обратиться к сервереу по протоколу SMB1.

SMB1 access Client Address: 192.168.1.10 
Guidance: This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.

Аудит доступа к шарам по SMB 1.0

Вам нужно найти в сети этот компьютер или устройство, при необходимости обновить ОС или прошивку, до версии поддерживающий, более новые протоколы SMB: SMBv2 или SMBv3.

В данном случае, мы проигнорируем эту информацию, но нужно учитывать тот факт, что в дальнейшем данный клиент не сможет получить SMB доступ к общим папкам на этом сервере.

Включение/отключение SMB 1.0 в Windows Server 2016/2019

В Windows Server 2016, начиная с билда 1709, и Windows Server 2019 по умолчанию отключен протокол SMBv1. Чтобы включить поддержку клиентского протокола SMBv1в новых версиях Windows Server, нужно установить отдельный компонент SMB 1.0/CIFS File Sharing Support.

Вы можете установить компонент поддержки клиента SMBv1 с помощью Server Manager, или через PowerShell.

компонент SMB 1.0/CIFS File Sharing Support в Windows Server 2016

Проверить, что SMBv1 включен можно командой PowerShell:

Get-WindowsFeature | Where-Object {$_.name -eq "FS-SMB1"} | ft Name,Installstate

проверить что в windows server установлен компонент FS-SMB1

Чтобы установить компонент FS-SMB1, выполните:

Install-WindowsFeature FS-SMB1

Для удаления SMBv1 клиента (понадобится перезагрузка), выполните:

Uninstall-WindowsFeature –Name FS-SMB1 –Remove

Еще одна PowerShell команда, которая также позволяет удалить протокол SMB1Protocol:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

Чтобы ваш сервер мог обрабатывать доступ клиентов по протоколу SMBv1, кроме компонента FS-SMB1 нужно, чтобы поддержка протокола SMBv1 была включена на уровне файлового сервера SMB. Чтобы проверить, что на вашем сервере включен доступ по SMBv1 к сетевым папкам, выполните:

Get-SmbServerConfiguration

Get-SmbServerConfiguration протокол smb1 включен

Строка “ EnableSMB1Protocol: True ” говорит о том, что у вас разрешен доступ по протоколу SMBv1 к сетевым папкам на сервере. Чтобы отключить поддержку сервера SMBv1 в Windows Server, выполните команду:

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

Теперь с помощью командлета Get-SmbServerConfiguration убедитесь, что протокол SMB1 отключен.

Отключить SMB 1.0 в Windows 10/ Server 2016

Чтобы включить поддержку протокола SMBv1 на сервере, выполните команду:

Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force

В Windows 7/8 и Windows Server 2008 R2/ 2012 для отключения клиента SMB нужно отключать службу и драйвер доступа по SMBv1 командами:

sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

отключение smb1 драйвера и службы

Включить/отключить SMB 1.0 в Windows 10

Как мы уже говорили, начиная с Windows 10 1709, во всех новых билдах поддержка протокола SMB1 отключена (также отключен гостевой доступ по протоколу SMBv2).

В Windows 10 вы можете проверить статус компонентов SMBv1 протокола командой DISM:

Dism /online /Get-Features /format:table | find "SMB1Protocol"

dism проверить что протокола SMB1Protocol установлен в windows 10

В нашем примере видно, что все компоненты SMBv1 отключены:

SMB1Protocol                                | Disabled
SMB1Protocol-Client                         | Disabled
SMB1Protocol-Server                         | Disabled SMB1Protocol-Deprecation                    | Disabled

В Windows 10 также можно управлять компонентами SMB 1 из панели управления компонентами ( optionalfeatures.exe ). Разверните ветку Поддержка общего доступа к файлам SMB 1.0 /CIFS. Как вы видите здесь также доступны 3 компонента:

  • Клиент SMB0/CIFS
  • Сервер SMB0/CIFS
  • Автоматическое удаление протокола SMB0/CIFS

настройка компонента "Поддержка общего доступа к файлам SMB 1.0 /CIFS" в WIndows 10

Вы можете включить клиент и сервер SMBv1 в Windows 10 из окна управления компонентами или командой:

Dism /online /Enable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Enable-Feature /FeatureName:"SMB1Protocol-Server"

Также можно включить сервер и клиент SMBv1 с помощью PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Server
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

Если после включения SMBv1 клиента, он не используется более 15 дней, он автоматически отключается.

Автоматическое отключение клиента SMBv1 это разовая операция. Если администратор включит SMBv1 вручную еще раз, он не будет отключаться автоматически.

Чтобы отключить поддержку клиента и сервера SMB1 в Windows 10, выполните следующие команды DISM:

Dism /online /Disable-Feature /FeatureName:"SMB1Protocol"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Client"
Dism /online /Disable-Feature /FeatureName:"SMB1Protocol-Server"

Если вы отключили поддержку SMBv1 клиента в Windows 10, то при доступе к сетевой папке на файловом сервере, который поддерживает только SMBv1 (протоколы SMBv2 и v3 отключены или не поддерживаются), появятся ошибки вида:

  • 0x80070035 — не найден сетевой путь;
  • Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
     Unable to connect to file shares because it is not secure. This share requires the obsolete SMB1 protocol, which is not secure and could expose your system to attacks

    ;ошибки доступа по smb1 в Windows 10

  • Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколуSMB1, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать SMB2 или более позднюю версию.
    You can’t connect to the file share because it’s not secure. This share requires the obsolete SMB1 protocol, which is unsafe and could expose your system to attack. Your system requires SMB2 or higher).

    Подробнее это написано в статье Не открываются общие сетевые папки в Windows 10.

Также при отключении клиента SMBv1 на компьютере перестает работать служба Computer Browser (Обозреватель компьютеров), которая используется устаревшим протоколом NetBIOS для обнаружения устройств в сети. Для корректгого отобрражения соседних компьютеров в сети Windows 10 нужно настроить службу Function Discovery Provider Host (см. статью).

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

В доменной среде Active Directory вы можете отключить протокол SMBv1 на всех серверах и компьютеров с помощью групповой политики. Т.к. в стандартных политиках Windows нет политики настройки компонентов SMB, придется отключать его через политику реестра.

  1. Откройте консоль управления Group Policy Management (gpmc.msc), создайте новый объект GPO (disableSMBv1) и назначьте его на OU с компьютерами, на которых нужно отключить SMB1;
  2. Перейдите в режим редактирования политики. Выберите Computer Configuration -> Preferences -> Windows Settings -> Registry;
  3. Создайте новый параметр реестра (Registry Item) со следующими настройками:
    Action: Update
    Hive: HKEY_LOCAL_MACHINE
    Key Path: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
    Value name: SMB1
    Value type: REG_DWORD
    Value data: 0 отключить SMB1 сервер групповой политикой
    Данная политика отключит через реестр поддержку компонента сервер SMBv1 на всех компьютерах.
    Если в вашем домене остались компьютеры с Windows XP/Server 2003, можно использовать отдельный WMI фильтр политики, чтобы исключить эти версии Windows из-под действия политики.

Если вы хотите через GPO отключить на компьютерах SMB клиент, создайте дополнительно два параметра реестра:

  • Параметр Start (типа REG_DWORD) со значением 4 в ветке реестра HKLM\SYSTEM\CurrentControlSet\services\mrxsmb10;
  • Параметр DependOnService (типа REG_MULTI_SZ) со значением Bowser, MRxSmb20, NSI (каждое значение с новой строки) в ветке реестра HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation.

групповая политика отключения службы SMBv1 клиента

Осталось обновить настройки групповых политик на клиентах и после перезагрузки проверить, что компоненты SMBv1 полностью отключены.

В групповых политиках Security Baseline из Microsoft Security Compliance Toolkit есть отдельный административный шаблон (файлы SecGuide.adml и SecGuide.ADMX), в которых есть отдельные параметры для отключения сервера и клиента SMB:

  • Configure SMB v1 server;
  • Configure SMB v1 client driver.

групповая политика для включения/отключение smbv1 сервера и клиента


Предыдущая статья Следующая статья


Комментариев: 29 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)