- Поддержка SMB 1.0 в Windows Server 2012 R2 / Windows Server 2016
- Версии протокола SMB в Windows
- Об опасности использования SMB1
- Протокол SMB 1.0 в Windows Server 2012 R2
- Протокол SMB 1.0 в Windows Server 2016
- Включение SMBv1 в Windows 10
- Способ 1: Включение компонента Windows
- Способ 2: Команда для PowerShell
- Способ 3: Управление групповой политикой
Поддержка SMB 1.0 в Windows Server 2012 R2 / Windows Server 2016
В Windows Server 2012 R2 была представлена новая версия протокола SMB 3 (технически это SMB 3.02, т.к. версия SMB 3.0 появлялась еще в Windows Server 2012), а драйвер устаревшего протокола SMB 1.0 теперь можно отключать, и блокировать загрузку его компонентов. Вследствии отсутствия поддержки SMB 1.0 устаревшие (Windows XP, Server 2003 ) и совместимые клиенты (Mac OSX 10.8 Mountain Lion, Snow Leopard, Mavericks, старые версии Linux) не смогут получить доступ к файлам, расположенным файловом сервере под управлением Windows 2012 R2 / 2016.
Версии протокола SMB в Windows
SMB (Server Message Block, иногда называется LAN-Manager) это сетевой протокол для удаленного доступа к файлам, принтерам и другим сервисам. Для подключения используется порт TCP 445. Различные версии протокола SMB появлялись в следующих версиях Windows:
- CIFS — Windows NT 4.0
- SMB 1.0 — Windows 2000
- SMB 2.0 — Windows Server 2008 и WIndows Vista SP1
- SMB 2.1 — Windows Server 2008 R2 и Windows 7
- SMB 3.0 — Windows Server 2012 и Windows 8 (появилась поддержка SMB шифрования)
- SMB 3.02 — Windows Server 2012 R2 и Windows 8.1
- SMB 3.1.1 – Windows Server 2016 и Windows 10
При сетевом взаимодействии по протоколу 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 7 к файловому серверу с Windows Server 2012 R2 будет использоваться протокол SMB 2.1.
Чтобы на стороне сервера вывести список используемых клиентами версий протокола SMB и количество клиентов, используемых ту или иную версию протокола SMB, выполните команду:
Get-SmbSession | Select-Object -ExpandProperty Dialect | Sort-Object -Unique
В нашем примере имеется 825 клиентов, подключенных к серверу с помощью SMB 2.1 (Win 7 / 2008 r2) и 12 клиентов через SMB 3.02 (Win 8.1/ 2012 r2.
Согласно таблице Windows XP, Windows Server 2003 для доступа к общим файлам и папкам на сервере могут использовать только SMB 1.0, который в новых версиях Windows Server (2012 R2 / 2016) может быть отключен. Таким образом, если в вашей инфраструктуре одновременно используются компьютеры с Windows XP (снятой с поддержки), Windows Server 2003 / R2 и сервера с Windows Server 2012 R2 / Server 2016, нужно понимать, что устаревшие клиенты не смогут получить доступ к файлам и папкам на файловом сервере с новой ОС. А в том случае, если в Windows Server 2016 / 2012 R2 с отключенным SMB 1.0 используется в качестве контроллера домена, то это означает, что клиенты на Windows XP / Server 2003 не смогут выполнить логон скрипты (NETLOGON) и некоторые групповые политики, хранящиеся в сетевых папках на контроллерах домена (например, при использовании централизованного хранилища admx-шаблонов). На старых клиентах при попытке подключиться к ресурсу на файловом сервере с отключенным SMB v1 появляется ошибка:
Об опасности использования SMB1
На данный момент протокол SMB 1.0 является устаревшим и в нем присутствует большое количество критических уязвимостей (вспомните историю с эпидемиями вирусов-шифровальщиков wannacrypt и petya, которые использовали уязвимость именно в протоколе SMBv1). Microsoft и другие IT компании настоятельно рекомендуют отказаться от его использования.
В том случае, если в вашей сети остались клиенты с Windows XP и Windows Server 2003 их нужно как можно скорее мигрировать на более новые версии ОС Microsoft или тщательно изолировать.
Протокол SMB 1.0 в Windows Server 2012 R2
Если открыть список компонентов Windows Server 2012 R2, среди них можно увидеть функцию с именем SMB 1.0/CIFS File Sharing Support, которая не установлена. Но сам драйвер SMB 1.0 при этом работает. При установке данной роли в системе появляется служба Обозревателя компьютеров (Computer Browser). Это клиент SMB 1.0, без которого с данного сервера не получится подключиться к другим компьютерам, которые поддерживают только этот протокол.
Set-SmbServerConfiguration -EnableSMB1Protocol $false
В Windows Server 2012 по-умолчанию загружаются драйверы как SMB 1, так и SMB 2. Чтобы удостоверится в этом, откроем свойства системной службы Server (LanmanServer) и на вкладке Dependencies убедимся, что на сервере одновременно работают драйвера Server SMB 1.xxx Driver и SMB 2.xxx Driver.
Если открыть свойства службы LanmanServer на Windows 2012 R2 мы увидим, что драйвер, обеспечивающий поддержку SMB 1.0, исключен из зависимостей.
Но это не говорит о том, что драйвер SMB 1.0 не работает. Проверить, включен ли протокол SMB 1.0 на стороне сервера можно командой:
Get-SmbServerConfiguration | Select EnableSMB1Protocol
Как вы видите, протокол SMB1 в WS 2012 R2 включен несмотря на отсутствие компонента SMB 1.0/CIFS File Sharing Support и зависимостей в службе LanmanServer.
В том случае, если устаревшие клиенты (XP / Server 2003 и т.д.) потеряли SMB доступ к файловым серверам / контроллерам домена на Windows Server 2012 R2 можно активировать поддержку SMB 1 следующим образом. Сначала включите протокол в настройках сервера:
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Затем включите зависимости протокола SMB 1.0 в Windows Server 2012 R2 через реестр. Перейдите в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer и измените значение параметра DependOnService с SamSS Srv2 на SamSS Srv.
После этого сервер нужно перезагрузить и убедится, что драйвер SMB 1.0 вновь работает.
Эту операцию нужно выполнить на всех файловых серверах и контроллерах домена, к которым подключаются устаревшие версии клиентов.
Протокол SMB 1.0 в Windows Server 2016
В Windows Server 2016 поддержка протокола SMB 1.0 на стороне клиента также включается в виде отдельного компонента, который можно найти в списке мастера установки Add/Remove Features. Данный компонент называется SMB 1.0 / CIFS File Sharing Support.
Отключить поддержку SMB v1 и полностью удалить компонент можно командами:
Remove-WindowsFeature FS-SMB1
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled
Начиная с Windows Server 2016 1709 (и Windows 10 Fall Creators ), компонент SMBv1 (как клиент, так и сервер) по-умолчанию отключен (отключен также гостевой доступ по протоколу SMBv2). Для доступа к старым системам, использующим устаревшую версию протокола его нужно устанавливать отдельно. Нужно установить компонент SMB 1.0/CIFS File Sharing Support и включить SMB 1.0 командами:
Add-WindowsFeature FS-SMB1
Set-SmbServerConfiguration -EnableSMB1Protocol $true
Включение SMBv1 в Windows 10
Перед началом ознакомления со следующими способами отметим, что использование SMBv1 в качестве средства удаленного доступа обычному пользователю чаще всего не нужно, поскольку проще его организовать при помощи других вспомогательных технологий. Более детальную информацию по этому поводу предлагаем прочесть в статьях по ссылкам ниже.
Способ 1: Включение компонента Windows
В Windows 10 существует отдельный модуль, позволяющий подключать различные компоненты. С его помощью активировать SMBv1 будет проще всего, а выглядит процесс так:
- Откройте «Пуск» и перейдите в меню «Параметры».
В категории «Приложения и возможности» опуститесь в самый низ, где щелкните по кликабельной надписи «Программы и компоненты».
Через левую панель вызовите окно «Включение или отключение компонентов Windows».
Если технология не активировалась сейчас, потребуется перезагрузить компьютер, ведь именно тогда происходит обновление параметров реестра, что и требуется для корректной работы SMB.
Способ 2: Команда для PowerShell
Если вы не боитесь взаимодействовать с оболочкой PowerShell, активировать SMBv1 можно через нее, вставив всего одну команду.
- Щелкните правой кнопкой мыши по меню «Пуск» и выберите «Windows PowerShell (администратор)».
Ожидайте завершения процедуры включения компонента, что займет несколько минут.
После вам понадобится отправить компьютер на перезапуск, чтобы окончить операцию. Вы можете сделать это потом, выбрав сейчас отрицательный вариант ответа.
Далее в PowerShell отобразится информация о том, что SMBv1 была успешно активирована и находится в рабочем состоянии.
Дополнительно отметим две другие команды для PowerShell, которые могут пригодиться при дальнейшей работе с рассматриваемым компонентом в Windows:
- Get-WindowsFeature FS-SMB1 — позволяет узнать, в каком состоянии сейчас находится SMBv1.
- Disable-WindowsOptionalFeature -Online -FeatureName smb1protocol — отключает работу компонента.
Способ 3: Управление групповой политикой
Отметим, что этот вариант подойдет только владельцам доменов, которые хотят настроить SMBv1 на всех локальных компьютерах. Рядовым пользователям мы не советуем задействовать этот вариант — им лучше остановиться на двух предыдущих.
- Для начала придется добавить средство управления групповыми политиками в ОС. Для этого откройте «Пуск» и перейдите в «Параметры».
Откройте раздел «Приложения».
В первой же категории вас интересует кликабельная надпись «Дополнительные возможности».
Нажмите «Добавить компонент», чтобы перейти к его выбору.
В списке отыщите «RSAT: средства управления групповыми политиками» и запустите установку.
Вернитесь в предыдущее меню и отслеживайте прогресс инсталляции.
После проверьте компонент на наличие его в списке и перезагрузите компьютер, чтобы все изменения вступили в силу.
Войдите в операционную систему под именем владельца домена, откройте утилиту «Выполнить» через Win + R и пропишите gpmc.msc , нажав затем на клавишу Enter.
Ожидайте загрузки управления групповой политикой.
Там откройте главный раздел «Управление групповой политики» и найдите реестр.
Остается только заполнить сведения реестра в соответствии с приведенным далее списком
- Действие: Создать
- Куст: HKEY_LOCAL_MACHINE
- Путь раздела: SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters
- Имя параметра: SMB1
- Тип параметра: REG_DWORD
- Значение: 1
Остается только сохранить изменения для реестра и перезапустить компьютер, чтобы они вступили в силу. Если захотите в будущем отключить параметр, измените его значение на «0».