Почему и как необходимо отключить SMB1 в Windows 10/8/7

SMB или Server Message Block это протокол обмена по сети, предназначенный для совместного использования файлов, принтеров и других различных устройств. Существует три версии SMB – SMBv1, SMBv2 и SMBv3. Из соображений безопасности Microsoft рекомендует отключить SMB версии 1, так как он устарел и использует технологию, которой почти 30 лет.  Чтобы избежать заражения вирусами-вымогателями типа WannaCrypt нужно отключить SMB1 и установить обновления для операционной системы. Этот протокол используется Windows 2000, Windows XP, Windows Server 2003 и Windows Server 2003 R2 – поэтому сетевой файловый доступ к данным версиям ОС будет не доступен. Тоже самое относится к некоторым  сетевым хранилищам, сканерам и т.п.

Отключение SMB1 из Панели управления

Пуск -> Панель управления -> Программы и компоненты -> Включение и отключение компонентов Windows

smb1.jpg

Отключаем ‘Поддержка общего доступа к файлам SMB 1.0/CIFS’

Отключение SMB1 через Powershell

Откройте консоль Powershell с правами администратора и введите следующую команду:

Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB1 -Type DWORD -Value 0 –Force

Отключить SMB1 с помощью реестра Windows

Также можно отключить SMBv1 запустив regedit.exe и перейдя к следующему разделу:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters

Создайте в этом разделе DWORD SMB1  со значением .

Значения для включения и отключения SMB1:

  • 1 = Включено

После этого необходимо установить обновление MS17-010. Обновление вышло подо все версии Windows, включая не поддерживаемые больше Windows XP и Windows Server 2003.

И в заключении хочется сказать, что, не смотря на установленный антивирус и регулярные обновления операционной системы, если Вам дороги ваши данные, необходимо в первую очередь думать о резервном копировании.

Почему и как необходимо отключить SMB1 в Windows 10/8/7

Скорее всего дело в том, что в рамках постепенного отключения старых небезопасных версий протокола SMB помимо полного отключения SMB1, по умолчанию стала блокировать также доступ под гостевой учетной записью на удаленный сервер по протоколу SMBv2.

windows-10-logo.jpg

При попытке такого подключения как раз и появляется такая ошибка. А в журнале клиента SMB (Microsoft-Windows-SMBClient) при этом фиксируется: Rejected an insecure guest logon.

Именно по этому при доступе к SMBv2 сетевым папкам под гостевой учетной (в большинстве случаев на NAS включают именно гостевой доступ) или к шарам на старых версия ОС (согласно опубликованной ранее таблице поддерживаемых версий SMB в различных версиях Windows, SMB 2.0 используется в Windows Server 2008 и Windows Vista SP1, а SMB 2.1 в Windows Server 2008 R2 и Windows 7).

Чтобы включить доступ под гостевой учетной записью, нужно с помощью редактора групповых политик (gpedit.msc) в разделе:

Конфигурация компьютера ->Административные шаблоны -> Сеть->Рабочая станция Lanman включить политику Включить

небезопасные гостевые входы.

Либо создать следующий ключ реестра:

HKLMSYSTEMCurrentControlSetServicesLanmanWorkstationParameters “AllowInsecureGuestAuth”=dword:1

Если данное решение не помогло, возможно ваш NAS (или другое удаленное устройство, которое предоставляет доступ к сетевым папкам по SMB), поддерживают только SMBv1. Попробуйте включить этот протокол на клиенте (Windows Features -> SMB 1.0/CIFS File Sharing Support -> SMB 1.0/CIFS Client).

Однако, вы должны понимать, что использование данного обходного решения не рекомендовано, т.к. подвергает вашу систему опасности.

По-умолчанию в 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.

Совет. Список событий из журнала можно вывести командой 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: 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.

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

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

Чтобы установить компонент 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

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

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

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

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

Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force

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

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

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

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

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

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

В нашем примере видно, что все компоненты 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

