В 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
- За опасностите от използването на SMB1
- SMB 1.0 протокол в Windows Server 2012 R2
- SMB 1.0 протокол в Windows Server 2016
Версии на протокола за SMB на Windows
SMB (Сървърния блок за съобщения, понякога наричан LAN-мениджър) е мрежов протокол за отдалечен достъп до файлове, принтери и други услуги. За връзка се използва 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, Сървър 2012 R2 | Windows 8, Сървър 2012 г. | Windows 7, Сървър 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 , Сървър 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, 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 протокола, чрез която клиентът взаимодейства със сървъра, използвайки командата, използвайки Powershell:Get-SmbConnection
За да изброите версиите на 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 ransomware, които използваха уязвимостта в протокола SMBv1). Microsoft и други ИТ компании настоятелно препоръчват да се откаже от използването му.
В случай, че клиентите с Windows XP и Windows Server 2003 останат във вашата мрежа, трябва да ги мигрирате към по-нови версии на Microsoft OS възможно най-скоро или внимателно да ги изолирате.
SMB 1.0 протокол в Windows Server 2012 R2
Ако отворите списъка с компоненти на Windows Server 2012 R2, сред тях можете да видите функция с име SMB 1.0 / CIFS досие споделяне подкрепа, която не е инсталирана. Но самият SMB 1.0 драйвер работи. Когато тази роля е инсталирана, услугата Computer Browser (компютър Браузър). Това е SMB 1.0 клиент, без който няма да е възможно да се свържете с други компютри, които поддържат само този протокол от този сървър..
съвет. Ако мрежата не трябва да поддържа старата версия на SMB 1.0 за компютри с Windows XP или Windows Server 2003, тази функционалност може да бъде деактивирана с командата за намаляване на натоварването на системата и повишаване на сигурността:Премахване-WindowsFeature FS-SMB1
След това в настройките на сървъра трябва напълно да деактивирате SMB 1.0 с командата:
Set-SmbServerConfiguration -EnableSMB1Protocol $ false
В Windows Server 2012 по подразбиране се зареждат както драйвери SMB 1, така и SMB 2. За да се уверите в това, отворете свойствата на системната услуга Сървър (LanmanServer) и таб Зависимостите уверете се, че драйверите работят едновременно на сървъра Сървър SMB 1.xxx драйвер и SMB 2.xxx драйвер.
Ако отворим свойствата на услугата LanmanServer на Windows 2012 R2, ще видим, че драйверът, който поддържа SMB 1.0, е изключен от зависимостите.
Но това не означава, че драйверът SMB 1.0 не работи. Можете да проверите дали SMB 1.0 протоколът е активиран от страната на сървъра с командата:
Get-SmbServerConfiguration | Изберете EnableSMB1Protocol
Както можете да видите, протоколът SMB1 е активиран в WS 2012 R2, въпреки липсата на компонента за поддръжка на файлове за поддръжка на SMB 1.0 / CIFS и зависимостите в 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 от страна на клиента също е включена като отделен компонент, който може да бъде намерен в списъка на съветника за добавяне / премахване на функции. Този компонент се нарича SMB 1.0 / CIFS досие споделяне подкрепа.
Можете да деактивирате поддръжката на SMB v1 и напълно да премахнете компонента с помощта на командите:
Премахване-WindowsFeature FS-SMB1
sc.exe config lanmanworkstation зависи = bowser / mrxsmb20 / nsi
sc.exe config mrxsmb10 start = деактивиран
Започвайки с Windows Server 2016 1709 (и Windows 10 Fall Creators), компонентът SMBv1 (както клиент, така и сървър) е по подразбиране инвалиди (достъпът на гостите чрез SMBv2 протокол също е деактивиран). За достъп до по-стари системи, използващи остаряла версия на протокола, трябва да го инсталирате отделно. Трябва да инсталирате компонента за поддръжка на споделяне на файлове SMB 1.0 / CIFS и да активирате SMB 1.0 със следните команди:
Add-WindowsFeature FS-SMB1
Set-SmbServerConfiguration -EnableSMB1Protocol $ true