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

По-умолчанию в Windows Server 2016/2019 и Windows 10 (начиная с билда 1709) отключена поддержка сетевого протокола для общего доступа к файлам в сетевых папках

По-умолчанию в 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 в Windows Server 2016/2019
  • Включить/отключить SMB 1.0 в Windows 10
  • Отключение SMBv1 с помощью групповых политик

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

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

Set-SmbServerConfiguration –AuditSmb1Access $true

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

Вам нужно найти в сети этот компьютер или устройство, при необходимости обновить ОС или прошивку, до версии поддерживающий, более новые протоколы 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).

Также при отключении клиента 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:
    SYSTEMCurrentControlSetServicesLanmanServerParameters

    Value name:
    SMB1

    Value type:
    REG_DWORD

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

    Если в вашем домене остались компьютеры с Windows XP/Server 2003, можно использовать отдельный WMI фильтр политики, чтобы исключить эти версии Windows из-под действия политики.

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

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

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

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

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

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

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

In Windows Server 2016/2019 and Windows 10 (starting with build 1709), the Server Message Block 1.0 (SMBv1) network protocol used to access shared folders is disabled by default. In most cases, this protocol is required to access shared folders hosted on legacy systems, such as no longer supported Windows XP, Windows Server 2003 and older OSs. In this article, we’ll look on how to enable or disable SMBv1 client and server support on Windows 10 and Windows Server 2016/2019.

If there are no SMB 1.x clients left on your network, you must completely disable SMBv1 on all Windows devices. By disabling SMB 1.0, you can protect Windows computers from a wide range of vulnerabilities in this legacy protocol (the most famous public exploit for SMBv1 is EternalBlue). As a result, your devices will use new, more efficient, secure and functional versions of the SMB protocol when accessing network shares.

In one of the previous articles, we showed the table of client- and server-side SMB version compatibility. According to the table, old client versions (XP, Server 2003 and some *nix clients) can access network shared folders only using SMB v1.0 protocol. If there are no such clients in the network, you can completely disable SMB 1.0 on the side of file servers (including AD domain controllers) and client desktops.

In Windows 10 and Windows Server 2016, the SMBv1 protocol is split into two separate components – SMB client and SMB server, which can be enabled/disabled independently.

Contents:

  • Auditing Shared Folder Access via SMB v1.0
  • Enable/Disable SMB 1.0 on Windows Server 2016/2019
  • How to Enable/Disable SMBv1 on Windows 10?
  • Disabling SMBv1 Client and Server via Group Policy

Auditing Shared Folder Access via SMB v1.0

Before disabling or completely removing SMB 1.0 driver on the side of the SMB file server, it’s worth making sure that there are no legacy clients that use it in your network. To do this, enable the audit of file server access over SMB v1.0 using the following PowerShell command:

Set-SmbServerConfiguration –AuditSmb1Access $true

After a couple of days, open the Event Viewer on the server, check the log Applications and Services -> Microsoft -> Windows -> SMBServer -> Audit and see if any clients accessed the file server over SMB1.

Tip. You can display the list of events from this event log using the following PowerShell command:
Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

In our example, an event with EventID 3000 from the SMBServer source was found in the log. The event indicates that the client 192.168.1.10 is trying to access the server using the SMB1 protocol.

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.

Set-SmbServerConfiguration - enable audit access via smb1

You need to find this computer or device on the network and update the OS or firmware to a version that supports newer SMB protocol versions: SMBv2 or SMBv3.

In our case we’ll ignore this information, but you should bear in mind that later this client won’t be able to access shared folders on this SMB server.

Enable/Disable SMB 1.0 on Windows Server 2016/2019

In Windows Server 2016 starting with build 1709 and Windows Server 2019, SMBv1 is disabled by default. To enable support for the SMBv1 client protocol in newer versions of Windows Server, you need to install the separate SMB 1.0/CIFS File Sharing Support feature.

You can install the SMBv1 feature using Server Manager, or through PowerShell.

SMB 1.0 / CIFS File Sharing Support feature on windows server 2016

You can check that SMBv1 is enabled with the PowerShell command:

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

To install the FS-SMB1 feature, run:

Install-WindowsFeature FS-SMB1

To uninstall the SMBv1 client feature (requires a reboot), run the command:

Uninstall-WindowsFeature –Name FS-SMB1 –Remove

Another PowerShell command that also removes the SMB1Protocol feature:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

In order for your server to handle SMBv1.0 client access, you need to enable SMBv1 support at the SMB file server level in addition to the FS-SMB1 component. To check if SMBv1 access is enabled for network shares on your server, run:

Get-SmbServerConfiguration

Get-SmbServerConfiguration smb1protocol is enabled

The line “EnableSMB1Protocol: True” means that you are allowed to access shared folders on this server using the SMBv1 protocol. To disable SMBv1 server support in Windows Server, run the PowerShell command:

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

Now use the Get-SmbServerConfiguration cmdlet to make sure SMB1 server is disabled.

disable smb1 using cmdlet set-SmbServerConfiguration

To enable SMBv1 support on the server, run the command:

Set-SmbServerConfiguration -EnableSMB1Protocol $True -Force

On Windows 7/8 and Windows Server 2008 R2/2012, in order to disable the SMB 1.0 client, you need to disable the service and the SMBv1 access driver with the commands:

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

delete smb1 driver on client: sc.exe config mrxsmb10 start= disabled

How to Enable/Disable SMBv1 on Windows 10?

As we already said, in all new builds of Windows10  (starting from 1709) support for the SMB1 protocol is disabled (guest access via the SMBv2 protocol is also disabled).

In Windows 10, you can check the status of the SMBv1 protocol components with the DISM command:

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

smb1protocol disabled in windows10

In our example, you can see that all SMBv1 features are disabled:

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

