null

В Windows 10 отключен по умолчанию сетевой доступ к SMBv2

В Windows 10 версии 1709, Windows 10 версии 1903, Windows Server версии 1709, Windows Server версии 1903 и более поздних версиях Windows клиент SMB2 больше не поддерживает следующие действия:
  • Доступ гостевой учетной записи к удаленному серверу
  • Переключение на гостевую учетную запись после ввода недопустимых учетных данных
SMBv2 в этих версиях Windows ведет себя следующим образом:
  • Windows 10 Корпоративная и Windows 10 для образовательных учреждений больше не позволяют пользователю подключаться к удаленному общему ресурсу с помощью учетных данных гостя, даже если удаленный сервер запрашивает учетные данные гостя.
  • Windows Server 2016 Datacenter и Standard Edition больше не позволяют пользователю подключаться к удаленному общему ресурсу с помощью учетных данных гостя, даже если удаленный сервер запрашивает учетные данные гостей.
  • Версии Windows 10 Home и Professional не изменились по сравнению с предыдущим поведением по умолчанию.

С данной проблемой можно столкнуться при использовании старых версий NAS или при доступе к сетевым папкам на старых версиях Windows7/2008 R2 или Windows XP /2003 при использовании анонимного гостевого доступа.

Изменения при использовании протокола SMB связаны с тем, что при доступе под гостевым аккаунтом по протоколу SMBv1/v2 не применяются такие методы защиты трафика, как SMB подписывание и шифрование, что делает вашу сессию уязвимой против MiTM (man-in-the-middle) атак.

Решение со стороны сервера SMB

В данном случае Microsoft рекомендует изменить настройки на удалённом компьютере или NAS устройстве, которое раздаёт сетевые папки. Рекомендуется использовать сетевой пртокол SMBv3, в случае если устройство поддерживает только SMBv2, настроить доступ с аутентификацией.

  • NAS устройство - отключите гостевой доступ в настройках устройства
  • Samba сервер на Linux - в конфигурационном файле smb.config в разделе [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, перейти в следующий раздел Computer Configuration ->Administrative templates -> Network -> Lanman Workstation (Конфигурация компьютера -> Административные шаблоны -> Сеть -> Рабочая станция Lanman),  включите политику 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

Использование протокола старше SMBv2

Клиент SMBv1 по умолчанию отключен начиная с Windows 10 1709. В сетевом окружении данные сетевые папки \сетевые устройства неотображаются и при открытии по 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

Если ваше устройство (NAS, компьютер под управлением Windows XP, Windows Server 2003), поддерживает только протокол SMBv1, в 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).