Чи не відкриваються загальні мережеві SMB папки в Windows 10

Якщо ви з Windows 10 не можете відкрити мережеві папки на інших мережевих пристроях (NAS, Samba сервера Linux) або на комп'ютерах зі старими версіями Windows (Windows 7 / XP / 2003), швидше за все проблема пов'язана з тим, що у вашій новій версії Windows 10 відключена підтримка застарілих і небезпечних версій протоколу SMB (використовується в Windows для доступу до загальних мережних папок і файлів). Так, починаючи з Windows 10 1709, був відключений протокол SMBv1 і анонімний (гостьовий) доступ до мережевих папок по протоколу SMBv2.

Microsoft планомірно відключає старі і небезпечні версій протоколу SMB у всіх останній версіях Windows. Починаючи з Windows 10 1709 і Windows Server 2019 (як в Datacenter так і в Standard редакціях) в операційній системі за замовчуванням відключений протокол SMBv1 (пам'ятаєте атаку шифрувальника WannaCry, яка як раз і реалізувалася через дірку в SMBv1).

Конкретні дії, які потрібно вжити залежать від помилки, яка з'являється в Windows 10 при доступі до спільної папки і від налаштувань віддаленого SMB сервера, на якому зберігаються загальні папки.

зміст:

  • Ви не можете отримати доступ гостя до спільної папки без перевірки автентичності
  • Вашій системі необхідно використовувати SMB2 або більш пізню

Ви не можете отримати доступ гостя до спільної папки без перевірки автентичності

Починаючи з версії Windows 10 1709 (Fall Creators Update) Enterprise і Education користувачі стали скаржитися, що при спробі відкрити мережеву папку на сусідньому комп'ютері стала з'являтися помилка:

Ви не можете отримати доступ до цієї загальнодоступному місці, так як політики безпеки вашої організації блокують гостьовий доступ без перевірки автентичності. Ці політики допомагають захистити ваш комп'ютер від небезпечних або шкідливих пристроїв в мережі.
An error occurred while reconnecting Y: to \\ nas1 \ share Microsoft Windows Network: You can not access this shared folder because your organization's security policies block unauthenticated guest access. These policies help protect your PC from unsafe or malicious devices on the network.

При це на інших комп'ютерах зі старими версіями Windows 8.1 / 7 або на Windows 10 з білдом до 1709, ці ж мережеві каталоги відкриваються нормально. Ця проблем пов'язана з тим, що в сучасних версіях Windows 10 (починаючи з 1709) за замовчуванням заборонений мережевий доступ до мережевих папок під гостьовим обліковим записом по протоколу SMBv2 (і нижче). Гостьовий (анонімний) доступ на увазі доступ до мережевої папці без аутентифікації. При доступі під гостьовим аккаунтом по протоколу SMBv1 / v2 не застосовуються такі методи захисту трафіку, як SMB підписування і шифрування, що робить вашу сесію вразливою проти MiTM (man-in-the-middle) атак.

При спробі відкрити мережеву папку під гостем по протоколу SMB2, в журналі клієнта SMB (Microsoft-Windows-SMBClient) фіксується помилка:

Source: Microsoft-Windows-SMBClient Event ID: 31017 Rejected an insecure guest logon.

У більшості випадків з цією проблемою можна зіткнутися при використанні старих версій NAS (зазвичай для простоти налаштування на них включають гостьовий доступ) або при доступі до мережевих папок на старих версіях Windows 7/2008 R2 або Windows XP / 2003 з налаштованим анонімним (гостьовим) доступом (див. таблицю підтримуваних версій SMB в різних версіях Windows).

У цьому випадку Microsoft рекомендує змінити налаштування на віддаленому комп'ютері або NAS пристрої, який роздає мережеві папки. Бажано переключити мережевий ресурс в режим SMBv3. А якщо підтримується тільки протокол SMBv2, налаштувати доступ з аутентифікацією. Це найправильніший і безпечний спосіб виправити проблему.

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

  • NAS пристрій - відключіть гостьовий доступ в налаштуваннях вашого NAS пристрої (залежить від моделі);
  • Samba сервер на Linux - якщо ви роздаєте SMB каталог з Linux, в файлі конфігурації smb.conf в секції [global] потрібно додати рядок:map to guest = never
    А в секції з описом мережевий папки заборонити анонімний доступ: guest ok = no
  • У Windows ви можете включити загальний доступ до мережевих папок і принтерів з пральний захистом в розділі Control Panel \ All Control Panel Items \ Network and Sharing Center \ Advanced sharing settings. Для All Networks (Всі мережі) в секції "Загальний доступ з парольного захистом" (Password Protected Sharing) саме значення на "Включити загальний доступ з парольного захистом"(Turn on password protected sharing). В цьому випадку анонімний (гостьовий) доступ до папок буде відключений і вам доведеться створити локальних користувачів, надати їм доступ до мережевих папок і принтерів і використовувати ці акаунти для підключення до загальних папок на цьому комп'ютері.

Є інший спосіб - змінити налаштування вашого SMB клієнта і дозволити доступ з нього на мережеві папки під гостьовим обліковим записом.

Цей спосіб потрібно використовувати тільки як тимчасовий (!!!), тому що доступ до папок без перевірки автентичності істотно знижує рівень безпеки ваших даних.

Щоб дозволити гостьовий доступ з вашого комп'ютера, відкрийте редактор групових політик (gpedit.msc) і перейдіть в розділ: Конфігурація комп'ютера -> Адміністративні шаблони -> Мережа -> Робоча станція Lanman (Computer Configuration -> Administrative templates -> Network (Мережа) -> Lanman Workstation). Увімкніть політику Enable insecure guest logons (Включити небезпечні гостьові входи).

У Windows 10 Home, в якій немає редактора локальної GPO, ви можете внести аналогічне зміна через редактор реєстру вручну:

HKLM \ SYSTEM \ CurrentControlSet \ Services \ LanmanWorkstation \ Parameters "AllowInsecureGuestAuth" = dword: 1

Або такою командою:

reg add HKLM \ SYSTEM \ CurrentControlSet \ Services \ LanmanWorkstation \ Parameters / v AllowInsecureGuestAuth / t reg_dword / d 00000001 / f

Вашій системі необхідно використовувати SMB2 або більш пізню

Інша можлива проблема при доступі до мережевої папці з Windows 10 - підтримка на стороні сервера тільки протоколу SMBv1. Оскільки клієнт SMBv1 за замовчуванням відключений в Windows 10 1709, при спробі відкрити кулі ви можете отримати помилку:

Ви не можете підключитися до спільної папки, так як вона небезпечна. Ця загальна папка працює за застарілим протоколу SMB1, який небезпечний і може піддати вашу систему ризику атаки. Вашій системі необхідно використовувати SMB2 або більш пізню версію.
You can not 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.

При цьому сусідні пристрої SMB можуть не відображатися в мережевому оточенні і при відкритті по UNC шляху може з'являтися помилка 0x80070035.

Тобто з повідомлення про помилку чітко видно, що мережева папка підтримує тільки SMBv1 протокол доступу. В цьому випадку потрібно спробувати переналаштувати віддалене SMB пристрій для підтримки як мінімум SMBv2 (правильний і безпечний шлях).

Якщо мережеві папки роздає Samba на Linux, ви можете вказати мінімально підтримувану версію SMB в файлі smb.conf так:

[Global] server min protocol = SMB2_10 client max protocol = SMB3 client min protocol = SMB2_10 encrypt passwords = true restrict anonymous = 2

У Windows 7 / Windows Server 2008 R2 ви можете відключити SMBv1 і дозволити SMBv2 так:
Set-ItemProperty -Path "HKLM: \ SYSTEM \ CurrentControlSet \ Services \ LanmanServer \ Parameters" SMB1 -Type DWORD -Value 0 -Force

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

У Windows 8.1 відключіть SMBv1, дозвольте SMBv2 і SMBv3 і перевірте що для вашого мережевого підключення використовується приватний або доменний профіль:

Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"
Set-SmbServerConfiguration -EnableSMB2Protocol $ true

Якщо ваше мережеве пристрій (NAS, Windows XP, Windows Server 2003), підтримує тільки протокол SMB1, в Windows 10 ви можете включити окремий компонент SMB1Protocol-Client. Але це не рекомендується!!!

Запустіть консоль PowerShell і перевірте, що SMB1Protocol-Client відключений (State: Disabled):

Get-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

Увімкніть підтримку протоколу SMBv1 (буде потрібно перезавантаження):

Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol-Client

Також ви можете включити / відключити додаткові компоненти Windows 10 (в тому числі SMBv1) з меню optionalfeatures.exe-> SMB 1.0 / CIFS File Sharing Support

У Windows 10 1709 і вище клієнт SMBv1 автоматично видаляється, якщо він не використовувався більше 15 днів (за це відповідає компонент SMB 1.0 / CIFS Automatic Removal).

У цьому прикладі я включив тільки SMBv1 клієнт. Не вмикайте компонент SMB1Protocol-Server, якщо ваш комп'ютер не використовується застарілими клієнтами в якості сервера для зберігання загальних папок.

Після установки клієнта SMBv1, ви повинні без проблем підключитися до мережевої папці або принтеру. Однак, потрібно розуміти, що використання даного обхідного рішення не рекомендовано, тому що піддає вашу систему небезпеки.