Вы можете включить клиент и сервер 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-ServerEnable-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, который небезопасен и может подвергнуть вашу систему риску атаки. Вашей системе необходимо использовать 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: UpdateHive: HKEY_LOCAL_MACHINEKey Path: SYSTEMCurrentControlSetServicesLanmanServerParametersValue name: SMB1Value type: REG_DWORDValue data: Данная политика отключит через реестр поддержку компонента сервер SMBv1 на всех компьютерах.  Если в вашем домене остались компьютеры с Windows XP/Server 2003, можно использовать отдельный WMI фильтр политики, чтобы исключить эти версии Windows из-под действия политики.

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

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

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

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

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

<xml><w><w>Normal<w>false<w>false<w>false<w>EN-US<w>X-NONE<w>X-NONE</w></w></w></w></w></w></w></w></xml>Windows 7 и Windows 2008 R2. Чтобы полностью удалить драйвер, обрабатывающий доступ клиентов по протоколу SMBv1, выполните следующую команду через PowerShell, от имени администратора:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

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

Get-WindowsOptionalFeature –Online -FeatureName SMB1Protocol

Для отключения SMB версии 2 и 3 выполните следующий код:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

Если захотите включить обратно, то поменяйте $false на $true.Для Windows 7 и Windows 2008 R2, выполните следующее: Чтобы отключить протокол SMB версии 1 на SMB-сервере, выполните следующий командлет:

Set-ItemProperty -Path “HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters” SMB1 -Type DWORD -Value 0 -Force

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

Set-ItemProperty -Path “HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters” SMB2 -Type DWORD -Value 0 -Force

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

Set-ItemProperty -Path “HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters” SMB1 -Type DWORD -Value 1 -Force

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

Set-ItemProperty -Path “HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters” SMB2 -Type DWORD -Value 1 -Force

Также, чтобы отключить поддержку SMB 2.0 на клиентской ОС, можно в командной строке от администратора, выполнить нижеприведённые две команды. Актуально как для ОС Windows 7 так и ОС Windows 10.Внимание! Обязательно соблюдайте пробел после знака равно (=). Для удобства, просто скопируйте и вставьте данные команды в командную строку. Перед любыми изменениями в системе, создавайте резервные копии реестра, образ системы и создавайте контрольные точки восстановления.

Самая популярная проблема при настройке локальной сети – когда компьютер не видит другие компьютеры, общие папки, сетевые накопители и т. д. Эта проблема чаще всего решается настройкой общего доступа и отключением антивируса (брандмауэра), но не всегда. В этой статье я хочу рассказать о нескольких решениях данной проблемы в Windows 10, которые я уже не раз применял на практике. Если у вас компьютер с установленной Windows 10 не видит компьютеры и папки в локальной сети, то первым делом нужно проверить, включена ли поддержка SMB1, так как после одного из обновлений этот протокол отключили. Как бы для безопасности. И это основная причина, по которой на вкладке «Сеть» в проводнике а не появляются сетевые устройства. Как правило, это более старые устройства, которые используют этот самый протокол SMB1, который в десятке отключен.

Открываем мы значит вкладку «Сеть» в проводнике Windows 10, где должны отображаться все сетевые устройства. Но видим там в лучшем случае свой Wi-Fi роутер, свой компьютер и может еще какие-то устройства мультимедиа. Другие компьютеры в локальной сети и сетевые папки не отображаются. А с других компьютеров они обычно видны и можно на них зайти. В том числе на этот компьютер с установленной Windows 10.

17-02-2019-11-10-08.jpg

Как правило, все компьютеры подключены через один маршрутизтор. И многие почему-то думают, что локальная сеть не работает именно из-за настроек маршрутизатора. Но по своему опыту могу сказать, что это не так. Если на маршрутизаторе вы не настраивали какие-то особые функции и ничего не отключали, то все подключенные к нему устройства автоматически находятся в одной локальной сети.

