Как включить или отключить протокол SMB 1.0 в Windows 10/11 и Windows Server?

Как включить или отключить протокол SMB 1.0 в Windows 10/11 и Windows Server?

Протокол доступа к общим файлам SMB 1.0 (Server Message Block) по умолчанию отключен в последних версиях Windows 11 и 10, а также в Windows Server 2019/2022. Эта версия протокола является небезопасной/уязвимой, и не рекомендуется использовать ее на устройствах в локальной сети. Windows поддерживает более безопасные версии протокола SMB (2.x и 3.x).

SMB v1 может быть необходим, только если в вашей сети остались устаревшие устройства с Windows XP/2003, старые версии NAS, сетевые принтеры с поддержкой SMB, устройства со старыми версиями samba, и т.д. В этой статье мы рассмотрим, как включить или отключить протокол общего доступа к файлам SMB 1.0 в Windows.

Обратите внимание что протокол SMB состоит из двух компонентов, которые можно включать/отключать по отдельности:

  • Клиент SMB0 – нужен для доступа к общим папками на других компьютерах
  • Сервер SMB 0 – должен быть включен, если ваш компьютер используется в качестве файлового сервера, к которому подключаются другие компьютеры и устройства.

 

 

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

Начиная с Windows 10 1709, протокол SMB 1 отключен в десктопных версиях Windows, но его можно включить из вручную.

Откройте командную строку и проверить статус компонентов протокола SMBv1 в Windows с помощью команды 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 и 11 также можно управлять компонентами SMB 1 из панели Windows Features (
optionalfeatures.exe
). Разверните ветку Поддержка общего доступа к файлам SMB 1.0 /CIFS (SMB 1.0/CIFS File Sharing Support). Как вы видите здесь также доступны 3 компонента:

  • Клиент SMB 1.0/CIFS (SMB 1.0/CIFS Client)
  • Сервер SMB 1.0/CIFS (SMB 1.0/CIFS Server)
  • Автоматическое удаление протокола SMB0/CIFS (SMB 1.0/CIFS Automatic Removal)

Клиент SMB v1.0 нужно установить, если вашему компьютеру нужен доступ к сетевым папкам на старых устройствах. Если устаревшие сетевые устройства должны писать данные в сетевые папки на вашем компьютере, или использовать его общие сетевые принтеры, нужно включить сервер SMB 1.

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

Вы можете включить клиент или сервер SMB 1.0 в Windows 10/11 из панели окна управления компонентами или с помощью команд:

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 дней, он автоматически отключается.

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

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

Или удалите компоненты SMB1Protocol с помощью PowerShell:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

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

  • 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).

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

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

В Windows Server 2019 и 2022 компоненты протокола SMBv1 также по умолчанию отключены. Включить SMB v1 в этих версиях можно через Server Manager (компонент SMB 1.0/CIFS File Sharing Support) или с помощью PowerShell.

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

Проверить, включен ли SMB 1.0 в Windows Server с помощью команды PowerShell:

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

Get-WindowsFeature SMB1 включить в Windows Server

Чтобы установить клиент SMB 1, выполните команду:

Install-WindowsFeature FS-SMB1-CLIENT

Включить поддержку серверной части SMB 1.0:

Install-WindowsFeature FS-SMB1-SERVER

Затем проверьте, что протокол SMB 1 включен в настройках SMB сервера. Если протокол отключен, включите его:

Get-SmbServerConfiguration | select EnableSMB1Protocol
Set-SmbServerConfiguration -EnableSMB1Protocol $true -Force

Set-SmbServerConfiguration команда EnableSMB1Protocol

Если в EnableSMB1Protocol = True, значит этот сервер поддерживает SMB 1.0 клеинтов.

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

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

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

Uninstall-WindowsFeature -Name FS-SMB1 -Remove

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

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

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

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

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

Set-SmbServerConfiguration –AuditSmb1Access $true

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

Проверьте, есть ли в журнале событие с 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

Вам нужно найти в сети компьютер или устройство с этим IP адресом. Если возможно обновите на нем ОС или прошивку, до версии поддерживающий, более новые протоколы SMBv2 или SMBv3. Если обновить такой клиент не удастся, придется включить SMBv1 на вашем файловом сервере.

Чтобы найти в Active Directory все компьютеры, на которых включен протокол SMB v1, выполните команду:

Get-ADComputer -Filter {(enabled -eq $True) } | % {Invoke-Command -ComputerName $_.DNSHostName -scriptblock {If ( (Get-ItemProperty -path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters").SMB1 -eq 1 ) {Write-Output "SMBv1 is enabled on ${env:computername}"}}}

Эта команда получит список активных компьютеров в домене с помощью командлета Get-ADComputer. Затем с помощью Invoke-Command выполнит подключение через PowerShell Remoting к каждому компьютеру и проверит включен ли сервис SMB 1.0.

Если в вашем сети не осталось устаревших устройств, которые поддерживают только SMB 1.0, нужно полностью отключить эту версию протокола на всех компьютерах. Чтобы предотвратить ручную установку и включение компонентов SMB 1.0 на компьютерах в домене AF, можно внедрить групповую политику, которая будет принудительно отключить протокол SMB 1.0 на всех серверах и компьютерах. Т.к. в стандартных политиках 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:
    SYSTEMCurrentControlSetServicesLanmanServerParameters

    Value name:
    SMB1

    Value type:
    REG_DWORD

    Value data:
    0
    отключить SMB1 сервер групповой политикой
  4. Данная политика отключит службу сервера SMBv1.

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

  • Параметр Start (типа REG_DWORD) со значением 4 в ветке реестра HKLMSYSTEMCurrentControlSetservicesmrxsmb10;
  • Параметр DependOnService (типа REG_MULTI_SZ) со значением Bowser, MRxSmb20, NSI (каждое значение с новой строки) в ветке реестра HKLMSYSTEMCurrentControlSetServicesLanmanWorkstation.

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

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

С помощью WMI фильтр GPO можно сделать исключения для определенных версий Windows.

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

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

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

Windows 10
Как включить или отключить протокол SMB 1.0 в Windows 10/11 и Windows Server?