Не отображаются общие папки, сетевые компьютеры, флешки, диски на вкладке «Сеть» проводника Windows. Отключаем SMB1 для защититы компьютера с Windows от атак Работает – не трогай

19.03.2022 Windows Server

Если вы из 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).

Конкретные действия, которые нужно предпринять зависят от ошибки, которая появляется в Windows 10 при доступе к общей папке и от настроек удаленного SMB сервера, на котором хранятся общие папки.

Вы не можете получить гостевой доступ к общей папке без проверки подлинности

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

Вы не можете получить доступ к этой общей папке, так как политики безопасности вашей организации блокируют гостевой доступ без проверки подлинности. Эти политики помогают защитить ваш компьютер от небезопасных или вредоносных устройств в сети. An error occurred while reconnecting Y: to \\nas1\share Microsoft Windows Network: You can’t 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 с настроенным (гостевым) доступом (см. в разных версиях Windows).

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

В зависимости от устройства, на котором хранятся сетевые папки, вы должны отключить на них гостевой доступ.


Есть другой способ – изменить настройки вашего SMB клиента и разрешить доступ с него на сетевые папки под гостевой учетной записью.

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

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

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

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

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, вы должны без проблем подключиться к сетевой папке или принтеру. Однако, нужно понимать, что использование данного обходного решения не рекомендовано, т.к. подвергает вашу систему опасности.

Сегодня мы расскажем вам о том, как открыть папку для локальной сети (в народе «расшарить») и предоставить другим компьютерам доступ к вашим файлам. Инструкция на примере Windows 10.

Расшаренная папка

1. Настройки на вкладке Общий доступ

Для создания сетевого ресурса на компьютере с Windows 10 создайте папку или выберите уже существующую, нажмите по ней правой кнопкой и вызовите Свойства :

Перейдите на вкладку Общий доступ .

Выберите Расширенная настройка :

Установите флажок Открыть общий доступ к этой папке .

Нажмите кнопку Разрешения :

Настройте разрешения для разных пользователей или групп. В большинстве случаев здесь вам нужно разрешить чтение для группы Все . В нашем примере мы разрешили полный доступ к сетевой папке: и для чтения, и для записи.

После настройки нажмите ОК :

2. Настройки на вкладке Безопасность

Перейдите на вкладку Безопасность .

Нажмите кнопку Изменить :

Здесь нужно указать, каким пользователям разрешён доступ на уровне NTFS-прав. Опять же, в большинстве случаев нужно разрешить его всем. Для этого нажмите кнопку Добавить :

Впишите слово «Все» с большой буквы в поле и нажмите ОК :

Теперь группа Все появилась в списке. Нажмите Сохранить :

Теперь для того, чтобы доступ был не только к самой папке, но также ко вложенным папкам и файлам, необходимо заменить настройки NTFS.

Кликните Дополнительно :

Установите флажок Заменить все записи разрешений дочернего объекта наследуемыми от этого объекта.

Нажмите ОК :

Нажмите Да :

Подождите, пока права применятся ко всем вложенным объектам. Чем больше файлов и папок внутри данной директории, тем большее время может занять процесс применения.

Внимание! Во время применения параметров может возникнуть ошибка:

Если вы столкнулись с ней, прочитайте о том, как ее исправить.

3. Настройка параметров общего доступа

В Windows 10 нажмите Пуск — Параметры и выберите Сеть и Интернет :

Выберите пункт Изменить дополнительные параметры общего доступа :

В Windows 7 и 8.1 лучше всего щелкнуть правой кнопкой по значку сети возле часов, выбрать Центр управления сетями и общим доступом :

Разверните секцию Частная .

Включить общий доступ к файлам и принтерам :

Теперь разверните раздел Все сети .

Установите переключатель в положение Отключить общий доступ с парольной защитой .

4. Настройка брандмауэра

Для того, чтобы подключение к ПК по сети стало возможным, необходимо разрешить входящие подключения в брандмауэре Windows.

Здесь у вас два выхода:

  • отключить его полностью (что НЕ рекомендуется);
  • создать правило, разрешающее сетевой трафик ( в отдельной статье)

Последние масштабные вирусные атаки распространялись с использованием дыр и недостатков старого протокола SMB1. По одной из несущественных причин, операционная система Windows по-прежнему разрешает его работу по умолчанию. Эта старая версия протокола служит для совместного использования файлов в локальной сети. Его более новые версии 2 и 3 стали более защищенными и их стоит оставить включенными. Так, как вы используете новую операционную систему под номером 10 или предыдущую – 8 или даже уже устаревшую – 7, вы должны отключить этот протокол на вашем ПК.