Отдельно хочу рассказать об общем доступе к USB-накопителям через роутер. Если вы подключили к роутеру в USB-порт флешку, или внешний жесткий диск и Windows 10 не видит сетевой накопитель на вкладке «Сеть», то проблема так же может быть в отключенном протоколе SMB1. Так как роутер использует этот протокол для общего доступа к накопителю (сетевой папке).

Включаем поддержку протокола SMB1 в Windows 10

Откройте Пуск (или нажмите на кнопку поиска) и введите «компонентов». Откройте «Включение или отключение компонентов Windows». Или можно открыть это окно через «Панель управления» – «Программы и компоненты» и слева переходим в «Включение или отключение компонентов Windows».

17-02-2019-11-37-26.jpg

Открываем пункт «Поддержка общего доступа к файлам SMB 1.0/CIFS». Нужно поставить галочку возле «Клиент SMB 1.0/CIFS» и нажать «Ok».

17-02-2019-11-44-43.jpg

Поддержка старого протокола SMB 1.0 в Windows 10 включена. Теперь система должна видеть все сетевые папки, доступ к которым осуществляется через SMB 1. Можете еще выполнить перезагрузку компьютера.

Проверка параметров общего доступа в Windows 10

Возможно, конечно, на вашем компьютере отключен, или неправильно настроен общий доступ. Из-за чего Windows 10 не может обнаружить другие компьютеры и накопители в локальной сети. Сейчас покажу, как проверить эти настройки.

В Windows 10 (версия 1803) домашняя группа была удалена. Достаточно просто настроить общий доступ к принтерам и файлам.

Открываем меню «Пуск» (или нажав на кнопку поиска) и пишем «общего доступа». Открываем «Управление расширенными параметрами общего доступа».

17-02-2019-12-03-50.jpg

Или можно открыть это окно в параметрах «Сеть и Интернет» – «Параметры общего доступа».

17-02-2019-12-08-18.jpg

Дальше для текущего профиля (скорее всего это будет частная сеть) установите переключатель возле «Включить сетевое обнаружение» и «Включить общий доступ к файлам и принтерам». А так же поставьте галочку возле «Включить автоматическую настройку на сетевых устройствах».

17-02-2019-12-09-49.jpg

Нажмите на кнопку «Сохранить изменения».

Если это не поможет – попробуйте установить такие настройки для вкладки «Все сети».

17-02-2019-12-15-01.jpg

Но не рекомендую составлять такие настройки, особенно если вы часто подключаетесь к общественным Wi-Fi сетям.

Еще несколько решений:

  • Убедитесь, что ваш компьютер и другие компьютеры с которыми вы хотите настроить локальную сеть подключены через один роутер.
  • Отключите антивирус (встроенный в нем брандмауэр) и защитник Windows. Если это не решит проблему – включите обратно.
  • Если ваш компьютер с Windows 10 (который не видит общие папки и компьютеры в локальной сети) подключен к роутеру по Wi-Fi, то присвойте этой беспроводной сети статус частной (домашней).17-02-2019-12-21-45.jpg
  • Убедитесь, что на других компьютерах в локальной сети правильно заданы настройки общего доступа. Или на роутере настроен общий доступ к подключенному USB-накопителю.

Буду рад видеть ваши комментарии с другими решениями и вопросами по теме данной статьи!

Используемые источники:

  • https://admin812.ru/pochemu-i-kak-neobhodimo-otklyuchit-smb1-v-windpws-1.html
  • http://it-chainik.ru/ne-otkryvayutsya-obshhie-setevye-smb-papki-v-windows-10/
  • https://winitpro.ru/index.php/2017/05/10/otklyuchenie-smb-1-0-v-windows-10-server-2016/
  • https://pc103help.blogspot.com/2018/04/otkljuchaem-smb-v-os-windows.html
  • https://prostocomp.net/sistema/windows-10-ne-vidit-kompyutery-v-seti-i-obshhie-papki-pochemu-i-chto-delat.html

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий