У 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, сервер 2016 Windows 8.1,
Сервер 2012 R2
Windows 8,
Сервер 2012
Windows 7,
Сервер 2008 R2
Windows Vista,
Сервер 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,
Сервер 2012 R2
SMB 3.02 SMB 3.02 SMB 3.0 SMB 2.1 SMB 2.0 SMB 1.0
Windows 8,
Сервер 2012
SMB 3.0 SMB 3.0 SMB 3.0 SMB 2.1 SMB 2.0 SMB 1.0
Windows 7,
Сервер 2008 R2
SMB 2.1 SMB 2.1 SMB 2.1 SMB 2.1 SMB 2.0 SMB 1.0
Windows Vista,
Сервер 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, по якій клієнт взаємодіє з сервером можна за допомогою команди допомогою Powershell:

Get-SmbConnection

Щоб на стороні сервера вивести список використовуваних клієнтами версій протоколу SMB і кількість клієнтів, використовуваних ту чи іншу версію протоколу SMB, виконайте команду:

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

Get-SmbSession Отримати кількість клієнтів, які використовують різні версії SMB

У нашому прикладі є 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 Файл Спільний доступ Підтримка, Яка не встановлена. Але сам драйвер SMB 1.0 при цьому працює. При установці даної ролі в системі з’являється служба Обозревателя комп’ютерів (Комп’ютер Браузер). Це клієнт SMB 1.0, без якого з даного сервера не вийде підключитися до інших комп’ютерів, які підтримують тільки цей протокол.

компонент Підтримка спільного використання файлів SMB 1.0 / CIFS в Windows Server 2012 R2

Порада. Якщо в мережі не потрібно підтримувати стару версію SMB 1.0 для комп’ютерів з Windows XP або Windows Server 2003, цей функціонал з метою зменшення навантаження на систему і підвищень безпеки можна відключити командою:
Remove-WindowsFeature FS-SMB1
Потім в настройках сервера потрібно повністю відключити SMB 1.0 командою:

Set-SmbServerConfiguration -EnableSMB1Protocol $false

У Windows Server 2012 за замовчуванням завантажуються драйвери як SMB 1, так і SMB 2. Щоб упевнитися в цьому, відкриємо властивості системної служби Сервер (LanmanServer) і на вкладці Залежності переконаємося, що на сервері одночасно працюють драйвера Драйвер SMB 1.xxx сервера і Драйвер SMB 2.xxx.

Smb1 і Smb2 драйвери в Windows Server 2012Якщо відкрити властивості служби LanmanServer на Windows 2012 R2 ми побачимо, що драйвер, що забезпечує підтримку SMB 1.0, виключений з залежностей.

Підтримка SMB 1 в Windows Server 2012 R2 відключенаАле це не говорить про те, що драйвер SMB 1.0 не працює. Перевірити, чи включений протокол SMB 1.0 на стороні сервера можна командою:

Get-SmbServerConfiguration | Select EnableSMB1Protocol

Як ви бачите, протокол SMB1 в WS 2012 R2 включений незважаючи на відсутність компонента SMB 1.0 / CIFS File Sharing Support і залежностей в службі LanmanServer.

windows server 2012 r2 - перевірити стан протоколу SMB1

У тому випадку, якщо застарілі клієнти (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. Налаштування залежності DependOnService SamSS Srv

Після цього сервер потрібно перезавантажити і переконається, що драйвер SMB 1.0 знову працює. Драйвер SMB 1.0 в Windows Server 2012 R2

Цю операцію потрібно виконати на всіх файлових серверах і контролерах домену, до яких підключаються застарілі версії клієнтів.

Протокол SMB 1.0 в Windows Server 2016

У Windows Server 2016 підтримка протоколу SMB 1.0 на стороні клієнта також включається у вигляді окремого компонента, який можна знайти в списку майстра установки Add / Remove Features. Даний компонент називається SMB 1.0 / CIFS Файл Спільний доступ Підтримка.

windows server 2016 компонент SMB 1.0

Відключити підтримку SMB v1 і повністю видалити компонент можна командами:

Remove-WindowsFeature FS-SMB1
sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

Відключити SMB1 в Sever 2016

Починаючи з 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

Leave a Reply

Your email address will not be published. Required fields are marked *