Он включен только потому, что ещё некоторыми пользователями используются старые приложения, которые не были вовремя обновлены для работы с SMB2 или SMB3. Корпорация Майкрософт составила их список. Его, при необходимости, найдите и просмотрите в Интернете.

Если вы поддерживаете все свои программы, установленные на компьютере, в надлежащем состоянии (вовремя обновляете), вам вероятнее всего необходимо отключить этот протокол. Этим на один шаг увеличите защищенность своей операционной системы и конфиденциальных данных. Кстати, даже специалисты самой корпорации рекомендуют его отключать, в случае необходимости.

Вы готовы к внесению изменений? Тогда давайте продолжим.

SMB1

Откройте Панель управления, где перейдите в раздел “Программы” и выберите подраздел “Включение / отключение компонентов Windows”.

В списке найдите опцию “Поддержка общего доступа к файлам SMB 1.0/CIFS”, снимите с него отметку и нажмите кнопку “ОК”.

Перезагрузите операционную систему, предварительно сохранив все свои редактируемые перед этим файлы, такие как документы и т.п.

ДЛЯ WINDOWS 7

Здесь вам поможет редактирование системного реестра. Он является мощным инструментом системы и в случае внесения в него неправильных данных, может привести к нестабильной работе ОС. Используйте его с осторожностью, перед этим обязательно создайте резервную копию для отката.

Откройте редактор, для чего нажмите сочетание клавиш Win + R на клавиатуре и набрав “regedit” в поле для ввода. Далее пройдите по следующему пути:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanServer\Parameters

создайте новый 32-битный параметр DWORD и присвойте ему имя “SMB1” со значением “0”. Перезагрузите систему.

Внимание! Эти способы действуют для отключения протокола только на одном ПК, но не во всей сети. Обратитесь к официальной документации Microsoft за интересующей вас информацией.

По-умолчанию в Windows 10 и в Windows Server 2016 все-еще включена поддержка SMB 1.0. В большинстве случаев он требуется только для обеспечения работы устаревших систем: , Windows Server 2003 и старше. В том случае, если в вашей сети не осталось таких клиентов, в новых версиях Windows желательно отключить протокол SMB 1.x, либо полностью удалить драйвер. Тем самым вы оградитесь от большого количества уязвимостей, которые свойственны этому устаревшему протоколу (о чем лишний раз свидетельствует ) , и все клиенты при доступе к SMB шарам будут использовать новые более производительные, безопасные и версии протокола SMB.

В одной из предыдущих статей мы приводили на стороне клиента и сервера. Согласно таблице, старые версии клиентов (XP, Server 2003 и некоторые устаревшие *nix клиенты) могут использовать для доступа к файловым ресурсам только протокол SMB 1.0. Если таких клиентов в сети не осталось, можно полностью отключить SMB 1.0 на стороне файловых серверов (в том числе контролерах домена AD) и клиентских станциях.

Аудит доступа к файловому серверу по SMB v1.0

Перед отключением и полным удалением драйвера SMB 1.0.на стороне файлового SMB сервера желательно убедится, что в сети не осталось устаревших клиентов, подключающихся к нему по SMB v1.0. Для этого, включим аудит доступа к файловому серверу по этому протоколу с помощью команды PowerShell:

Set-SmbServerConfiguration –AuditSmb1Access $true

Через некоторое время изучите события в журнале Applications and Services -> Microsoft -> Windows -> SMBServer -> Audi t на предмет доступа клиентов с помощью протокола SMB1.

Совет . Список событий из данного журнала можно вывести командой:

Get-WinEvent -LogName Microsoft-Windows-SMBServer/Audit

В нашем примере в журнале зафиксировался доступ с клиента 192.168.1.10 по протоколу SMB1. Об этом свидетельствуют события с EventID 3000 от источника SMBServer и описанием:

SMB1 access
Client Address: 192.168.1.10
Guidance:
This event indicates that a client attempted to access the server using SMB1. To stop auditing SMB1 access, use the Windows PowerShell cmdlet Set-SmbServerConfiguration.

В данном случае, мы проигнорируем эту информацию, но нужно учитывать тот факт, что в дальнейшем данный клиент не сможет подключаться к данному SMB серверу.

