Как подключиться к samba из 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 сервера, на котором хранятся общие папки.
Вы не можете получить гостевой доступ к общей папке без проверки подлинности
Начиная с версии Windows 10 1709 (Fall Creators Update) Enterprise и Education пользователи стали жаловаться, что при попытке открыть сетевую папку на соседнем компьютере стала появляться ошибка:
При это на других компьютерах со старыми версиями Windows 8.1/7 или на Windows 10 с билдом до 1709, эти же сетевые каталоги открываются нормально. Эта проблем связана с тем, что в современных версиях Windows 10 (начиная с 1709) по умолчанию запрещен сетевой доступ к сетевым папкам под гостевой учетной записью по протоколу SMBv2 (и ниже). Гостевой (анонимный) доступ подразумевают доступ к сетевой папке без аутентификации. При доступе под гостевым аккаунтом по протоколу SMBv1/v2 не применяются такие методы защиты трафика, как SMB подписывание и шифрование, что делает вашу сессию уязвимой против MiTM (man-in-the-middle) атак.
При попытке открыть сетевую папку под гостем по протоколу SMB2, в журнале клиента SMB (Microsoft-Windows-SMBClient) фиксируется ошибка:
В большинстве случае с этой проблемой можно столкнуться при использовании старых версий NAS (обычно для простоты настройки на них включают гостевой доступ) или при доступе к сетевым папкам на старых версиях Windows 7/2008 R2 или Windows XP /2003 с настроенным анонимным (гостевым) доступом (см. таблицу поддерживаемых версий SMB в разных версиях Windows).
В зависимости от устройства, на котором хранятся сетевые папки, вы должны отключить на них гостевой доступ.
Есть другой способ – изменить настройки вашего SMB клиента и разрешить доступ с него на сетевые папки под гостевой учетной записью.
Этот способ нужно использовать только как временный (. ), т.к. доступ к папкам без проверки подлинности существенно снижает уровень безопасности ваших данных.Чтобы разрешить гостевой доступ с вашего компьютера, откройте редактор групповых политик (gpedit.msc) и перейдите в раздел: Конфигурация компьютера -> Административные шаблоны -> Сеть -> Рабочая станция Lanman (Computer Configuration ->Administrative templates -> Network (Сеть) -> Lanman Workstation). Включите политику Enable insecure guest logons (Включить небезопасные гостевые входы).
В Windows 10 Home, в которой нет редактора локальной GPO, вы можете внести аналогичное изменение через редактор реестра вручную:
Или такой командой:
reg add HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters /v AllowInsecureGuestAuth /t reg_dword /d 00000001 /f
Вашей системе необходимо использовать SMB2 или более позднюю
Другая возможная проблема при доступе к сетевой папке из Windows 10 – поддержка на стороне сервера только протокола SMBv1. Т.к. клиент SMBv1 по умолчанию отключен в Windows 10 1709, при попытке открыть шару вы можете получить ошибку:
При этом соседние устройства SMB могут не отображаться в сетевом окружении и при открытии по UNC пути может появляться ошибка 0x80070035.
Если сетевые папки раздает Samba на Linux, вы можете указать минимально поддерживаемую версию SMB в файле smb.conf так:
В 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, вы должны без проблем подключиться к сетевой папке или принтеру. Однако, нужно понимать, что использование данного обходного решения не рекомендовано, т.к. подвергает вашу систему опасности.
В этом материале я покажу как настроить Samba на сервере Debian, а так же подключить клиенты в Windows 10 и Android. В конце материала мы так же настроим доп. защиту для Samba с помощью fail2ban от перебора паролей.
Если на устройствах не всегда хватает памяти для хранения книг, видео, прочего или же нужен доступ с разных устройств, можно взять платный аккаунт на Google Drive или Dropbox. Множество других сервисов предоставляет свой кусочек места в интернете на 1Тб данных и больше начиная с 9.у.е. в месяц. Но если у Вас есть тестовый какой-нибудь сервер в интернете, как например у меня, то можно на нем разместить. Сервер можно взять например на Hetzner-е по достаточно дешевой цене. Это б/у сервера но их гораздо проще себе позволить и часто они стоят как средний VPS. Отзывы о них разные, но мне в принципе нравиться все. Но статья не о том.
Настраиваем Samba
Устанавливаем Samba apt-get install samba
Добавляем системного пользователя:
Если не добавить системного пользователя выдаст ошибку: "Failed to add entry for user"
добавляем пользователя Samba:
вводим пароль и запоминаем его.
добавляем директорию для наших данных:
не сильно заморачиваясь даем права на запись в эту папку всем
дописываем в конфиг нашей SAMBA(/etc/samba/smb.conf) следующие строки:
[smbuser]path = /home/smb/smbuser
read only = No
guest ok = No
security = user
valid users = smbuser
На этом вопрос на стороне с сервером решен.
Добавление сетевого диска в Windows 10
Это достаточно просто, жмем Пуск и на проводнике жмем правой кнопкой мыши. Дальше в контекстном меню выбираем "Подключить сетевой диск" и вводим IP сервера и название ресурса(\\111.111.111.111\smbuser), как на картинке:
Вместо 111.111.111.111 вводим IP своего сервера.
Жмем "Готово", вводим пользователя smbuser и его пароль и попадаем в папку сервера.
На этом с подключением диска в Windows 10 все. Как-то аналогично должно быть и в других версиях.
Подключение к сетевому диску из Android.
Я установил в Google Play приложение ES Проводник, так как сталкивался уже с ним, он достаточно удобен и не напоминает приложение слепленное на коленке, тем более какой-то не безопасный китайский софт для кражи паролей. Вы же можете выбрать то что вам больше подходит. Но тут я опишу процесс настройки именно его.
Запускаем ES Проводник.
Вызываем левое меню->Сеть->LAN->Создать.
Адрес сервера прописываем подобным образом: 111.111.111.111/smbuser
Пользователь smbuser, пароль который задавали при создании пользователя.
Жмем ОК и попадаем в наше хранилище.
Как минус этого клиента то что чтобы использовать протокол SMB2, нужно установить достаточно жирную предлагаемую ими игру из Google Play. Фиговей если игры вообще не играешь.
Вы можете выбрать другой клиент, подключение в нем будет подобным.
Усиливаем защиту SAMBA с помощью fail2ban
Если вы никогда не сталкивался с fail2ban то вы не понимаете даже на сколько это Must Have простой но достаточно эффективный сервис защиты от перебора паролей. Он читает логи и при достижении лимита записей в лог о неудачных авторизациях блокирует IP атакующего. Это не панацея, но часть атак отсеивает.
Добавляем следующие строки в секцию [global] файла /etc/samba/smb.conf:
full_audit: failure = nonefull_audit: success = pwrite write rename
full_audit: prefix = IP =% I | USER =% u | MACHINE =% m | VOLUME =% S
full_audit: facility = local7
full_audit: priority = NOTICE
log level = 3
Так же в секцию которую мы прописывали раньше добавляем строку:
В том же файле находим строки:
и меняем no на yes, а 0 на что-нибудь повыше, например 3 строку log file меняем на:Так как по умолчанию он создает для каждого айпи свой файл лога, и выбирать из такого количества файлов проблематично. По этому для лога у нас будет только этот один файл
Если не установлен fail2ban то ставим командой:
Создаем и заполняем файл настроек для него:
[Definition]failregex = NT_STATUS_NO_SUCH_USER.*\[ipv4:<HOST>:.*$
NT_STATUS_WRONG_PASSWORD.*\[ipv4:<HOST>:.*$
Нужно ориентироваться по логу в который пишем, так как регулярка зависит от формата записи в лог. В своем Debian я прописал именно такую, работает, проверено.
Так же создаем файл: /etc/fail2ban/jail.d/samba.conf со следующим содержимым:
[samba]filter = samba
enabled = true
action = iptables-allports[name = samba, port = "135,139,445,137,138" protocol = tcp]
mail [name = samba, [email protected]]
logpath = /var/log/samba/log
maxretry = 3
find time = 60
bantime = 24400
Вы можете поиграть с параметрами по своему усмотрению.
После перезапускаем fail2ban:
Для проверки работоспособности просто уменьшите число bantime для fail2ban и введите не правильно. Из-под линукса это можно сделать с помощью smbclient.
Сперва устанавливаем:
После установки для того чтобы подключиться к нашему серверу достаточно выполнить команду:
Вводите пароль и попадаете на сервер. Так же можно протестировать и защиту.
На этом все, материал получился достаточно обьемным, но не сложным. И главное, надеюсь полезным.
Всем привет! Сегодня столкнулся с такой проблемой. При построении локальной сети с двумя компьютерами первый (Windows 10) наотрез отказывается видеть другой комп (Windows 7). Все настройки я произвел правильно и открыл общий доступ. Но как потом оказалось, вся проблема в специальном сетевом протоколе SMB 1. Дело в том, что это старый протокол, который работает на олдскульных ОС. И он есть в десятке, но на последних обновлениях операционной системы Microsoft решила его отключить (во имя безопасности).
«Вы не можете подключиться к общей папке, так как она небезопасна. Эта общая папка работает по устаревшему протоколу SMB1, который не безопасен и может подвергнуть вашу систему риску атаки.»
Может быть еще вот такой текст ошибки: «Не удалось выполнить сопоставление сетевого диска из-за следующей ошибки». Ну и дальше все в том же духе.
Кстати, некоторые старые роутеры, также исползают устаревший SMB1 протокол – поэтому если у вас еще наблюдается проблема с доступом к жесткому диску или флешке, которые подключены к роутеру, то дальнейшие инструкции вам также будут полезны. Что мы будем делать? – нам нужно просто включить протокол SMBv1, и проблема будет решена. Поехали!
Включения SMB1 на Windows 10
Находим раздел с упоминанием нашего любимого протокола и включаем в папке все галочки. В самом конце нажимаем «ОК», чтобы изменения были приняты.
После этого SMB-1 в Windows 10 будет включено, и проблемы с сетью возникнуть не должны. Я бы на всякий случай перезагрузил компьютер. Но если вы все равно не видите какой-то компьютер в сети, или есть проблемы с доступом, смотрим следующую главу.
Проверка настроек
Нам нужно посмотреть настройки общего доступа и есть ли они у вас вообще.
- Тут же на первой странице (вкладка «Состояние») откройте «Свойства» того подключения, которое вы используете для коннекта с роутером. Если вы подключены по кабелю, то выбираем «Ethernet», если вы подключены по «Wi-Fi», то выбираема второе подключение. На старых версиях нужно открыть ссылку «Изменить свойства подключения».
- Убедитесь, чтобы тип сетевого профиля был как «Частный». Вернитесь обратно, нажав по стрелки влево.
- Пролистните чуть ниже и откройте «Центр управления сетями…». Этот раздел может также называться как «Параметры общего доступа». Поэтому можете ориентироваться по значку или найти раздел со словами «Общий доступ».
- Слева выбираем третий пункт для изменения параметров.
- Так как мы уже изменили текущий профиль на частный, то открываем его.
Включение SMB2
Сначала давайте проверим статус SMBv2. Для это откройте «PowerShell» с правами админа, нажав ПКМ по кнопке «Пуск».
Get-SmbServerConfiguration | Select EnableSMB2Protocol
Если вы видите значение «True», то значит протокол работает. Если стоит значение «False», то включить параметр можно также с помощью команды:
Set-SmbServerConfiguration -EnableSMB2Protocol $true
ПРИМЕЧАНИЕ! Таким же образом можно включить или выключить SMB1 – просто замените в команде одну цифру (2 на 1).
Далее кликаем по «Y» и на «Enter», чтобы подтвердить свои действия. Если же вы хотите отключить SMB2, то вместо «true» ставим «false». В конце не забываем перезагрузить систему.
Ничего не помогло, папку или компьютер не видно, ничего не работает
Если проблема остается, то есть несколько вариантов – от неправильных сетевых настроек до проблем с некоторыми службами в самой операционной системе. Все решения я уже описал в отдельной статье, и с ней вы можете ознакомиться по этой ссылке. То, что описано там, должно помочь.
К малинки подключен внешний хард на 1 терабайт (сериалы-фильмы)
Системник (Windows 10) и малинка подключена к интернету через витую пару через коммутатор DES-1005A/B.
Хочу через Windows 10 качать торрент-файлы на прямую на внешний хард на Raspberry Pi 4.
Samba протокол отсутствует и подключить у меня не вышло. В оболочке LibreElec так же присутствует SSH.
Какое может быть решение?
Средний 7 комментариев
А вы на малинке общий доступ-то настроили к этому харду?SAMBA это Unix реализации файлового протокола винды. Так что в винде самбу отдельно ставить/включать не нужно, она там есть из коробки. Достаточно включить службу доступа к файлам и принтерам (это сервер), а клиент в принципе не отключаем. Как в вин10 это называется точно не скажу, но вам собственно нужен клиент в данном случае, а не сервер. В винде родное название протокола CIFS. На вашем скрине прсутствует и самва и CIFS: "Поддержка общего доступа к файлам SMB 1.0/CIFS". Samba, SMB, CIFS - суть одно и то же.
Скорее всего проблемы связаны с несоответствием версии протокола в Вин10 и малинке. В малинке, конечно, какая-то древняя версия. Т.к. источник версий в любом случае микрософт, остальные догоняют. А протокол, на сколько я знаю, закрытый, поэтому догоняют медленно.
kisaa, Я только прокоментировал фразу, что самба отсутствует.
Да, поддержку старых версий, в винде включать нужно. По этому поводу beerchaser дал хорошую ссылку.
На счет проблемы автора вопроса, думаю, надо смотреть версию самбы в малинке, ошибки в логах и гуглить на предмет ошибок и проблем взаимодействия винды10 и данной конкретной версии самбы.
Так же можно не заморачиваться с этим и попробовать обновить самбу до последней доступной версии. Еще лучше - собрать самому самую последнюю релизную версию из исходников, но это требует определенных навыков.
В общем проблему нужно искать не в винде, а в малинке, поскольку для винды это родной протокол.
Читайте также: