SMB: настройка общей сетевой папки в Windows


Книга по SMB и Samba на русском языке. Оглавление

1. SMB: настройка общей сетевой папки в Windows

1.1 Что такое и для чего нужен SMB

1.2 Как соотносятся SMB и Samba

1.3 Проще говоря

1.4 Как настроить общую сетевую папку на Windows (SMB) без пароля

1.5 Как настроить совместную папку на Windows с паролем

1.6 Как подключиться к сетевой папке в Windows по SMB

1.7 Как подключиться с общей папке на Windows, для которой требуется ввод учётных данных

2. SMB и Samba в Linux: подключение к общей папке Windows, создание сетевых папок в Linux

3. Аудит безопасности SMB и Samba


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

Из-за разных версий SMB, из-за разных операционных систем, неочевидных настроек Windows и, возможно, других причин при настройке сетевых папок у меня на разных компьютерах их поведение различается. Если вы заметили неточности или вам есть что дополнить по SMB и Samba, то пишите в комментариях!

Что такое и для чего нужен SMB

SMB (сокр. от англ. Server Message Block) — сетевой протокол прикладного уровня для удалённого доступа к файлам, принтерам и другим сетевым ресурсам, а также для межпроцессного взаимодействия. Первая версия протокола, также известная как Common Internet File System (CIFS) (Единая файловая система Интернета), была разработана компаниями IBM, Microsoft, Intel и 3Com в 1980-х годах; вторая (SMB 2.0) была создана Microsoft и появилась в Windows Vista. В настоящее время SMB связан главным образом с операционными системами Microsoft Windows, где используется для реализации «Сети Microsoft Windows» (англ. Microsoft Windows Network) и «Совместного использования файлов и принтеров» (англ. File and Printer Sharing).

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

Клиенты соединяются с сервером, используя протоколы TCP/IP (а, точнее, NetBIOS через TCP/IP), NetBEUI или IPX/SPX. После того, как соединение установлено, клиенты могут посылать команды серверу (эти команды называются SMB-команды или SMBs), который даёт им доступ к ресурсам, позволяет открывать, читать файлы, писать в файлы и вообще выполнять весь перечень действий, которые можно выполнять с файловой системой. Однако в случае использования SMB эти действия совершаются через сеть.

SMB работает, используя различные протоколы. В сетевой модели OSI протокол SMB используется как протокол Application/Presentation уровня и зависит от низкоуровневых транспортных протоколов. SMB может использоваться через TCP/IP, NetBEUI и IPX/SPX. Если TCP/IP или NetBEUI будут заняты, то будет использоваться NetBIOS API. SMB также может посылаться через протокол DECnet. Digital (ныне Compaq) сделала это специально для своего продукта PATHWORKS. NetBIOS в случае использования через TCP/IP имеет различные названия. Microsoft называет его в некоторых случаях NBT, а в некоторых NetBT. Также встречается название RFCNB (из Википедии).

Как соотносятся SMB и Samba

Samba — пакет программ, которые позволяют обращаться к сетевым дискам и принтерам на различных операционных системах по протоколу SMB/CIFS. Имеет клиентскую и серверную части. Является свободным программным обеспечением, выпущена под лицензией GPL.

Начиная с четвёртой версии, разработка которой велась почти 10 лет, Samba может выступать в роли контроллера домена и сервиса Active Directory, совместимого с реализацией Windows 2000, и способна обслуживать все поддерживаемые Microsoft версии Windows-клиентов, в том числе Windows 10.

Samba работает на большинстве Unix-подобных систем, таких как Linux, POSIX-совместимых Solaris и Mac OS X Server, на различных вариантах BSD; в OS/2 портирован Samba-клиент, являющийся плагином к виртуальной файловой системе NetDrive. Samba включена практически во все дистрибутивы Linux (из Википедии).

Проще говоря

С помощью SMB можно делать общие сетевые папки, чтобы другой компьютер или несколько компьютеров в локальной сети могли обмениваться между собой файлами. SMB работает на Windows. А Samba это альтернатива SMB для Linux, которая позволяет делать это же самое: создавать или подключаться к сетевым папкам по протоколу SMB.


Для SMB не нужен Windows Server, то есть без настройки сервера на любом компьютере можно создать общую сетевую папку. Не требуется настройка Active Directory или чего-то другого.

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

Настройка в Windows происходит в графическом интерфейсе и в целом довольно простая, если не упустить несколько важных моментов.

Как настроить общую сетевую папку на Windows (SMB) без пароля

Возможные проблемы и их решения:

  • 1.

В Windows Server 2019 не сохраняется «Включить сетевое обнаружение»

  • 2.

Ошибка:

Нет доступа к \\XXX. Возможно у Вас нет прав на использование этого сетевого ресурса. Обратитесь к администратору этого сервера для получения соответствующих прав доступа.

Вход в систему не произведён: выбранный режим входа для данного пользователя на этом компьютере не предусмотрен

Решение:

Откройте "Локальная политика безопасности"

secpol.msc

В этом окне: Локальные политики — Назначение прав пользователя — Отказать в доступе к этому компьютеру из сети — Удаляем из списка учётную запись «Гость».

После выполнения данной манипуляции, всё должно работать.

Эта ошибка может возникнуть после активации учётной записи гостя.


Если кому-то не помогло — проверьте, чтобы текущая учётная запись, с которой вы пытаетесь получить доступ, называлась не «Администратор». Это служебная, создаваемая автоматически учётная запись, которая предназначена не для обычного использования, а обслуживания. Лечение — создание учётной записи "Пользователь/User" с правами администратора

  • 3.

Ошибка

Нет доступа к \\XXX. Возможно у Вас нет прав на использование этого сетевого ресурса. Обратитесь к администратору этого сервера для получения соответствующих прав доступа.

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

На английском:

Multiple connections to a server or shared resource by the same user, using more than one user name, are not allowed

Первое решение:

Попробуйте перезапустить службу Workstation service:

net stop workstation /y
net start workstation

Либо если вы предпочитаете PowerShell то выполните команду:

Get-Service workstation | Restart-Service -Force

Обратите внимание, что эти команды необходимо выполнять с правами администратора.

Второе решение:

Используйте DNS псевдонимы или IP адрес

Если вначале вы подключились с помощью IP адреса и вашими текущими учётными данными:

\\IP_Address\Share

То попробуйте использовать что-то вроде следующего:

\\ServerName\Share password /user:Domain\Username

Или наоборот, вместо имени сервера используйте его IP.

Примечание: если компьютеры не используют Active Directory (компьютеры не являются частью Домена), то вместо Домена укажите WORKGROUP.

Третье решение:

Нажмите кнопку «Пуск», затем введите «cmd».

Щёлкните правой кнопкой мыши параметр «Командная строка», затем выберите «Запуск от имени администратора».

Введите

net use

затем нажмите «Enter».

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

net use /delete \\servername\foldername

(где \\servername\foldername (имя_сервера\имя_папки) — это диск, который вы хотите удалить.)

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

net use * /delete

Это приведёт к удалению всех подключённых дисков, поэтому будьте осторожны.

Как настроить совместную папку на Windows с паролем

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

Настройка сетевой папки по паролю почти полностью повторяет процесс описанный в предыдущем разделе. Отличия следующие:

  1. Необязательно менять настройку «Общий доступ с парольной защитой» - вы можете оставить значение по умолчанию, когда запрещён доступ к совместным ресурсам без пароля.
  2. При открытии общего доступа к шаре в качестве владельца укажите пользователя с паролем. Можно специально создать нового пользователя с паролем, который будет использоваться в качестве владельца общей папки. В Windows 10 создать локальную учётную запись как при установке системы, так и уже после стало реально непросто. Если у вас схожие проблемы, то смотрите, статьи:

Теперь нужно создать папку, владельцем которой будет только что созданный пользователь (ShareOverlord). Можно перезагрузить компьютер, выполнить вход под этим пользователем и создать папку, но я предполагаю, что возникнет несколько проблем:

  1. У этого пользователя ограниченные права (я не стал повышать его аккаунт до административного), поэтому он наверняка не сможет создать папку в корне диска C: и придётся затем искать эту папку
  2. Опять же из-за ограниченных прав нового пользователя могут возникнуть проблемы с открытием доступа по сети для созданной папки. То есть придётся вновь перезагружаться под административной учётной записью, искать в недрах пользовательских папок нужную. Причём могут возникнуть проблемы с правами доступа к папкам другого пользователя…

В общем, я создам папку под текущим аккаунтом администратора. Чтобы у пользователя, под которым будет выполняться вход для доступа к этой папке, были права на эту папку, можно поступить двумя способами:

  1. Сделать созданного для этих целей пользователя владельцем этой папки
  2. Добавить этому пользователю права доступа к этой папке

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

Допустим, я решил поменять владельца папки (источник: «Как поменять владельца папки в Windows 10»), для этого кликните правой кнопкой мыши по директории, владельца которой вы хотите поменять. Там выберите «Свойства»:

Теперь перейдите во вкладку «Безопасность» и там нажмите кнопку «Дополнительно»:

В открывшемся окне нажмите «Изменить»:

Впишите нового владельца — в моём случае это существующий локальный пользователь ShareOverlord и и нажмите кнопку «Проверить имена»:

Теперь во всех открытых окнах настроек и свойств нажмите «ОК» для их закрытия.