Отключение SMB 1.0 на стороне сервера

Протокол SMB 1.0 может быть отключен как на стороне клиента, так и на стороне сервера. На стороне сервера протокол SMB 1.0 обеспечивает доступ к сетевым папкам SMB (файловым шарам) по сети, а на стороне клиента – нужен для подключения к таким ресурсам.

С помощью следующей команды PowerShell проверим включен ли протокол SMB1 на стороне сервера:

Как вы видите, значение переменной EnableSMB1Protocol = True.

Итак, отключим поддержку данного протокола:

Set-SmbServerConfiguration -EnableSMB1Protocol $false -Force

И с помощью командлета Get-SmbServerConfiguration убедимся, что протокол SMB1 теперь выключен.

Чтобы полностью удалить драйвер, обрабатывающий доступ клиентов по протоколу SMB v1, выполните следующую команду:

Disable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol -Remove

Осталось перезагрузить систему и убедиться, что поддержка протокола SMB1 полностью отключена.

Get-WindowsOptionalFeature –Online -FeatureName SMB1Protocol

Отключение SMB 1.0 на стороне клиента

Отключив SMB 1.0 на стороне сервера, мы добились того, что клиенты не смогут подключаться к нему по этому протоколу. Однако, они могут использовать устаревший протокол для доступа к сторонним (в том числе внешним) ресурсам. Чтобы отключить поддержку SMB v1 на стороне клиента, выполните команды:

sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi
sc.exe config mrxsmb10 start= disabled

Итак, отключив поддержку устаревшего SMB 1.0 на стороне клиентов и серверов вы полостью защитите свою сеть от всех известных и пока не найденных уязвимостей в нем. А уязвимости в Microsoft Server Message Block 1.0 находят довольно регулярно. Последняя существенная уязвимость в SMBv1, позволяющая злоумышленнику удаленно выполнить произвольный код, была исправлена в марте 2017 года.

Аннотация

В этой статье описываются процедуры включения и отключения протокола Server Message Block (SMB) версии 1, SMB версии 2 (SMBv2) и SMB версии 3 (SMBv3) в клиентских и серверных компонентах SMB.

Предупреждение. Не рекомендуется отключать прокол SMB версии 2 или 3. Отключать протокол SMB версии 2 или 3 следует только в качестве временной меры устранения неполадок. Не оставляйте протокол SMB версии 2 или 3 в отключенном состоянии.

В Windows 7 и Windows Server 2008 R2 отключение протокола SMB версии 2 приведет к отключению указанных далее функциональных возможностей.


  • Комбинирование запросов, позволяющее отправлять несколько запросов SMB 2 как единый сетевой запрос.

  • Большие объемы операций чтения и записи, позволяющие оптимально использовать быстрые сети.

  • Кэширование свойств файлов и папок, в которых клиенты сохраняют локальные копии файлов и папок.

  • Долговременные дескрипторы, позволяющие прозрачно восстанавливать подключение к серверу в случае временного отключения.

  • Усовершенствованные подписи сообщений, где алгоритм хэширования HMAC SHA-256 заменяет MD5.

  • Усовершенствованное масштабирование для совместного использования файлов (существенно увеличено число пользователей, общих ресурсов и открытых файлов на сервер).

  • Поддержка символьных ссылок.

  • Модель аренды нежестких блокировок клиентов, ограничивающая объем данных, передаваемых между клиентом и сервером, что позволяет улучить производительность сетей с большой задержкой и повысить масштабируемость SMB-сервера.

  • Поддержка больших MTU для полноценного использования 10-гигабитного Ethernet.

  • Снижение энергопотребления — клиенты, имеющие открытые для сервера файлы, могут находиться в режиме сна.

В Windows 8, Windows 8.1, Windows 10, Windows Server 2012 и Windows Server 2016 отключение протокола SMB версии 3 приведет к отключению указанных далее функциональных возможностей (а также функциональности протокола SMB версии 2, описанной в предыдущем списке).

  • Прозрачная отработка отказа, при которой клиенты переключаются на узлы кластера во время обслуживания или сбоя без нарушения работы.

  • Масштабирование - с предоставлением параллельного доступа к общим данным на всех узлах кластера.

  • Многоканальность обеспечивает агрегирование полосы пропускания сетевого канала и отказоустойчивость сети в различных каналах, имеющихся между клиентом и сервером.

  • SMB Direct - предоставляет поддержку сетей RDMA для обеспечения очень высокой производительности, небольшой задержки и низкого коэффициента использования ЦП.

  • Шифрование - обеспечивает сквозное шифрование данных и защищает их от перехвата в ненадежных сетях.

  • Аренда каталогов сокращает время ответа приложений в филиалах за счет кэширования.

  • Оптимизация производительности операций произвольного чтения и записи небольших объемов данных.


