Как отключить smb1 в windows server 2008 r2

How to enable and disable SMBv1, SMBv2, and SMBv3 in Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012

This article describes how to enable and disable Server Message Block (SMB) version 1 (SMBv1), SMB version 2 (SMBv2), and SMB version 3 (SMBv3) on the SMB client and server components.

Summary

In Windows 7 and Windows Server 2008 R2, disabling SMBv2 deactivates the following functionality:

  • Request compounding — allows for sending multiple SMB 2 requests as a single network request
  • Larger reads and writes — better use of faster networks
  • Caching of folder and file properties — clients keep local copies of folders and files
  • Durable handles — allow for connection to transparently reconnect to the server if there is a temporary disconnection
  • Improved message signing — HMAC SHA-256 replaces MD5 as hashing algorithm
  • Improved scalability for file sharing — number of users, shares, and open files per server greatly increased
  • Support for symbolic links
  • Client oplock leasing model — limits the data transferred between the client and server, improving performance on high-latency networks and increasing SMB server scalability
  • Large MTU support — for full use of 10-gigabye (GB) Ethernet
  • Improved energy efficiency — clients that have open files to a server can sleep

In Windows 8 and Windows Server 2012, disabling SMBv3 deactivates the following functionality (and also the SMBv2 functionality that is described in the previous list):

  • Transparent Failover — clients reconnect without interruption to cluster nodes during maintenance or failover
  • Scale Out – concurrent access to shared data on all file cluster nodes
  • Multichannel — aggregation of network bandwidth and fault tolerance if multiple paths are available between client and server
  • SMB Direct – adds RDMA networking support for very high performance, with low latency and low CPU utilization
  • Encryption – Provides end-to-end encryption and protects from eavesdropping on untrustworthy networks
  • Directory Leasing — Improves application response times in branch offices through caching
  • Performance Optimizations — optimizations for small random read/write I/O
More information

The SMBv2 protocol was introduced in Windows Vista and Windows Server 2008.

The SMBv3 protocol was introduced in Windows 8 and Windows Server 2012.

For more information about the capabilities of SMBv2 and SMBv3 capabilities, go to the following Microsoft TechNet websites:

Server Message Block overview

What’s New in SMB

  • How to enable or disable SMB protocols on the SMB server

    Windows 8 and Windows Server 2012

    Windows 8 and Windows Server 2012 introduce the new Set-SMBServerConfiguration Windows PowerShell cmdlet. The cmdlet enables you to enable or disable the SMBv1, SMBv2, and SMBv3 protocols on the server component.

    Notes When you enable or disable SMBv2 in Windows 8 or in Windows Server 2012, SMBv3 is also enabled or disabled. This behavior occurs because these protocols share the same stack.

    You do not have to restart the computer after you run the Set-SMBServerConfiguration cmdlet.

    • To obtain the current state of the SMB server protocol configuration, run the following cmdlet:

      Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

    • To disable SMBv1 on the SMB server, run the following cmdlet:

      Set-SmbServerConfiguration -EnableSMB1Protocol $false

    • To disable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:

      Set-SmbServerConfiguration -EnableSMB2Protocol $false

    • To enable SMBv1 on the SMB server, run the following cmdlet:

      Set-SmbServerConfiguration -EnableSMB1Protocol $true

    • To enable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:

      Set-SmbServerConfiguration -EnableSMB2Protocol $true

    Windows 7, Windows Server 2008 R2, Windows Vista, and Windows Server 2008

    To enable or disable SMB protocols on an SMB Server that is runningWindows 7, Windows Server 2008 R2, Windows Vista, or Windows Server 2008, use Windows PowerShell or Registry Editor.

    Windows PowerShell 2.0 or a later version of PowerShell

    • To disable SMBv1 on the SMB server, run the following cmdlet:

      Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 0 -Force

    • To disable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:

      Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 0 -Force

    • To enable SMBv1 on the SMB server, run the following cmdlet:

      Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 1 -Force

    • To enable SMBv2 and SMBv3 on the SMB server, run the following cmdlet:

      Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 1 -Force

    Note You must restart the computer after you make these changes.

    Registry Editor

    Important This article contains information about how to modify the registry. Make sure that you back up the registry before you modify it. Make sure that you know how to restore the registry if a problem occurs. For more information about how to back up, restore, and modify the registry, click the following article number to view the article in the Microsoft Knowledge Base:

    322756 How to back up and restore the registry in Windows

    To enable or disable SMBv1 on the SMB server, configure the following registry key:

    Registry subkey:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\ParametersRegistry entry: SMB1
    REG_DWORD: 0 = Disabled
    REG_DWORD: 1 = Enabled
    Default: 1 = Enabled To enable or disable SMBv2 on the SMB server, configure the following registry key:

    Registry subkey:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

    Registry entry: SMB2
    REG_DWORD: 0 = Disabled
    REG_DWORD: 1 = Enabled
    Default: 1 = Enabled

    How to enable or disable SMB protocols on the SMB client

    Windows Vista, Windows Server 2008, Windows 7, Windows Server 2008 R2, Windows 8, and Windows Server 2012

    Note When you enable or disable SMBv2 in Windows 8 or in Windows Server 2012, SMBv3 is also enabled or disabled. This behavior occurs because these protocols share the same stack.

    • To disable SMBv1 on the SMB client, run the following commands:

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

    • To enable SMBv1 on the SMB client, run the following commands:

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

    • To disable SMBv2 and SMBv3 on the SMB client, run the following commands:

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

    • To enable SMBv2 and SMBv3 on the SMB client, run the following commands:

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

    Notes

    • You must run these commands at an elevated command prompt.
    • You must restart the computer after you make these changes.

Published: 21/10/16 — 08:51:30 (Amanda Higgins)

Related Articles


Running DE8 on Windows Servers, do and dont’s (SMB1,SMB2,SMB3 and OpLocks)

With the release of DataEase 8.0, 8.1, 8.2 and Windows 7, 8 , 8.1 and Windows Server 2012 R2, we are frequently asked about how new versions of DataEase work when connecting to old versions of Windows servers and old versions of DataEase connecting to new…


Other sources of Network problems

This is a little old, but it is still useful. If you have switched off SMB2 and SMB3 on your networ as well as disabled OpLocks for SMB1 and still have problems with corruption, have a look below and see if some of these things might apply to your network…


Environment Variables in Windows XP, WIndows 7 and 8 (Complete List)

Environment variables is very useful to make general code. You can include them in paths directly to access files native to an active user/workstation/profile/session etc….

Сетевой протокол SMB (Server Message Block) используется для предоставления совместного удаленного доступа к файлам, принтерам и другим устройствам через порт TCP 445. В этой статье мы рассмотрим: какие версии (диалекты) протокола SMB доступны в различных версиях Windows (и как они соотносятся с версиями samba в Linux); как определить версию SMB на вашем компьютере; и как включить/отключить клиент и сервер SMBv1, SMBv2 и SMBv3.

Содержание:

  • Версии протокола SMB в Windows
  • Как проверить поддерживаемые версии SMB в Windows?
  • Вывести используемые версии SMB с помощью Get-SMBConnection
  • Об опасности использования SMBv1
  • Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows

Версии протокола SMB в Windows

Есть несколько версии протокола SMB (диалектов), которые последовательно появлялись в новых версиях Windows:

Для реализации протокола SMB в Linux/Unix системах используется samba. В скобках мы указали в каких версиях samba поддерживается каждый диалект SMB.

  • CIFS — Windows NT 4.0;
  • SMB 1.0 — Windows 2000;
  • SMB 2.0 — Windows Server 2008 и Windows Vista SP1 (поддерживается в Samba 3.6);
  • SMB 2.1 — Windows Server 2008 R2 и Windows 7 (поддерживается в Samba 4.0);
  • SMB 3.0 — Windows Server 2012 и Windows 8 (поддерживается в Samba 4.2);
  • SMB 3.02 — Windows Server 2012 R2 и Windows 8. 1 (не поддерживается в Samba);
  • SMB 3.1.1 – Windows Server 2016 и Windows 10 (не поддерживается в Samba).

Начиная с версии Samba 4.14, по умолчанию используется SMB2.1.

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

Ниже представлена сводная таблица, по которой можно определить версию протокола SMB, которая выбирается при взаимодействии разных версий Windows:

Операционная система Win 10, Server 2016 Windows 8.1,
Server 2012 R2
Windows 8,
Server 2012
Windows 7,
Server 2008 R2
Windows Vista,
Server 2008
Windows XP, Server 2003 и ниже
Windows 10 ,

Windows Server 2016

SMB 3.1.1 SMB 3.02 SMB 3.0 SMB 2.1 SMB 2.0 SMB 1.0
Windows 8.1 ,
Server 2012 R2
SMB 3.02 SMB 3.02 SMB 3.0 SMB 2.1 SMB 2.0 SMB 1.0
Windows 8 ,
Server 2012
SMB 3.0 SMB 3.0 SMB 3.0 SMB 2.1 SMB 2.0 SMB 1.0
Windows 7,
Server 2008 R2
SMB 2.1 SMB 2.1 SMB 2.1 SMB 2.1 SMB 2.0 SMB 1.0
Windows Vista,
Server 2008
SMB 2.0 SMB 2.0 SMB 2.0 SMB 2.0 SMB 2.0 SMB 1.0
Windows XP, 2003 и ниже SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0 SMB 1.0

К примеру, при подключении клиентского компьютера с Windows 8.1 к файловому серверу с Windows Server 2016 будет использоваться протокол SMB 3.0.2.

Согласно таблице Windows XP, Windows Server 2003 для доступа к общим файлам и папкам на сервере могут использовать только SMB 1.0, который в новых версиях Windows Server (2012 R2 / 2016) может быть отключен. Таким образом, если в вашей инфраструктуре одновременно используются компьютеры с Windows XP (снятой с поддержки), Windows Server 2003/R2 и сервера с Windows Server 2012 R2/2016/2019, устаревшие клиенты не смогут получить доступ к файлам и папкам на файловом сервере с новой ОС.

Если Windows Server 2016/2012 R2 с отключенным SMB v1.0 используется в качестве контроллера домена, значить клиенты на Windows XP/Server 2003 не смогут получить доступ к каталогам SYSVOL и NETLOGON на контроллерах домена и авторизоваться в AD.

На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 появляется ошибка:

The specified network name is no longer available

Как проверить поддерживаемые версии SMB в Windows?

Рассмотрим, как определить, какие версии протокола SMB поддерживаются на вашем компьютере Windows.

В Windows 10, 8.1 и Windows Server 2019/2016/2012R2 вы можете проверить состояние различных диалектов SMB протокола с помощью PowerShell:

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

Данная команда вернула, что протокол SMB1 отключен (
EnableSMB1Protocol=False
), а протоколы SMB2 и SMB3 включены (
EnableSMB1Protocol=True
).

Обратите внимание, что протоколы SMBv3 и SMBv2 тесно связаны между собой. Нельзя отключить или включить отдельно SMBv3 или SMBv2. Они всегда включаются/отключаются только совместно, т.к. используют один стек.

В Windows 7, Vista, Windows Server 2008 R2/2008:

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

Если в данной ветке реестра нет параметров с именами SMB1 или SMB2, значить протоколы SMB1 и SMB2 по умолчанию включены.

проверить какие версии smb включены в windows

Также в этих версиях Windows вы можете проверить, какие диалекты SMB разрешено использовать в качестве клиентов с помощью команд:

sc.exe query mrxsmb10

SERVICE_NAME: mrxsmb10
TYPE : 2 FILE_SYSTEM_DRIVER
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

sc.exe query mrxsmb20

SERVICE_NAME: mrxsmb20
TYPE : 2 FILE_SYSTEM_DRIVER
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0

В обоих случаях службы запущены (
STATE=4 Running
). Значит Windows может подключаться как к SMBv1, так и к SMBv2 серверам.

Вывести используемые версии SMB с помощью Get-SMBConnection

Как мы говорили раньше, компьютеры при взаимодействии по протоколу SMB используют максимальную версию, поддерживаемую как клиентом, так и сервером. Для определения версии SMB, используемой для доступа к удаленному компьютеру можно использовать командлет PowerShell
Get-SMBConnection
:

Get-SMBConnection вывести в powershell версии smb, исопльзуемые для подключения

Версия SMB, используемая для подключения к удаленному серверу (ServerName) указана в столбце Dialect.

Можно вывести информацию о версиях SMB, используемых для доступа к конкретному серверу:

Get-SmbConnection -ServerName servername

Если нужно отобразить, используется ли SMB шифрование (появилось в SMB 3.0), выполните:

Get-SmbConnection | ft ServerName,ShareName,Dialect,Encrypted,UserName

В Linux вывести список SMB подключения и используемые диалекты в samba можно командой:

$ sudo smbstatus

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

Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique

Get-SmbSession Получить количество клиентов, использующих разные версии SMB

В нашем примере имеется 825 клиентов, подключенных к серверу с помощью SMB 2.1 (Windows 7/Windows Server 2008 R2) и 12 клиентов SMB 3.02.

С помощью PowerShell можно включить аудит версий SMB, используемых для подключения:

Set-SmbServerConfiguration –AuditSmb1Access $true

События подключения затем можно извлечь из журналов Event Viewer с помощью PowerShell:

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

Об опасности использования SMBv1

Последние несколько лет Microsoft из соображений безопасности планомерно отключает устаревший протокол SMB 1.0. Связано это с большим количеством критических уязвимостей в этом протоколе (вспомните историю с эпидемиями вирусов-шифровальщиков wannacrypt и petya, которые использовали уязвимость именно в протоколе SMBv1). Microsoft и другие IT компании настоятельно рекомендуют отказаться от его использования.

Однако отключение SMBv1 может вызвать проблемы с доступом к общий файлам и папкам на новых версиях Windows 10 (Windows Server 2016/2019) с устаревших версий клиентов (Windows XP, Server 2003), сторонних ОС (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux), различных старых NAS устройствах.

Если в вашей сети не осталось legacy устройств с поддержкой только SMBv1, обязательно отключайте эту версию диалекта в Windows.

В том случае, если в вашей сети остались клиенты с Windows XP, Windows Server 2003 или другие устройства, которые поддерживают только SMBv1, их нужно как можно скорее обновить или тщательно изолировать.

Включение и отключение SMBv1, SMBv2 и SMBv3 в Windows

Рассмотрим способы включения, отключения различных версий SMB в Windows. Мы рассматриваем отдельно включение клиента и сервера SMB (это разные компоненты).

Windows 10, 8.1, Windows Server 2019/2016/2012R2:

Отключить клиент и сервер SMBv1:
Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Отключить только SMBv1 сервер:
Set-SmbServerConfiguration -EnableSMB1Protocol $false

Включить клиент и сервер SMBv1:
Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol

Включить только SMBv1 сервер:
Set-SmbServerConfiguration -EnableSMB1Protocol $true

Отключить сервер SMBv2 и SMBv3:
Set-SmbServerConfiguration -EnableSMB2Protocol $false

Включить сервер SMBv2 и SMBv3:
Set-SmbServerConfiguration -EnableSMB2Protocol $true

Set-SmbServerConfiguration - powershell отключить SMBv2 и SMBv3

Windows 7, Vista, Windows Server 2008 R2/2008:

Отключить SMBv1 сервер:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 –Force

отключить smbv1 сервер в windows 7 через powershell

Включить SMBv1 сервер:
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 –Force

Отключить SMBv1 клиент:

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

Включить SMBv1 клиент:

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

Отключить SMBv2 сервер:

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force

Включить SMBv2 сервер

Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB2 -Type DWORD -Value 1 –Force

Отключить SMBv2 клиент:

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

Включить SMBv2 клиент:

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

Для отключения сервера SMBv1 на всех компьютерах независимо от версии Windows можно распространить параметр реестра типа REG_DWORD с именем SMB1 и значением 0 (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters)на через GPO.

Для отключения SMBv2 нужно в этой же ветке установить параметр SMB2=0.

Для отключения SMBv1 клиента нужно распространить такой параметр реестра:

  • Key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\mrxsmb10
  • Name: Start
  • Type: REG_DWORD
  • Value: 4

При отключении SMB 1.0/CIFS File Sharing Support в Windows вы можете столкнуться с ошибкой “0x80070035, не найден сетевой путь”, ошибкой при доступе к общим папкам, и проблемами обнаружения компьютеров в сетевом окружении. В этом случае вместо служба обозревателя компьютеров (Computer Browser) нужно использовать службы обнаружения (линк).

В связи с недавной эпидемией шифровальщика WannaCry, эксплуатирующим уязвимость SMB v1, в сети снова появились советы по отключению этого протокола. Более того, Microsoft настоятельно рекомендовала отключить первую версию SMB еще в сентябре 2016 года. Но такое отключение может привести к неожиданным последствиям, вплоть до курьезов: лично сталкивался с компанией, где после борьбы с SMB перестали играть беспроводные колонки Sonos.

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

SMB (Server Message Block) – сетевой протокол для удаленного доступа к файлам и принтерам. Именно он используется при подключении ресурсов через \servername\sharename. Протокол изначально работал поверх NetBIOS, используя порты UDP 137, 138 и TCP 137, 139. С выходом Windows 2000 стал работать напрямую, используя порт TCP 445. SMB используется также для входа в домен Active Directory и работы в нем.

Помимо удаленного доступа к ресурсам протокол используется еще и для межпроцессорного взаимодействия через «именованные потоки» – named pipes. Обращение к процессу производится по пути \.\pipe\name.

Первая версия протокола, также известная как CIFS (Common Internet File System), была создана еще в 1980-х годах, а вот вторая версия появилась только с Windows Vista, в 2006. Третья версия протокола вышла с Windows 8. Параллельно с Microsoft протокол создавался и обновлялся в его открытой имплементации Samba.

В каждой новой версии протокола добавлялись разного рода улучшения, направленные на увеличение быстродействия, безопасности и поддержки новых функций. Но при этом оставалась поддержка старых протоколов для совместимости. Разумеется, в старых версиях было и есть достаточно уязвимостей, одной из которых и пользуется WannaCry.

Под спойлером вы найдете сводную таблицу изменений в версиях SMB.

Версия Операционная система Добавлено, по сравнению с предыдущей версией
SMB 2.0 Windows Vista/2008 Изменилось количество команд протокола со 100+ до 19
Возможность «конвейерной» работы – отправки дополнительных запросов до получения ответа на предыдущий
Поддержка символьных ссылок
Подпись сообщений HMAC SHA256 вместо MD5
Увеличение кэша и блоков записи\чтения
SMB 2.1 Windows 7/2008R2 Улучшение производительности
Поддержка большего значения MTU
Поддержка службы BranchCache – механизм, кэширующий запросы в глобальную сеть в локальной сети
SMB 3.0 Windows 8/2012 Возможность построения прозрачного отказоустойчивого кластера с распределением нагрузки
Поддержка прямого доступа к памяти (RDMA)
Управление посредством командлетов Powershell
Поддержка VSS
Подпись AES–CMAC
Шифрование AES–CCM
Возможность использовать сетевые папки для хранения виртуальных машин HyperV
Возможность использовать сетевые папки для хранения баз Microsoft SQL
SMB 3.02 Windows 8.1/2012R2 Улучшения безопасности и быстродействия
Автоматическая балансировка в кластере
SMB 3.1.1 Windows 10/2016 Поддержка шифрования AES–GCM
Проверка целостности до аутентификации с использованием хеша SHA512
Обязательные безопасные «переговоры» при работе с клиентами SMB 2.x и выше

Считаем условно пострадавших

Посмотреть используемую в текущий момент версию протокола довольно просто, используем для этого командлет Get–SmbConnection:

Вывод командлета при открытых сетевых ресурсах на серверах с разной версией Windows.

Из вывода видно, что клиент, поддерживающий все версии протокола, использует для подключения максимально возможную версию из поддерживаемых сервером. Разумеется, если клиент поддерживает только старую версию протокола, а на сервере она будет отключена – соединение установлено не будет. Включить или выключить поддержку старых версий в современных системах Windows можно при помощи командлета Set–SmbServerConfiguration, а посмотреть состояние так:

Get–SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol

Выключаем SMBv1 на сервере с Windows 2012 R2.

Результат при подключении с Windows 2003.

Таким образом, при отключении старого, уязвимого протокола можно лишиться работоспособности сети со старыми клиентами. При этом помимо Windows XP и 2003 SMB v1 используется и в ряде программных и аппаратных решений (например NAS на GNU\Linux, использующий старую версию samba).

Под спойлером приведу список производителей и продуктов, которые полностью или частично перестанут работать при отключении SMB v1.

Производитель Продукт Комментарий
Barracuda SSL VPN
Web Security Gateway backups
Canon Сканирование на сетевой ресурс
Cisco WSA/WSAv
WAAS Версии 5.0 и старше
F5 RDP client gateway
Microsoft Exchange Proxy
Forcepoint (Raytheon) «Некоторые продукты»
HPE ArcSight Legacy Unified Connector Старые версии
IBM NetServer Версия V7R2 и старше
QRadar Vulnerability Manager Версии 7.2.x и старше
Lexmark МФУ, сканирование на сетевой ресурс Прошивки Firmware eSF 2.x и eSF 3.x
Linux Kernel Клиент CIFS С 2.5.42 до 3.5.x
McAfee Web Gateway
Microsoft Windows XP/2003 и старше
MYOB Accountants
NetApp ONTAP Версии до 9.1
NetGear ReadyNAS
Oracle Solaris 11.3 и старше
Pulse Secure PCS 8.1R9/8.2R4 и старше
PPS 5.1R9/5.3R4 и старше
QNAP Все устройства хранения Прошивка старше 4.1
RedHat RHEL Версии до 7.2
Ricoh МФУ, сканирование на сетевой ресурс Кроме ряда моделей
RSA Authentication Manager Server
Samba Samba Старше 3.5
Sonos Беспроводные колонки
Sophos Sophos UTM
Sophos XG firewall
Sophos Web Appliance
SUSE SLES 11 и старше
Synology Diskstation Manager Только управление
Thomson Reuters CS Professional Suite
Tintri Tintri OS, Tintri Global Center
VMware Vcenter
ESXi Старше 6.0
Worldox GX3 DMS
Xerox МФУ, сканирование на сетевой ресурс Прошивки без ConnectKey Firmware

Список взят с сайта Microsoft, где он регулярно пополняется.

Перечень продуктов, использующих старую версию протокола, достаточно велик – перед отключением SMB v1 обязательно нужно подумать о последствиях.

Все-таки отключаем

Если программ и устройств, использующих SMB v1 в сети нет, то, конечно, старый протокол лучше отключить. При этом если выключение на SMB сервере Windows 8/2012 производится при помощи командлета Powershell, то для Windows 7/2008 понадобится правка реестра. Это можно сделать тоже при помощи Powershell:


Set–ItemProperty –Path "HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters" SMB1 –Type DWORD –Value 0 –Force

Или любым другим удобным способом. При этом для применения изменений понадобится перезагрузка.

Для отключения поддержки SMB v1 на клиенте достаточно остановить отвечающую за его работу службу и поправить зависимости службы lanmanworkstation. Это можно сделать следующими командами:

sc.exe config lanmanworkstation depend=bowser/mrxsmb20/nsi 

sc.exe config mrxsmb10 start=disabled

Для удобства отключения протокола по всей сети удобно использовать групповые политики, в частности Group Policy Preferences. С помощью них можно удобно работать с реестром.

Создание элемента реестра через групповые политики.

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

  • путь: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters;

  • новый параметр: REG_DWORD c именем SMB1;

  • значение: 0.

Создание параметра реестра для отключения SMB v1 на сервере через групповые политики.

Для отключения поддержки SMB v1 на клиентах понадобится изменить значение двух параметров.

Сначала отключим службу протокола SMB v1:

  • путь: HKLM:\SYSTEM\CurrentControlSet\services\mrxsmb10;

  • параметр: REG_DWORD c именем Start;

  • значение: 4.

Обновляем один из параметров.

Потом поправим зависимость службы LanmanWorkstation, чтоб она не зависела от SMB v1:

  • путь: HKLM:\SYSTEM\CurrentControlSet\Services\LanmanWorkstation;

  • параметр: REG_MULTI_SZ с именем DependOnService;

  • значение: три строки – Bowser, MRxSmb20 и NSI.

И заменяем другой.

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

Работает – не трогай

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

Расскажите, а вы уже отключили у себя SMB первой версии? Много было жертв?


Данный совет, применим исключительно для ОС Windows 10, Windows 7 и Windows 2008 R2. 

Чтобы полностью
удалить драйвер, обрабатывающий доступ клиентов по протоколу
SMB v1, выполните следующую команду через 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:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 0 -Force

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

Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 0 -Force

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

Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB1 -Type DWORD -Value 1 -Force

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

Set-ItemProperty -Path «HKLM:\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters» SMB2 -Type DWORD -Value 1 -Force

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

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

Внимание!
Обязательно соблюдайте пробел после знака равно (=). Для удобства, просто скопируйте и вставьте данные команды в командную строку.
Перед любыми изменениями в системе, создавайте резервные копии реестра, образ системы и создавайте контрольные точки восстановления.

Permanent link:

https://auditsquare.com/advisory/windows/how-to-disable-smb1

What is “SMB1”?

SMB or CIFS is usually used to refer to Microsoft Windows networking protocol, used for sharing files and printers and for IPC in Windows networks.

SMB1 is the particular version of this protocol; there are also newer versions, namely SMB2 and SMB3, supported
on Windows Vista/Windows Server 2008 and Windows 8/Windows Server 2012, respectively.

SMB1 is today generally considered insecure, and over the years quite a few very serious bugs and errors were reported for it. For this reason, it is advised to disable support for this SMB version whenever it is possible. Note however, that Microsoft Windows XP and Windows Server 2003 and older systems do not support newer SMB versions.

How to disable it?

Disabling server-side SMB1 via registry (Windows Vista, Windows Server 2008 and later)

  • Start regedit (as administrator)
  • Go to: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanServer\Parameters
  • Create a new DWORD value named SMB1 and set it to 0
  • Reboot for the change to take effect.
  • Note: changing value of SMB1 to 1 would re-enable the SMB1 support.

Disabling server-side SMB1 using powershell (Windows 8, Windows Server 2012 and later)

  • Run the command Set-SmbServerConfiguration -EnableSMB1Protocol $false in powershell prompt.
  • You do not have to restart the computer after you run the Set-SMBServerConfiguration cmdlet.

Completely removing SMB1 support (incl. client-side) via GUI (Windows 8.1, Windows Server 2012R2 and later)

  • On server: in Server Manager, go to Remove features and in the list, uncheck SMB 1.0/CIFS File Sharing Support.
  • On client: go to Control Panel, Add or Remove Programs, Turn Windows features on or off, and uncheck SMB 1.0/CIFS File Sharing Support in the list
  • Note: this method disables also client support for SMB1; though it is highly advisable from the security point of view, it may lead to operational problems when client access to legacy systems is required.

Windows XP / 2000 / 2003

  • Unfortunately the only option here is to completely disable LanmanServer service (which disables sharing of files and printers).

  • Как отключить smartscreen защитник windows 10
  • Как отключить searchapp exe windows 10
  • Как отключить search app windows 10
  • Как отключить smartscreen в windows 10 полностью
  • Как отключить win tab на windows 10