Windows 10 не может подключиться к общим папкам Linux Samba, за исключением SMB1/CIFS

Windows 10 не может подключиться к общим папкам Linux Samba, за исключением SMB1/CIFS

У меня возникла проблема с доступом к некоторым общим ресурсам Linux Samba в Windows 10, из-за которой возникает следующая ошибка:

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: 0x80070035
The network path was not found

Я могу успешно просматривать веб-страницы со старой версии openSUSE 12.1, которая использует только SMB1/CIFS, но не с более новой версии openSUSE Leap 15, за исключением случаев, когда я принудительноНТ1протокол (то есть для SMB1/CIFS) на своей стороне, в/etc/samba/smb.conf глобальныйраздел:

[global]
...
min protocol = NT1
max protocol = NT1

Для информации, по умолчаниюмин протоколявляетсяЛАНМАН1имаксимальный протоколявляетсяСМБ3, то этот диапазон включает в себяНТ1протокол (см.Доступны ли минимальные и максимальные значения протокола SMB?):

$ testparm --parameter-name="min protocol"
[...]
LANMAN1
$ testparm --parameter-name="max protocol"
[...]
SMB3

И я могу получить доступ к этим общим папкам с другого компьютера Linux без принудительного изменения протокола, например, с помощью следующей команды я могу вывести список папок:

smbclient -L MyLeap15Computer -N

Или подключитесь к общей папке tmp с помощью:

smbclient //MyLeap15Computer /tmp -N

Я также подтвердил, что SMB2 и 3 на самом деле активны сКак обнаружить, включить и отключить SMBv1, SMBv2 и SMBv3 в Windows, а также смог получить к ним доступ с другого компьютера с Windows 10. А с компьютера, на котором я не могу получить к ним доступ, я успешно пингую MyLeap15Computer.

В любом случае, технически я могу получить доступ к своим общим папкам, принудительно включив протокол NT1, но поскольку это должно быть возможно, я хочу иметь возможность доступа к ним по SMB2 или SMB3, поскольку в SMB1/CIFS есть проблемы с безопасностью (а затем отключить его и в Windows 10). Кроме того, поскольку я могу получить к ним доступ из другой Windows 10, не принудительно используя этот протокол, то это должно быть связано с конфигурацией Windows, но я не могу это увидеть, поскольку в обоих случаях все выглядит активным.

И наконец, даже если проблема, по-видимому, больше на стороне клиента, вот конфигурация сервера:/etc/samba/smb.confне принуждая кНТ1протокол (эта конфигурация допускает гостевых пользователей, в этом случае для подключения не требуется указывать учетные данные):

[global]
workgroup = WORKGROUP
passdb backend = tdbsam
printing = cups
printcap name = cups
printcap cache time = 750
cups options = raw
map to guest = bad user
logon path = \\%L\profiles\.msprofile
logon home = \\%L\%U\.9xprofile
logon drive = P:
usershare allow guests = yes
usershare max shares = 100
winbind offline logon = yes
winbind refresh tickets = yes
create mask = 777
directory mask = 777
delete readonly = yes

[tmp]
comment = Temp folder
path = /tmp
browseable = yes
writable = yes
read only = no
guest ok = yes
mangled names = no

Редактировать: вот дополнительная информация после того, что предложил @JW0914, то, что было предложено, не сработало, но я нашел кое-что интересное в журналах сервера (добавленоуровень журнала = 3к/etc/samba/smb.conf глобальныйраздел затем посмотрел на/var/log/samba/log.smbdпосле попытки подключения):

  check_ntlm_password:  Checking password for unmapped user [DOMAIN]\[USER]@[Windows10Computer] with the new password interface
[2020/02/05 14:21:23.845849,  3] ../source3/auth/auth.c:192(auth_check_ntlm_password)
  check_ntlm_password:  mapped user is: [DOMAIN]\[USER]@[Windows10Computer]
[2020/02/05 14:21:23.845879,  3] ../source3/auth/check_samsec.c:399(check_sam_security)
  check_sam_security: Couldn't find user 'USER' in passdb.
[2020/02/05 14:21:23.845890,  2] ../source3/auth/auth.c:332(auth_check_ntlm_password)
  check_ntlm_password:  Authentication for user [USER] -> [USER] FAILED with error NT_STATUS_NO_SUCH_USER, authoritative=1
[2020/02/05 14:21:23.845910,  2] ../auth/auth_log.c:760(log_authentication_event_human_readable)
  Auth: [SMB2,(null)] user [DOMAIN]\[USER] at [Wed, 05 Feb 2020 14:21:23.845900 CET] with [NTLMv2] status [NT_STATUS_NO_SUCH_USER] workstation [Windows10Computer] remote host [ipv4:172.168.0.69:56937] mapped to [DOMAIN]\[USER]. local host [ipv4:172.168.0.99:445]
[...]
  No such user USER [DOMAIN] - using guest account
[2020/02/05 14:21:23.847182,  3] ../source3/smbd/server_exit.c:244(exit_server_common)
  Server exit (NT_STATUS_CONNECTION_RESET)

Я вижу, что сервер пытается аутентифицироваться с пользователем, вошедшим в Windows 10, но поскольку он не существует, он возвращается к гостевому пользователю, но соединение сбрасывается сразу после этого. С другой стороны, с компьютером, для которого он работает, при входе с тем же доменом/пользователем и успешном доступе у меня есть совершенно те же журналы (другое имя компьютера и IP), но в конце:

  No such user USER [DOMAIN] - using guest account
[2020/02/05 14:43:21.147396,  3] ../lib/util/access.c:365(allow_access)
  Allowed connection from 192.168.0.77 (192.168.0.77)

Я изучаю этот вопрос, но буду рад, если кто-нибудь даст мне представление о том, что происходит.

Редактировать2: после быстрого поиска я нашел обходной путьОсеннее обновление Windows 10 и гостевая учетная запись Sambaно при попыткечистое использованиеУ меня возникла следующая проблема: возможно, моя компания изменила настройки безопасности на новом компьютере (оба компьютера находятся в одном домене, но тот, который не работает, был установлен на более новом компьютере):

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.

Спасибо

решение1

В моем случае (Windows 10, древняя Samba 4.2.10 на CentOS 6) помогла установка минимального протокола на SMB2, максимального протокола на SMB3:

[global]

min protocol = SMB2
max protocol = SMB3

client min protocol = SMB2
client max protocol = SMB3

client ipc min protocol = SMB2
client ipc max protocol = SMB3

server min protocol = SMB2
server max protocol = SMB3

А потомподключаем общий ресурс как сетевой диск ( Explorer -> Home -> Easy access -> Map as drive), вводим имя общего ресурса ( \\1.2.3.4\ShareName), ставим галочку «Подключиться, используя другие учетные данные», затем «Другое» и вводим имя пользователя в форматеDOMAIN\username.

При попытке доступа к общему ресурсу в Проводнике он не запросил учетные данные, и я не смог указать имя пользователя net use \\shareserver\data /user:testuser(получил системную ошибку 58).

решение2

Бег smbpasswd -a userздесь имеет решающее значение!

Мой бег smb.conf:

[global]
    client max protocol = SMB3
    name resolve order = wins lmhosts host bcast
    security = USER
    username map = /etc/samba/smbusers
    idmap config * : backend = tdb

[rootfs]
    create mask = 0644
    force group = root
    force user = root
    path = /
    read only = No

решение3

Наконец, спасибоНевозможно получить доступ к общей папке из-за политик безопасности организации, я нашел способ это переопределить:

  • От regeditперейти кHKLM\SOFTWARE\Policies\Microsoft\Windows
  • Создайте новый ключ LanmanWorkstationи внутри него новый DWORD с именем AllowInsecureGuestAuthи значением1
  • Перезагрузить

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

решение4

В моем случае отключение подключений на порту 139/TCP очень помогло при ошибке 0x80070035 при первом подключении клиента Windows 10 к Samba Ubuntu 20.04

[global]
...
smb ports = 445
...

Теперь подключение к серверу Samba с моего домашнего ПК с Windows 10 происходит быстрее, чем когда-либо.

Но я действительно не знаю, какие побочные эффекты это вызовет.

Связанный контент