Дополнительная информация

Как включить и отключить протоколы SMB на SMB-сервере

Windows 8 и Windows Server 2012

В Windows 8 и Windows Server 2012 представлен новый командлет Windows PowerShell Set-SMBServerConfiguration . Он позволяет включать или отключать протоколы SMB версии 1, 2 и 3 на сервере.
Примечания . При включении или отключении протокола SMB версии 2 в Windows 8 или Windows Server 2012 также происходит включение или отключение протокола SMB версии 3. Это связано с использованием общего стека для этих протоколов.
После выполнения командлета

  • Чтобы получить текущее состояние конфигурации протокола SMB-сервера, выполните следующий командлет:

    Get-SmbServerConfiguration | Select EnableSMB1Protocol, EnableSMB2Protocol



  • Set-SmbServerConfiguration -EnableSMB1Protocol $false



  • Set-SmbServerConfiguration -EnableSMB2Protocol $false



  • Set-SmbServerConfiguration -EnableSMB1Protocol $true



  • Set-SmbServerConfiguration -EnableSMB2Protocol $true


Windows 7, Windows Server 2008 R2, Windows Vista и Windows Server 2008

Чтобы включить или отключить протоколы SMB на SMB-сервере с Windows 7, Windows Server 2008 R2, Windows Vista или Windows Server 2008, воспользуйтесь Windows PowerShell или редактором реестра.

Windows PowerShell 2.0 или более поздняя версия PowerShell


  • Чтобы отключить протокол SMB версии 1 на SMB-сервере, выполните следующий командлет:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Serv ices\LanmanServer\Parameters" SMB1 -Type DWORD -Value 0 -Force



  • Чтобы отключить протоколы SMB версии 2 и 3 на SMB-сервере, выполните следующий командлет:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Serv ices\LanmanServer\Parameters" SMB2 -Type DWORD -Value 0 -Force



  • Чтобы включить протокол SMB версии 1 на SMB-сервере, выполните следующий командлет:

    Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Serv ices\LanmanServer\Parameters" SMB1 -Type DWORD -Value 1 -Force



  • Чтобы включить протоколы SMB версии 2 и 3 на SMB-сервере, выполните следующий командлет:

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


Примечание . После внесения этих изменений компьютер необходимо перезагрузить.

Редактор реестра

Внимание ! В статье содержатся сведения об изменении реестра. Перед внесением изменений рекомендуется создать резервную копию реестра. и изучить процедуру его восстановления на случай возникновения проблемы. Дополнительные сведения о создании резервной копии, восстановлении и изменении реестра см. в указанной ниже статье базы знаний Майкрософт. Чтобы включить или отключить протокол SMB версии 1 на SMB-сервере, настройте следующий раздел реестра:

Подраздел реестра: Запись реестра: SMB1
REG_DWORD: 0 = отключено
REG_DWORD: 1 = включено
По умолчанию: 1 = включено

Чтобы включить или отключить протокол SMB версии 2 на SMB-сервере, настройте следующий раздел реестра:

Подраздел реестра:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControl Set\Services\LanmanServer\Parameters Запись реестра: SMB2
REG_DWORD: 0 = отключено
REG_DWORD: 1 = включено
По умолчанию: 1 = включено


sc.exe config lanmanworkstation depend= bowser/mrxsmb20/nsi


sc.exe config mrxsmb10 start= disabled

  • Чтобы включить протокол SMB версии 1 на SMB-клиенте, выполните следующие команды:


    sc.exe config mrxsmb10 start= auto



  • Чтобы отключить протоколы SMB версии 2 и 3 на SMB-клиенте, выполните следующие команды:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/nsi
    sc.exe config mrxsmb20 start= disabled



  • Чтобы включить протоколы SMB версии 2 и 3 на SMB-клиенте, выполните следующие команды:

    sc.exe config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
    sc.exe config mrxsmb20 start= auto


Примечания.

  • Эти команды следует вводить в командной строке с повышенными привилегиями.

  • После внесения этих изменений компьютер необходимо перезагрузить.