In Windows 10, you can also manage SMB 1 features from the Control Panel (optionalfeatures.exe). Expand the SMB 1.0 /CIFS File Sharing Support option. As you can see, 3 SMBv1 components are also available here:

  • SMB 1.0/CIFS Automatic Removal
  • SMB 1.0/CIFS Client
  • SMB 1.0/CIFS Server

Windows10 feature SMB 1.0/CIFS File Sharing Support

You can enable SMBv1 client and server on Windows 10 from the feature management window or using the commands:

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

You can also enable SMBv1 server and client in Windows 10 using PowerShell:

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

If after enabling SMBv1 client, it is not used for more than 15 days, it is automatically disabled.

Automatic removal of SMBv1 client is a one-time operation. If the administrator manually enables SMBv1 again, it won’t be disabled automatically.

To disable SMB1 client and server support in Windows 10, run the following DISM commands:

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

If you disabled the SMBv1 client in Windows 10, then when you access a snared folder on a file server that only supports SMBv1 (the SMBv2 and v3 protocols are disabled or not supported), you may receive the following errors:

  • 0x80070035 The network path was not found;
  • 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;
  • 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.

    windows10 smb 1.0 access error

Additionally, if you disable the SMBv1 client, the Computer Browser service, which is used by the legacy NetBIOS protocol to discover devices on the network, stops working on the computer. To correctly display neighboring computers on the Windows 10 network, you must configure the Feature Discovery Provider Host service (check this article).

Disabling SMBv1 Client and Server via Group Policy

In an Active Directory domain environment, you can disable SMBv1 on all servers and computers using Group Policies (GPOs). Since there is no separate SMB configuration policy in the standard Windows Group Policies, you will have to disable it through the registry policy.

  1. Open the Group Policy Management console (gpmc.msc), create a new GPO (disableSMBv1) and link it to the OU containing the computers on which you want to disable SMB1;
  2. Switch to the policy editing mode. Expand the GPO section Computer Configuration -> Preferences -> Windows Settings -> Registry;
  3. Create a new Registry Item with the following setting:
    Action: Update
    Hive: HKEY_LOCAL_MACHINE
    Key Path: SYSTEMCurrentControlSetServicesLanmanServerParameters
    Value name: SMB1
    Value type: REG_DWORD
    Value data: 0
    smb1 server disable via gpo
    This policy will disable support for the SMBv1 server component through the registry on all computers.

    You can exclude some version of Windows from this policy using the WMI filter.

If you want to disable the SMB client on domain computers via GPO, create two additional registry parameters:

  • The Start parameter (REG_DWORD type) with value 4 in the registry key HKLMSYSTEMCurrentControlSetservicesmrxsmb10;
  • The DependOnService parameter (REG_MULTI_SZ type) with the value Bowser, MRxSmb20, NSI (each value on a new line) in the reg key HKLMSYSTEMCurrentControlSetServicesLanmanWorkstation.

disable smb v1.0 client driver group policy

It remains to update the Group Policy settings on the clients (gpupdate /force) after the reboot make sure that the SMBv1 components are completely disabled.

The Security Baseline GPOs from the Microsoft Security Compliance Toolkit have a separate administrative template MS Security Guide (SecGuide.adml and SecGuide.admx files) that have separate options for disabling the SMB server and client:

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

ms security guide gpo: disable smbv1 client driver and server

title description author manager ms.topic ms.author ms.date ms.custom

How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows

Describes how to enable and disable the Server Message Block protocol (SMBv1, SMBv2, and SMBv3) in Windows client and server environments.

Deland-Han

dcscontentpm

how-to

delhan

12/12/2022

contperf-fy21q2

How to detect, enable and disable SMBv1, SMBv2, and SMBv3 in Windows

Applies to: Windows Server 2022, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows 11, Windows 10, Windows 8.1, Windows 8

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.

While disabling or removing SMBv1 might cause some compatibility issues with old computers or software, SMBv1 has significant security vulnerabilities, and we strongly encourage you not to use it.

Disabling SMBv2 or SMBv3 for troubleshooting

We recommend keeping SMBv2 and SMBv3 enabled, but you might find it useful to disable one temporarily for troubleshooting. For more information, see How to detect status, enable, and disable SMB protocols on the SMB Server.

In Windows 10, Windows 8.1, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, and Windows Server 2012, disabling SMBv3 deactivates the following functionality:

  • 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 high performance, with low latency and low CPU use
  • 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

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

  • Request compounding — allows for sending multiple SMBv2 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’s 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 Gigabit Ethernet (GbE)
  • Improved energy efficiency — clients that have open files to a server can sleep

The SMBv2 protocol was introduced in Windows Vista and Windows Server 2008, while the SMBv3 protocol was introduced in Windows 8 and Windows Server 2012. For more information about SMBv2 and SMBv3 capabilities, see the following articles:

  • Server Message Block overview
  • What’s New in SMB

How to remove SMBv1 via PowerShell

Here are the steps to detect, disable and enable SMBv1 client and server by using PowerShell commands with elevation.

[!NOTE]
The computer will restart after you run the PowerShell commands to disable or enable SMBv1.

  • Detect:

    Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
  • Disable:

    Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
  • Enable:

    Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol

[!TIP]
You can detect SMBv1 status, without elevation, by running: Get-SmbServerConfiguration | Format-List EnableSMB1Protocol.

Windows Server 2012 Windows Server 2012 R2, Windows Server 2016, Windows Server 2019: Server Manager method

Server Manager - Dashboard method

To remove SMBv1 from Windows Server:

  1. On the Server Manager Dashboard of the server where you want to remove SMBv1, under Configure this local server, select Add roles and features.
  2. On the Before you begin page, select Start the Remove Roles and Features Wizard, and then on the following page, select Next.
  3. On the Select destination server page under Server Pool, ensure that the server you want to remove the feature from is selected, and then select Next.
  4. On the Remove server roles page, select Next.
  5. On the Remove features page, clear the check box for SMB 1.0/CIFS File Sharing Support and select Next.
  6. On the Confirm removal selections page, confirm that the feature is listed, and then select Remove.

Windows 8.1, Windows 10, and Windows 11: Add or Remove Programs method

Add-Remove Programs client method

To disable SMBv1 for the mentioned operating systems:

  1. In Control Panel, select Programs and Features.
  2. Under Control Panel Home, select Turn Windows features on or off to open the Windows Features box.
  3. In the Windows Features box, scroll down the list, clear the check box for SMB 1.0/CIFS File Sharing Support and select OK.
  4. After Windows applies the change, on the confirmation page, select Restart now.

How to detect status, enable, and disable SMB protocols

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

Server

Windows 8 and Windows Server 2012 introduced 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.

You don’t have to restart the computer after you run the Set-SMBServerConfiguration cmdlet.

SMBv1

  • Detect:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol
  • Disable:

    Set-SmbServerConfiguration -EnableSMB1Protocol $false
  • Enable:

    Set-SmbServerConfiguration -EnableSMB1Protocol $true

For more information, see Server storage at Microsoft.

SMB v2/v3

  • Detect:

    Get-SmbServerConfiguration | Select EnableSMB2Protocol
  • Disable:

    Set-SmbServerConfiguration -EnableSMB2Protocol $false
  • Enable:

    Set-SmbServerConfiguration -EnableSMB2Protocol $true

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

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

Additional PowerShell methods

[!NOTE]
This method requires PowerShell 2.0 or later.

SMBv1 on SMB Server

Detect:

Get-Item HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}

Default configuration = Enabled (No registry named value is created), so no SMB1 value will be returned

Disable:

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

Enable:

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

Note You must restart the computer after you make these changes.
For more information, see Server storage at Microsoft.

SMBv2/v3 on SMB Server

Detect:

Get-ItemProperty HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}

Disable:

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

Enable:

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

[!NOTE]
You must restart the computer after you make these changes.

Registry Editor

[!IMPORTANT]
Follow the steps in this section carefully. Serious problems might occur if you modify the registry incorrectly. Before you modify it, back up the registry for restoration in case problems occur.

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

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters

Registry entry: SMB1
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

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

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters

Registry entry: SMB2
REG_DWORD: 0 = Disabled
REG_DWORD: 1 = Enabled
Default: 1 = Enabled (No registry key is created)

[!NOTE]
 You must restart the computer after you make these changes.

Client

Here is how to detect status, enable, and disable SMB protocols on the SMB Client that is running Windows 10, Windows Server 2019, Windows 8.1, Windows Server 2016, Windows Server 2012 R2, and Windows Server 2012.

SMBv1 on SMB Client

  • Detect

    sc.exe qc lanmanworkstation
  • Disable:

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

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

For more information, see Server storage at Microsoft

SMB v2/v3 on SMB Client

  • Detect:

    sc.exe qc lanmanworkstation
  • Disable:

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

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

[!NOTE]

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

Disable SMBv1 by using Group Policy

This section introduces how to use Group Policy to disable SMBv1. You can use this method on different versions of Windows.

Server

SMBv1

This procedure configures the following new item in the registry:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters

  • Registry entry: SMB1
  • REG_DWORD: 0 = Disabled

To use Group Policy to configure this, follow these steps:

  1. Open the Group Policy Management Console. Right-click the Group Policy object (GPO) that should contain the new preference item, and then click Edit.

  2. In the console tree under Computer Configuration, expand the Preferences folder, and then expand the Windows Settings folder.

  3. Right-click the Registry node, point to New, and select Registry Item.

    Registry - New - Registry Item

In the New Registry Properties dialog box, select the following:

  • Action: Create
  • Hive: HKEY_LOCAL_MACHINE
  • Key Path: SYSTEMCurrentControlSetServicesLanmanServerParameters
  • Value name: SMB1
  • Value type: REG_DWORD
  • Value data: 0

New Registry Properties - General

This procedure disables the SMBv1 Server components. This Group Policy must be applied to all necessary workstations, servers, and domain controllers in the domain.

[!NOTE]
 WMI filters can also be set to exclude unsupported operating systems or selected exclusions, such as Windows XP.

[!IMPORTANT]
Be careful when you make these changes on domain controllers on which legacy Windows XP or older Linux and third-party systems (that don’t support SMBv2 or SMBv3) require access to SYSVOL or other file shares where SMB v1 is being disabled.

Client

SMB v1

To disable the SMBv1 client, the services registry key needs to be updated to disable the start of MRxSMB10, and then the dependency on MRxSMB10 needs to be removed from the entry for LanmanWorkstation so that it can start normally without requiring MRxSMB10 to first start.

This guidance updates and replaces the default values in the following two items in the registry:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetservicesmrxsmb10

Registry entry: Start REG_DWORD: 4= Disabled

HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanWorkstation

Registry entry: DependOnService REG_MULTI_SZ: «Bowser»,»MRxSmb20″,»NSI»

[!NOTE]
 The default included MRxSMB10 which is now removed as dependency.

To configure this by using Group Policy, follow these steps:

  1. Open the Group Policy Management Console. Right-click the GPO that should contain the new preference item, and then click Edit.

  2. In the console tree under Computer Configuration, expand the Preferences folder, and then expand the Windows Settings folder.

  3. Right-click the Registry node, point to New, and select Registry Item.

  4. In the New Registry Properties dialog box, select the following:

    • Action: Update
    • Hive: HKEY_LOCAL_MACHINE
    • Key Path: SYSTEMCurrentControlSetservicesmrxsmb10
    • Value name: Start
    • Value type: REG_DWORD
    • Value data: 4

    Start Properties - General

  5. Then remove the dependency on the MRxSMB10 that was disabled.

    In the New Registry Properties dialog box, select the following:

    • Action: Replace
    • Hive: HKEY_LOCAL_MACHINE
    • Key Path: SYSTEMCurrentControlSetServicesLanmanWorkstation
    • Value name: DependOnService
    • Value type: REG_MULTI_SZ
    • Value data:
      • Bowser
      • MRxSmb20
      • NSI

    [!NOTE]
    These three strings will not have bullets (see the following screen shot).

    DependOnService Properties

    The default value includes MRxSMB10 in many versions of Windows, so by replacing them with this multi-value string, it is in effect removing MRxSMB10 as a dependency for LanmanWorkstation and going from four default values down to just these three values above.

    [!NOTE]
    When you use Group Policy Management Console, you don’t have to use quotation marks or commas. Just type each entry on individual lines.

  6. Restart the targeted systems to finish disabling SMB v1.


Auditing SMBv1 usage

To determine which clients are attempting to connect to an SMB server with SMBv1, you can enable auditing on Windows Server 2016, Windows 10, and Windows Server 2019. You can also audit on Windows 7 and Windows Server 2008 R2 if the May 2018 monthly update is installed, and on Windows 8.1 and Windows Server 2012 R2 if the July 2017 monthly update is installed.

  • Enable:

    Set-SmbServerConfiguration -AuditSmb1Access $true
  • Disable:

    Set-SmbServerConfiguration -AuditSmb1Access $false
  • Detect:

    Get-SmbServerConfiguration | Select AuditSmb1Access

When SMBv1 auditing is enabled, event 3000 appears in the «Microsoft-Windows-SMBServerAudit» event log, identifying each client that attempts to connect with SMBv1.

Summary

If all the settings are in the same GPO, Group Policy Management displays the following settings.

Group Policy Management Editor - Registry

Testing and validation

After completing the configuration steps in this article, allow the policy to replicate and update. As necessary for testing, run gpupdate /force at a command prompt, and then review the target computers to make sure that the registry settings are applied correctly. Make sure SMBv2 and SMBv3 are functioning for all other systems in the environment.

[!NOTE]
Don’t forget to restart the target systems.

By default SMB version 1.0 is enabled in Windows Server 2016. As this was last needed in Windows XP and Windows Server 2003 it’s quite old, newer versions of SMB are more secure and have additional features. If you no longer need to support these older versions of SMB file shares, it’s a good idea to disable SMB version 1.0, or even remove it completely, as a number of recent vulnerabilities specifically affect SMB version 1.

Windows Server 2003 was the last supported version of Windows to only use SMB version 1, now that it’s no longer supported Microsoft are planning on shipping Windows with SMB 1 disabled by default. It’s currently enabled by default for compatibility reasons, however when we’re in a world where SMB 1 does not need to be supported it will not be used.

Just recently in March 2017 Microsoft patched a remote code execution vulnerability in SMBv1.


This post is part of our Microsoft 70-744 Securing Windows Server 2016 exam study guide series. For more related posts and information check out our full 70-744 study guide.


Audit SMB v1 Traffic

Before disabling or removing SMB v1, it’s worth checking if our network is actively using it, as turning it off could cause problems if it’s actually required.

We can audit SMB v1.0 traffic in our network to see if it’s still being used by running the following PowerShell cmdlet.

Set-SmbServerConfiguration –AuditSmb1Access $true

We can view this log by running the following PowerShell cmdlet.

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

You can also open event viewer and browse to Applications and Services > Microsoft > Windows > SMBServer > Audit. This is a good way of determining whether SMB 1 is still in use within your network before disabling it.

Disable SMB Version 1.0 Server Configuration

SMB can be disabled both on the server and client side. We’ll first start off by showing you how to disable SMB version 1.0 on the server side (the system that offers SMB shares). Open PowerShell with administrative privileges. If we run the ‘Get-SmbServerConfiguration’ cmdlet, we can see that by default EnableSMB1Protocol is set to True, as shown below.

PowerShell Get-SmbServerConfiguration EnableSMB1Protocol

Note that if you set AuditSmb1Access as shown previously that this value also shows in this output.

We can change this with the ‘Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force’ cmdlet, as shown below.

PowerShell Set-SmbServerConfiguration EnableSMB1Protocol

We add -Force on the end otherwise we get prompted for confirmation, this allows us to simply run one command with no input required.

Now if we run the ‘Get-SmbServerConfiguration’ cmdlet again, we can see that EnableSMB1Protocol is now showing as False.

PowerShell Get-SmbServerConfiguration EnableSMB1Protocol False

Remove SMB v1

We can go a step further, and instead remove SMB version 1 from the server with the following PowerShell cmdlet.

Remove-WindowsFeature FS-SMB1

Note that this will require a system restart to complete.

PowerShell Remove-WindowsFeature FS-SMB1

This is a good step to do after you’ve had SMB 1.0 disabled for a while and are sure it’s not required.

Disable SMB version 1.0 Client Configuration

By disabling the server configuration as shown above, our server will no longer offer SMB v1 shares. The SMB client however is still able to connect to an external SMB v1 share on another server, unless we also disable the SMB v1 client. This is done by running the following commands.

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

Disable SMB 1.0 Client

Summary

With these steps you have now seen how to disable SMB version 1.0 in Windows Server 2016 on both the server and client side using Windows PowerShell.


Для Windows 8 и Windows Server 2012

В Windows 8 и Windows Server 2012 появился новый командлет Windows PowerShell Set-SMBServerConfiguration. Он позволяет включать или отключать протоколы SMB версии 1, 2 и 3 на сервере.


Примечания. При включении или отключении протокола SMB версии 2 в Windows 8 или Windows Server 2012 также происходит включение или отключение протокола SMB версии 3. Это связано с использованием общего стека для этих протоколов.


После выполнения командлета Set-SMBServerConfiguration перезагрузка компьютера не требуется.

SMB версии 1 на SMB-сервере
Обнаружение: Get-SmbServerConfiguration | Select EnableSMB1Protocol
Отключение: Set-SmbServerConfiguration -EnableSMB1Protocol $false
Включение: Set-SmbServerConfiguration -EnableSMB1Protocol $true
SMB версий 2 и 3 на SMB-сервере
Обнаружение: 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

SMB версии 1 на SMB-сервере

Обнаружение:

Get-Item HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}

Конфигурация по умолчанию = Enabled (раздел реестра не создается), значение SMB1 не возвращается

Отключение:

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

Включение:

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

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


SMB версий 2 и 3 на SMB-сервере

Обнаружение:

Get-ItemProperty HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty $_.pspath}

Отключение:

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

Включение:

Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB2 -Type DWORD -Value 1 –Force

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


Редактор реестра

Внимание! В статье содержатся сведения об изменении реестра. Перед внесением изменений рекомендуется создать резервную копию реестра. и изучить процедуру его восстановления на случай возникновения проблемы. Дополнительные сведения о создании резервной копии, восстановлении и изменении реестра см. в указанной ниже статье базы знаний Майкрософт.

322756 Как создать резервную копию и восстановить реестр в Windows

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

Подраздел реестра: HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
Запись реестра: SMB1
REG_DWORD: 0 = отключено
REG_DWORD: 1 = включено
По умолчанию: 1 = включен (не создан раздел реестра)

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

Подраздел реестра:HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesLanmanServerParameters
Запись реестра: SMB2
REG_DWORD: 0 = отключено
REG_DWORD: 1 = включено
По умолчанию: 1 = включен (не создан раздел реестра)

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

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

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

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

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

Первая версия протокола, также известная как 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 на GNULinux, использующий старую версию 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:SYSTEMCurrentControlSetServicesLanmanServerParameters" 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:SYSTEMCurrentControlSetServicesLanmanServerParameters;

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

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

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

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

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

  • путь: HKLM:SYSTEMCurrentControlSetservicesmrxsmb10;

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

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

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

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

  • путь: HKLM:SYSTEMCurrentControlSetServicesLanmanWorkstation;

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

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

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

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

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

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

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

Обновлено 25.11.2022

протокол smb v1

Добрый день уважаемые читатели, в прошлый раз я вам подробно рассказал, как защититься от шифровальщика, если он уже попал к вам на компьютер, сегодня же я хочу рассмотреть вопрос, как не дать ему к вам попасть из вне, мы разберем отключение smb v1 или как защититься от wannacrypt и вируса petya. Уверен, что описанный тут материал окажется для вас весьма полезным и актуальным, так как разновидностей данной заразы, будет еще очень много в будущем.

Что такое протокол SMB v1

Прежде, чем начать перекрывать кислород для вирусов шифровальщиков, я хочу вас познакомить с источником, через который они лезут и называется он протокол Server Message Block (SMB).

Server Message Block — это сетевой протокол, работающий на прикладном уровне модели OSI, для доступа к сетевым ресурсам, принтерам, папкам, для взаимодействия процессов. Наверняка многие из вас знают, такое понятие как UNC пути, вида \servershare, когда вы обращаетесь к сетевой папке или принтеру, так например, сервер печати Windows, расшаривает их.

Ранее SMB протокол работал и NetBIOS прослойкой, где использовал порты UDP 137-138 и TCP 137, 139, но это было до появления 2000-го Windows, где порт поменяли на 445, он так же применяется и для входа компьютеров в домен Active Directory. Самая первая версию данного протокола, имела название «Common Internet File System» (CIFS ), ее придумали еще в далеких 90-х, я тогда еще пешком под стол ходил. Протокол долго не развивался и приобрел вторую версию, лишь в 2006 году с выходом провальной Windows Vista. Windows 8 уже принесла нам SMB 3.0.

Каждая новая версия реализации протокола, привносила новые возможности, и это логично, необходимо было увеличивать скорость передачи данных, так как локальные сети, уже превращались в гигабитные и очень часто стали появляться твердотельные накопители. Новые версии по старинке, поддерживали предыдущие, для обратной совместимости операционных систем и устройств, это и является Ахиллесовой пятой у него, через который лезут wannacrypt и petya.

Ниже вы можете посмотреть, эволюцию протокола SMB v1 с выходом новых операционных систем.

описание протокола smb v1

Для чего отключать smb v1

Расскажу небольшую предысторию о появлении вирусов wannacrypt и petya. В начале 2017 года, одна хакерская команда, смогла взломать службу АНБ и похитить у нее данные, о всевозможных лазейках в компьютерных системах, благодаря которым можно получать удаленный доступ к нужному компьютеру и следить за жертвой, получая о ней все данные. Среди этих дыр безопасности, были лазейки для:

  • Vmware ESXI 5 и выше
  • Microsoft Windows XP и выше
  • Linux системы
  • Сетевое оборудование

Хакеры попытались продать все сворованное, но в итоге покупателей не нашли, не долго думая они выложили все это в сеть, тут и понеслось, другие хакеры и группы, быстро все это дело понахватали и создали свои вирусы, их очень много, но вот за май и июнь 2017 года, мир выучил названия двух, petya и wannacry (wannacrypt). Оба они используют старую уязвимость в протоколе smb v1, являющийся частью операционных систем Windos XP, вплоть до Windows 10, но у десятки все лучше, там по умолчанию работает версия SMB 3.1.1, поэтому она пока спит спокойно.

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

экран блокировки petya

А вот как выглядит экран после заражения wannacrypt. Как и в случае с Петей, все данные зашифрованы и уже являются цифровым мусором.

экран wannacrypt

Что нужно чтобы не стать жертвой шифровальщиков

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

  1. Своевременно устанавливайте обновления в системе, так как это основная проблема большинства пораженных компьютеров
  2. Не устанавливайте не проверенный софт
  3. Посещайте только проверенные веб ресурсы
  4. Закройте лишние порты на фаэрволе
  5. Не открывайте электронные письма от неизвестных людей.

Как проверить можно ли заразить ваш компьютер

Как я и писал выше, жертвами становятся те компьютеры у кого работает протокол smb v1, который требует отключения. Ниже я вам предоставлю утилиту, с помощью которой вы сможете проверить удовлетворяет ли ваш или другой компьютер в сети, требованиям по безопасности.

KB обновления защищающие от wannacrypt  и Petya

Вот подробный список KB для разных операционных систем Windows:

Windows XP

  • https://blogs.technet.microsoft.com/msrc/2017/05/12/customer-guidance-for-wannacrypt-attacks/

Windows Vista и Windows Server 2008

  • KB4012598 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012598
  • KB4012598 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012598

Windows 7

  • KB4012212 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012212
  • KB4012215 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012215
  • KB4012212 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012212
  • KB4012215 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012215

Windows Server 2008 R2

  • KB4012212 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012212
  • KB4012215 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012215

Windows 8.1

  • KB4012213 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012213
  • KB4012216 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012216
  • KB4012213 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012213
  • KB4012216 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012216

Windows Server 2012 R2

  • KB4012214 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012214
  • KB4012217 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012217
  • KB4012213 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012213
  • KB4012216 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012216

Windows 10

  • KB4012606 -32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012606
  • KB4012606 -64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4012606
  • Windows 10 1511 — KB4013198 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4013198
  • Windows 10 1511 — KB4013198 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4013198
  • Windows 10 1607 — KB4013429 — 32 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4013429
  • Windows 10 1607 — KB4013429 — 64 бита — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4013429

Windows Server 2016

  • KB4013429 — http://catalog.update.microsoft.com/v7/site/Search.aspx?q=KB4013429

Теперь зная нужные KB мы легко можем проверить, где не хватает обновлений и включен протокол smb v1. Ниже я вам предоставлю два метода поиска бреши.

  • Утилита SecurityChecker.v2
  • Power shell

Утилита SecurityChecker.v2

Данная утилита может показать, где включен smb v1 и 2.0, а так же проверить компьютер или компьютеры локальной сети на наличие нужного обновления.

В открывшейся программе, вам необходимо нажать кнопку «Add» и добавить компьютер или компьютеры, требующие проверки. Через кнопку KB вы можете подгрузить файл находящийся в корне утилиты с нужными KB для проверки, после чего нажимаете «Check». По результату проверки, вы увидите, стоит ли вам выполнить отключение smb v1 или же нет. На моем примере, вы видите, что и первая и вторая версии включены.

Проверка SecurityChecker.v2

Проверить протокол smb v1 можно и через powershell. Открываем его от имени администратора и вводим такую команду:

get-hotfix -ComputerName имя вашего компьютера -Id нужная kb

powershell проверка smb v1

Если у вас есть UNC соединения к вашему компьютеру, то вы можете посмотреть их версии командой

Get-SmbConnection

Как отключить smb v1

Я вам хочу рассказать о методах деактивирующих протокол SMB старой версии:

  • Через компоненты Windows
  • Через PowerShell
  • Через реестр Windows
  • Через групповую политику
  • Оставить и установить обновления
  • Через команду sc.exe config

Отключаем smb v1 через компоненты системы

Данный метод подойдет для любой не серверной версии Windows, начиная с Wista и заканчивая Windows 10.Вам необходимо открыть панель управления Windows. Нажимаете одновременно Win+R и в открывшемся окне вводите control panel, это такой универсальный метод, отработает в любой винде.

универсальный метод открыть панель управления

Находим пункт «Программы и компоненты»

программы и компоненты

Нажимаем «Включение и отключение компонентов Windows» именно тут, мы уберем доступ для wannacrypt  и petya

wannacrypt защита

Снимаем галку «Поддержка общего доступа к файлам SMB 1.0/CIFS»

выключаем smb v1 CIFS

Начнется удаление компонента.

как защитить компьютер от вируса petya

Все, теперь потребуется перезагрузка.

удалили smb v1 CIFS

Теперь если со старого компьютера, по типу Windpws XP вы попытаетесь попасть на UNC шару, вы увидите ошибку

сетевое имя более не доступно

Если же вам необходимо сохранить его функциональность и быть защищенным, то устанавливаем нужные KB.

Установка KB против wannacrypt и petya

Выше вы найдете список исправлений для протокола smb v1, скачиваете их из центра обновлений.Это будут файлы формата msu.

скачивание обновлений для защиты от wannacrypt

Производите установку KB.

установка KB4012212

Вот так выглядит процесс установки KB.

процесс установки KB

Вам потребуется произвести перезагрузку системы. теперь, когда все обновления у вас установлены вам не страшны вирусы wannacrypt  и petya.

сообщение о перезагрузке

Отключаем smb v1 через powershell

Данный метод подойдет для серверной операционной системы Windows Server 2012 R2 и Windos 8.1, выполните вот такую команду:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

После ее выполнения smb v1 будет выключен.

powershell выключение smb v1

Для отключения 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 v1 через реестр

Перед тем как править реестр Windows я советую вам сделать резервную копию, так на всякий случай. Открываем реестр, делается это через нажатие кнопок Win+R и ввода команды regedit.

открываем реестр Windows

Находим ветку:

HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesLanmanServerParameters

Тут будет параметр SMB1 , по умолчанию там стоит 1, значит включено, меняем его на 0 и закрываем, после перезагрузки все будет выключено. Wannacrypt вас теперь не побеспокоит.

отключаем smb v1 через реестр

Если нужно отключить SMB2, то находим ветку и меняем там параметр SMB2, так же на ноль.

HKEY_LOCAL_MACHINESYSTEMCurrentControlSet ServicesLanmanServerParameters

Отключить через DISM

Откройте командную стоку от имени администратора и введите команду:

dism /online /norestart /disable-feature /featurename:SMB1Protocol

Как видите еще один метод защититься от wannacrypt.

как защититься от wannacrypt

Отключение через sc.exe config

Начиная с Windows 7 вы можете выполнить внутри системы вот такие команды через cmd запущенного от имени администратора:

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

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

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

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

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

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

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

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

sc.exe config

Как защититься от wannacrypt в Active Directory

Когда речь идет о домене Active Directory, то у системного администратора сразу это ассоциируется с групповыми политиками. Давайте посмотрим как GPO поможет нам в массовом отключении smb v1. По сути групповая политика это изменение ключей реестра на клиентах. Открываем редактор и создаем новую политику, прилинковываем ее к нужному организационному подразделению и изменяем.

Политика для серверных ОС

Нас будет интересовать объект «Конфигурация компьютера — Настройка — Конфигурация Windows — Реестр», создаем элемент реестра.

Как защититься от wannacrypt в Active Directory

  • Действие: Создать
  • Куст: HKEY_LOCAL_MACHINE
  • Путь к разделу: SYSTEMCurrentControlSetServicesLanmanServerParameters
  • Имя параметра: SMB1
  • Тип значения: REG_DWORD.
  • Значение: 0

создаем элемент реестра

Политика для клиентских ОС

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

  • путь: HKLM:SYSTEMCurrentControlSetservicesmrxsmb10;
  • параметр: REG_DWORD c именем Start;
  • значение: 4.

отключение SMB на клиенте

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

отключение SMB на клиенте-2

  • путь: HKLM:SYSTEMCurrentControlSetServicesLanmanWorkstation;
  • параметр: REG_MULTI_SZ с именем DependOnService;
  • значение: три строки – Bowser, MRxSmb20 и NSI.

Клиентским компьютерам осталось только перезагрузиться и все будет отключено

Учтите, что выключив smb v1, вы защититесь конечно от wannacrypt  и petya, но будьте осторожны, если у вас в локальной сети остались старые компьютеры, они не смогут связаться с контроллерами домена и не смогут пройти аутентификацию, так как не умеют работать по SMB 2

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

Существует несколько версий протокола SMB (диалектов), которые постоянно появляются в новых версиях Windows:

Samba используется для реализации протокола SMB в системах Linux / Unix. В скобках мы указали, в каких версиях самбы поддерживается каждый диалект 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, Сервер 2016 Windows 8.1,
Сервер 2012 R2
Windows 8,
Сервер 2012
Windows 7,
Сервер 2008 R2
Виндоус виста,
Сервер 2008
Windows XP, Server 2003 и более ранние версии
Windows 10 ,
Windows Server 2016
SMB 3.1.1 SMB 3.02 МСП 3.0 SMB 2.1 МСБ 2.0 SMB 1.0
Windows 8.1 ,
Сервер 2012 R2
SMB 3.02 SMB 3.02 МСП 3.0 SMB 2.1 МСБ 2.0 SMB 1.0
Windows 8 ,
Сервер 2012
МСП 3.0 МСП 3.0 МСП 3.0 SMB 2.1 МСБ 2.0 SMB 1.0
Windows 7,
Сервер 2008 R2
SMB 2.1 SMB 2.1 SMB 2.1 SMB 2.1 МСБ 2.0 SMB 1.0
Виндоус виста,
Сервер 2008
МСБ 2.0 МСБ 2.0 МСБ 2.0 МСБ 2.0 МСБ 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 отображается ошибка:

Указанное сетевое имя больше не доступно

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

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

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

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

Get-SmbServerConfiguration | выберите EnableSMB1Protocol, EnableSMB2Protocol

Эта команда вернула протокол SMB1 отключенным (

EnableSMB1Protocol=False

) и включенным протоколом SMB2 и SMB3 (

EnableSMB1Protocol=True

).

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

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

Get-Item HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters | ForEach-Object {Get-ItemProperty

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

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

Существует несколько версий протокола SMB (диалектов), которые постоянно появляются в новых версиях Windows:

Samba используется для реализации протокола SMB в системах Linux / Unix. В скобках мы указали, в каких версиях самбы поддерживается каждый диалект 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, Сервер 2016 Windows 8.1,
Сервер 2012 R2
Windows 8,
Сервер 2012
Windows 7,
Сервер 2008 R2
Виндоус виста,
Сервер 2008
Windows XP, Server 2003 и более ранние версии
Windows 10 ,
Windows Server 2016
SMB 3.1.1 SMB 3.02 МСП 3.0 SMB 2.1 МСБ 2.0 SMB 1.0
Windows 8.1 ,
Сервер 2012 R2
SMB 3.02 SMB 3.02 МСП 3.0 SMB 2.1 МСБ 2.0 SMB 1.0
Windows 8 ,
Сервер 2012
МСП 3.0 МСП 3.0 МСП 3.0 SMB 2.1 МСБ 2.0 SMB 1.0
Windows 7,
Сервер 2008 R2
SMB 2.1 SMB 2.1 SMB 2.1 SMB 2.1 МСБ 2.0 SMB 1.0
Виндоус виста,
Сервер 2008
МСБ 2.0 МСБ 2.0 МСБ 2.0 МСБ 2.0 МСБ 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 отображается ошибка:

Указанное сетевое имя больше не доступно

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

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

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

Get-SmbServerConfiguration | select EnableSMB1Protocol,EnableSMB2Protocol

Get-SmbServerConfiguration | выберите EnableSMB1Protocol, EnableSMB2Protocol

Эта команда вернула протокол SMB1 отключенным (

EnableSMB1Protocol=False

) и включенным протоколом SMB2 и SMB3 (

EnableSMB1Protocol=True

).

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

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

sc.exe query mrxsmb10

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

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

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

sc.exe query mrxsmb20

SERVICE_NAME: mrxsmb10 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (WOx0) CHINT

STATE=4 Running

SERVICE_NAME: mrxsmb20 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (0xA) 0 CHECKINT

В обоих случаях службы работают (

Get-SMBConnection

). Это означает, что Windows может подключаться как к серверам SMBv1, так и к SMBv2.

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

Как мы уже говорили ранее, компьютеры, обменивающиеся данными по SMB, используют максимальную версию, поддерживаемую как клиентом, так и сервером. Вы можете использовать командлет PowerShell

Get-SmbConnection -ServerName servername

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

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

:

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

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

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

$ sudo smbstatus

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

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

В Linux вы можете увидеть список SMB-соединений и диалектов, используемых в самбе, с помощью команды:

Set-SmbServerConfiguration –AuditSmb1Access $true

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

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

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

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

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

Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol

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

Set-SmbServerConfiguration -EnableSMB1Protocol $false

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

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

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

Если в вашей сети не осталось устаревших устройств, поддерживающих только 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:

Enable-WindowsOptionalFeature -Online -FeatureName smb1protocol

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

Set-SmbServerConfiguration -EnableSMB1Protocol $true

Включите клиент и сервер SMBv1:

Set-SmbServerConfiguration -EnableSMB2Protocol $false

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

Set-SmbServerConfiguration -EnableSMB2Protocol $true

Узнайте больше о протоколе SMBv1 в Windows 10 и Windows Server 2016/2019.

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

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

Включите SMBv2 и SMBv3 Server:

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

Set-SmbServerConfiguration - PowerShell отключает SMBv2 и SMBv3

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

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

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

отключить сервер smbv1 в Windows 7 через PowerShell

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

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

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

конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = отключено

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

конфигурация sc.exe lanmanworkstation зависит от Bowser / mrxsmb10 / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = auto

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

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

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

Set-ItemProperty -Path "HKLM:SYSTEMCurrentControlSetServicesLanmanServerParameters" SMB2 -Type DWORD -Value 1 –Force

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

конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb10 / nsi
sc.exe config mrxsmb20 start = отключено

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

конфигурация sc.exe lanmanworkstation зависит от 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, вам необходимо распространить следующий раздел реестра:

  • Ключ: HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet services mrxsmb10
  • Имя: Начало
  • Тип: REG_DWORD
  • Значение: 4

При отключении поддержки общего доступа к файлам SMB 1.0 / CIFS в Windows вы можете столкнуться с ошибкой «0x80070035, сетевой путь не найден», ошибкой доступа к общим папкам и проблемами обнаружения компьютера в непосредственной близости от сети. В этом случае вместо службы обозревателя компьютеров нужно использовать службу обнаружения (ссылки).

Источник изображения: winitpro.ru.pspath}

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

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

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

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

SERVICE_NAME: mrxsmb10 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (WOx0) CHINT

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

SERVICE_NAME: mrxsmb20 TYPE: 2 FILE_SYSTEM_DRIVER STATUS: 4 RUNNING (STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN) WIN32_EXIT_CODE: 0 (0x0) SERVICE_EXIT_CODE: 0 (0xA) 0 CHECKINT

В обоих случаях службы работают ([*]). Это означает, что Windows может подключаться как к серверам SMBv1, так и к SMBv2.

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

Как мы уже говорили ранее, компьютеры, обменивающиеся данными по SMB, используют максимальную версию, поддерживаемую как клиентом, так и сервером. Вы можете использовать командлет PowerShell [*], чтобы определить версию SMB, используемую для доступа к удаленному компьютеру [*]:

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

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

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

[*]

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

[*]

В Linux вы можете увидеть список SMB-соединений и диалектов, используемых в самбе, с помощью команды:

[*]

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

[*]

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

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

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

[*]

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

[*]

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

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

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

Если в вашей сети не осталось устаревших устройств, поддерживающих только 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:
[*]

Отключить только сервер SMBv1:
[*]

Включите клиент и сервер SMBv1:
[*]

Включить только сервер SMBv1:
[*]

Узнайте больше о протоколе SMBv1 в Windows 10 и Windows Server 2016/2019.

Отключите серверы SMBv2 и SMBv3:
[*]

Включите SMBv2 и SMBv3 Server:
[*]

Set-SmbServerConfiguration - PowerShell отключает SMBv2 и SMBv3

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

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

[*]

отключить сервер smbv1 в Windows 7 через PowerShell

Включите сервер SMBv1:
[*]

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

конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = отключено

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

конфигурация sc.exe lanmanworkstation зависит от Bowser / mrxsmb10 / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = auto

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

[*]

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

[*]

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

конфигурация sc.exe lanmanworkstation зависит от = bowser / mrxsmb10 / nsi
sc.exe config mrxsmb20 start = отключено

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

конфигурация sc.exe lanmanworkstation зависит от 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, вам необходимо распространить следующий раздел реестра:

  • Ключ: HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet services mrxsmb10
  • Имя: Начало
  • Тип: REG_DWORD
  • Значение: 4

При отключении поддержки общего доступа к файлам SMB 1.0 / CIFS в Windows вы можете столкнуться с ошибкой «0x80070035, сетевой путь не найден», ошибкой доступа к общим папкам и проблемами обнаружения компьютера в непосредственной близости от сети. В этом случае вместо службы обозревателя компьютеров нужно использовать службу обнаружения (ссылки).

Источник изображения: winitpro.ru

Понравилась статья? Поделить с друзьями:
  • Как отключить reboot в планировщике заданий windows 10
  • Как отключить reason cybersecurity windows 10 антивирус
  • Как отключить realtek hd audio в windows 10
  • Как отключить readyboost на флешке windows 7
  • Как отключить raid в windows 10