Теперь вновь кликаем правой кнопкой мыши по папке, выбираем вкладку «Доступ» → «Общий доступ». При желании вы можете удалить права доступа текущего администратора. Нажмите кнопку «Поделиться».

Обратите внимание, что общий доступ убран для текущего администратора только когда он будет пытаться просмотреть папку по сети. При локальном доступе, администратор всё равно может просматривать и менять содержимое этой папки — это можно поменять во вкладке «Безопасность» в свойствах папки.

Имеется нюанс если мы вместо смены владельца добавляем права доступа для определённого пользователя, поэтому рассмотрим второй вариант. Я удалил и заново создал папку C:\ShareRestricted\, поэтому текущий администратор вновь является её владельцем. Вновь кликаем правой кнопкой мыши по папке, выбираем вкладку «Доступ» → «Общий доступ» и добавляем права чтения и записи для пользователя ShareOverlord:

Нажимаем кнопку «Поделиться».

Теперь нажимаем «Расширенная настройка»:

Там нажимаем кнопку «Разрешения»:

В открывшемся окне нажимаем «Добавить»:

Вводим имя пользователя под которым должен выполнятся вход для доступа к папке (у меня это пользователь ShareOverlord) и нажимаем кнопку «Проверить имена»:

Теперь нажимаем «ОК» и возвращаемся в предыдущее окно:

Если вы хотите, чтобы у этого пользователя было не только право просматривать содержимое папки, но и её менять, то поставьте соответствующие галочки:

Теперь во всех открытых окнах настроек и свойств нажмите «ОК» для их закрытия.

Как подключиться к сетевой папке в Windows по SMB

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

С недавнего времени, после очередного обновления Windows 10 в некоторых случаях перестали открываться сетевые папки. Дело в том, что теперь вход без ввода пароля нужно настраивать не только на компьютерах, где находится сетевая папка, но и на компьютерах, с которых выполняется подключение. Это довольно странное решение объясняется тем, чтобы вы случайно не подключились к папке злоумышленника и не скачали с неё вредоносное ПО. Вам НЕ НУЖНО делать настройку в gpedit.msc если вы подключаетесь к сетевой шаре по паролю. Если же вы настроили вход в общую папку без пароля, то для исправления ситуации нажмите Win+r (Пуск->Выполнить) и запустите

gpedit.msc

Далее необходимо перейти по следующему пути «Конфигурация компьютера» → «Административные шаблоны» → «Сеть» → «Рабочая станция Lanmann»:

Теперь выставите параметр «Включить небезопасные гостевые входы» в положение «Включено»:

Описание в документации:

Этот параметр политики определяет, разрешит ли клиент SMB небезопасные гостевые входы на сервер SMB.

Если этот параметр политики включён или не настроен, клиент SMB разрешит небезопасные гостевые входы.

Если этот параметр политики отключён, клиент SMB будет отклонять небезопасные гостевые входы.

Небезопасные гостевые входы используются файловыми серверами для разрешения доступа без проверки подлинности к общим папкам. Небезопасные гостевые входы обычно не используются в среде предприятия, однако часто используются потребительскими запоминающими устройствами, подключёнными к сети (NAS), которые выступают в качестве файловых серверов. Для файловых серверов Windows требуется проверка подлинности, и на них по умолчанию не используются небезопасные гостевые входы. Поскольку небезопасные гостевые входы не проходят проверку подлинности, важные функции безопасности, такие как подписывание и шифрование SMB-пакетов отключены. В результате этого клиенты, которые разрешают небезопасные гостевые входы, являются уязвимыми к различным атакам с перехватом, которые могут привести к потере данных, повреждению данных и уязвимости к вредоносным программам. Кроме того, какие-либо данные, записанные на файловый сервер с использованием небезопасного гостевого входа, являются потенциально доступными для любого пользователя в сети. Майкрософт рекомендует отключить небезопасные гостевые входы и настроить файловые серверы на требование доступа с проверкой подлинности."                      

Наконец-то, можно подключиться к общей папке (share) в локальной сети. Для этого откройте проводник и перейдите в раздел «Сеть»:

Обратите внимание на глючность этой службы — в левой части проводника мы видим 4 компьютера, а в главном разделе окна — только два.

Если вы не видите нужный компьютер, то попробуйте открыть его по прямой ссылке, например, у меня имя компьютера с сетевой папкой HACKWARE-MIAL, тогда я открываю его по ссылке \\HACKWARE-MIAL.

Примечание для Windows Server: в серверных версиях Windows даже когда разрешено подключаться без пароля, всё равно появляется окно запроса:

Достаточно ввести произвольные данные и, моём случае, сетевая папка успешно открывалась. При подключении к этой же папке с обычного Windows 10, запрос на ввод пароля не появлялся. Видимо, для сервера настроены какие-то более строгие политики.

