我在 2008 PDC/DNS 的 LAN 上有一个 Samba 共享。Smb 使用 AD 进行身份验证,我有几台可以正常连接的 Win7 机器。
我最近在 LAN 中添加了几台新计算机,它们以与其他计算机相同的方式(相同的软件等;不同的硬件,因此驱动程序不同)进行映像,并且它们具有相同的策略集。
无论如何,我都无法让新机器连接到 samba 共享。我总是遇到 either Unspecified Error 0x80004005
or Network Path not found
。
我已经关闭了防火墙;将 LANMAN 身份验证设置为仅响应 NTLM/发送 LM 和 NTLM 响应/如果在本地安全策略 > 安全选项中协商,则使用 NTLM 会话安全;尝试了 ip 和主机名来连接。
SMB日志显示认证成功;但随后连接立即被客户端终止。
tcpdump 没有显示任何异常,除了当尝试通过主机名从客户端连接时出现未知数据包类型错误:
ack 201 win 255 NBT Session Packet: Unknown packet type 0xABData: (41 bytes)
这是该错误的几行:
11:18:37.964991 IP 001-client.domain.local.49372 > smb.domain.local.netbios-ssn: P 1670:2146(476) ack 201 win 255 NBT Session Packet: Unknown packet type 0xABData: (41 bytes)
[000] AA 46 96 FA D5 99 33 75 0C C4 20 CE 26 42 F3 61 \252F\226\372\325\2313u \014\304 \316&B\363a
[010] F0 8C FB 65 18 17 40 A5 DB 42 BB 94 37 53 92 EC \360\214\373e\030\027@\245 \333B\273\2247S\222\354
[020] 55 98 7F C4 AE 3D 6B 10 C4 U\230\177\304\256=k\020 \304
11:18:37.964998 IP smb.domain.local.netbios-ssn > 001-client.domain.local.49372: . ack 2146 win 100
[针对罢工的编辑:这原来是 arp 缓存的问题,并且客户端从 dhcp 发出了一个以前属于另一台机器的旧 ip]
我也一直收到此错误:
[2012/09/10 11:50:00.529650, 2] smbd/sesssetup.c:1413(setup_new_vc_session)
setup_new_vc_session: New VC == 0, if NT4.x compatible we would close all old resources.
这是 smb.conf 以防万一(尽管看不到其他机器是否正常工作):
[global]
workgroup = MYDOMAIN
realm = MYDOMAIN.LOCAL
server string = domain|smb share
interfaces = eth1
security = ADS
password server = 192.168.1.3
log level = 2
log file = /var/log/samba/%m.log
smb ports = 139
strict locking = no
load printers = No
local master = No
domain master = No
wins server = 192.168.1.3
wins support = Yes
idmap uid = 500-10000000
idmap gid = 500-10000000
winbind separator = +
winbind enum users = Yes
winbind enum groups = Yes
winbind use default domain = Yes
[samba-share1]
comment = SMB Share
path = /home/share/smb/
valid users = @"MYDOMAIN+Domain Users"
admin users = @"MYDOMAIN+Domain Admins"
guest ok = no
read only = No
create mask = 0765
force directory mode = 0777
还有什么我可以尝试或寻找的想法吗?或者可能是什么问题?
谢谢。
更新 1
在其他机器上注意到本地安全策略 > LAN Manager 身份验证级别未定义。无法通过 LSP 编辑器对其进行设置,因此必须进入注册表并删除HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\lmcompatibilitylevel
但是,这并没有解决问题。我现在遇到了Accessing the resource '\\smb\share' has been disallowed
。或者Unspecified Error
取决于我登录的身份(普通用户 == 前者;管理员 == 后者)
更新 2
当您在 SF 上提出问题并且在此期间继续搜索答案却发现几个小时后您自己的问题反复出现在第一个谷歌结果中时,这非常令人沮丧;)
更新 3
我在客户端上运行了 Wireshark,据我所知,Samba 端的一切工作正常。我在协商协议请求中看到 NT 状态为 STATUS_SUCCESS(这很可能是身份验证成功,但不知道)。
一切都指向客户端本身的问题。在其他机器上,一切都按预期工作。包括在我的盒子上运行的虚拟机。它使用管理员和普通用户凭据工作。
注意,我试图让这个工作的客户端在尝试解决这个问题时暂时关闭了防火墙并且没有 a/v 等。
我已经更新了 NIC 驱动程序,但只有 1 个 iface 可用。DNS 正在运行,我已经将我能找到的所有设置与运行中的 VM 和其他运行中的机器进行了匹配。
变得绝望,所以任何想法都会很棒。
所以问题似乎是 secpol 被设置为数字签名通信(始终)。
要修复:Secpol.msc > 本地策略 > 安全选项 > Microsoft 网络客户端:数字签名通信(始终)=> 禁用
谢谢。
编辑:
正如the-wabbit所说,最好更新 samba 来处理需求而不是禁用它以维护安全性。
尝试在服务器上或仅在 Windows 客户端上仅启用 SMB 2 或 3。在注册表中为 1 设置值:
AllowInsecureGuestAuth
在键中:HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\
如果 Samba 服务器运行的是 SMBv1,那么安装 Win10 的新机器就会有问题,因为它们缺少 SMBv1 客户端功能。要启用该功能,请遵循windowscentral.com 中的指南:
将以下注册表值设置为 1
HKLM\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters\AllowInsecureGuestAuth
如果它不存在,则将值创建为 DWORD
我得到
0x80004005
权限错误:Client for Microsoft Networks
出于另一个原因,我的 WiFi 悬空状态没有激活,Network panel
并且:并且可能:
在我的例子中,这是由服务器的防火墙允许 TCP 端口 139 但阻止端口 445 引起的。Windows 10 似乎总是使用端口 445,而不是 139。
在我的例子中,问题被
smb encrypt
配置为desired
. 尝试用不同的值改变这个选项,在我的例子server smb encrypt = required
中解决了这个问题。