При клике на имя компьютера вы увидите доступные сетевые папки. При переходе в папку вы увидите её содержимое:

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

В Windows сетевые папки можно сделать доступными в качестве дисков с буквой. Для этого правой кнопкой мыши кликните по слову «Сеть» и выберите пункт «Подключить сетевой диск»:

Выберите букву для диска, введите путь до папки, поставьте галочку «Восстанавливать подключение при входе в систему»:

Теперь вы будете видеть сетевую папку как диск в любом файловом менеджере:

Как подключиться с общей папке на Windows, для которой требуется ввод учётных данных

В целом процесс очень схож с подключением к незащищённой папке, но при попытке подключения появится такое окно:

Чуть выше я создал папку, для доступа к которой нужно ввести учётные данные пользователя ShareOverlord, ссылка на эту папку: \\HACKWARE-MIAL\ShareRestricted

В это окно авторизации нужно вводить имя пользователя и пароль того пользователя, который имеет права на доступ к этой папке на УДАЛЁННОМ компьютере, то есть на том компьютере, где находится эта папка с совместным доступом.

Доступ в папку ShareRestricted получен:

Связанная статья: Как указать другое имя пользователя или пароль при доступе к сетевой папке Windows

Возможные проблемы и их решения:

1.

Проблема:

Настроен вход по паролю, но при подключении к сетевой папке пароль не запрашивается

При этом при попытке открыт ссылку вида \\КОМПЬЮТЕР для просмотра доступных сетевых ресурсов возникает ошибка:

\\HACKWARE-WIN11- is not accessible. You might not have permission to use this network resource. Contact the administrator of this server to find out if you have access permissions.
Account restrictions are preventing this user from signing in. For example: blank passwords aren’t allowed, sign-in times are limited, or a policy restriction has been enforced.

Перевод:

\\HACKWARE-WIN11- недоступен. Возможно, у вас нет разрешения на использование этого сетевого ресурса. Свяжитесь с администратором этого сервера, чтобы узнать, есть ли у вас права доступа.
Ограничения учётной записи не позволяют этому пользователю войти в систему. Например: пустые пароли не разрешены, время входа ограничено или применено ограничение политики.

При попытке открыть сетевую папку (ссылку вида \\КОМПЬЮТЕР\Папка) возникает следующая ошибка:

Windows cannot access \\HACKWARE-WIN11-\Share
Check the spelling of the name. Otherwise there might be a problem with your network. To try to identify and resolve network problems, click Diagnose.

Error code 0x80004005
Unspecified error

Перевод:

Windows не может получить доступ к \\HACKWARE-WIN11-\Share
Проверьте написание имени. Если с ним всё в порядке, то причина может связана с проблемами в вашей сети. Чтобы попытаться выявить и устранить сетевые проблемы, щёлкните Диагностика.

Код ошибки 0x80004005
Неопределённая ошибка

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

Решение проблемы:

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

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

Данная ситуация не исправляется даже если владельцем сетевой папки является другой пользователь с паролем.

Чтобы исправить эту проблему нужно:

1. Установить пароль для пользователя на компьютере с сетевой папкой

2. Создать пользователя с другим именем на компьютере, с которого производится вход на сетевую папку


Рекомендуется Вам:

6 комментариев to SMB: настройка общей сетевой папки в Windows

  1. Спасибо за статью, сколько живу с Win10 столько мучался до этого момента с Общим доступом, но теперь я всё настроил и могу с Андроид спокойно, как привык через smb в SolidExplorer зайти и скачать что надо! Конкретно за SMB в Компонентах спасибо! Насколько проще раньше всё было в Win7. Кстати я не стал мучиться с парольной, ибо не за чем тупо, ценного я там не храню, но если делать будет нечего, - попробую как ниб)))

  2. Аноним:

    спасибо:) четкая толковая статья) все получается с первого раза!)

  3. Макс:

    Спасибо, наконецто внятно объяснили, мне помогло вручную ввести путь к NAS ну и в компонентах вкл smb/

  4. and:

    Спасибо!  два дня копаний и только помого вариант с «Рабочая станция Lanmann»

  5. Alexey:

    Изменения в тексте:

    - инструкция проверена на Windows 11

    - добавлены разделы по Windows 11, часть материала убрана под спойлеры для улучшения читаемости

    - добавлен новый пункт в «Возможные проблемы и их решения» (не показывается приглашение ввести имя пользователя и пароль для доступа к сетевой папке по паролю при одинаковых именах пользователей)

    - другие дополнения и поправки

  6. Alex G:

    Сколько по инету лазил но здесь самая толковая статья по данному вопросу.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *