我们处于混合 Unix(在 Samba 情况下为 AIX)和 Windows 域环境中。
我们今年的目标之一是从 XP 升级到 Windows 7。在测试时,我们发现无法像在 Windows XP 上那样从 Windows 7 连接到 Samba 共享。
我们正在运行 Windows 7 Enterprise x64 和 Samba 3.5.2。
我们已经禁用了 Windows 7 计算机上的防火墙,并从中创建了相应的密钥Windows 7 上的 Samba wiki 条目。
smb.conf:
>cat smb.conf
[global]
workgroup = DATABASE
netbios name = MS
server string = ms
interfaces = 10.48.93.202/255.255.255.255 127.0.0.1/255.255.255.255
encrypt passwords = Yes
update encrypted = Yes
pid directory = /opt/pware64/var/locks
private dir = /opt/pware64/private
smb passwd file = /opt/pware64/private/smbpasswd
log level = 1
log file = /opt/pware64/var/log/samba_log.%m
max log size = 50
max xmit = 65535
name resolve order = host
deadtime = 3600
socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_SNDBUF=32768 SO_RCVBUF=32768
os level = 255
preferred master = Yes
dns proxy = No
#wins support = Yes
wins support = No
lock dir = /opt/pware64/var/locks
hosts allow = all
keepalive = 0
syslog = 2
winbind enum users = No
winbind enum groups = No
smb ports = 139
[homes]
read only = No
[data]
comment = Data
path = /data
valid users = testpc
read only = No
[I]
comment = I Drive
path = /I
valid users = dba
read only = No
[Downloads]
comment = Downloads
path = /downloads
valid users = dba
read only = No
连接日志:
>$ ll *testpc
-rw-r--r-- 1 root system 17K 18 Apr 2011 14:08 samba_log.testpc
>$ tail -4 *testpc
2011/04/18 14:08:35.408950, 1] smbd/service.c:1069(make_connection_snum)
testpc (10.48.93.120) connect to service data initially as user testuser (uid=6011, gid=1) (pid 1032402)
[2011/04/18 14:08:35.409878, 1] smbd/service.c:1250(close_cnum)
testpc (10.48.93.120) closed connection to service data
尝试通过映射网络驱动器来连接 samba 服务器。它确实会提示输入密码,但实际上并没有继续。它显示的消息是The specified server can not perform the requested operation.
任何帮助都将不胜感激。谢谢。
答案1
在同事的协助下才发现了这个问题。
问题是,在我们的环境中,默认情况下,Windows 7 要求所有 SMB 数据包都经过签名。但是,Samba 服务器却没有。因此,有两种方法可以解决此问题:关闭 Win7 中的客户端签名或在全局部分向 smb.conf 文件添加一个标志,如下所示:'服务器签名=自动'。(我们使用的是 Samba 3.5.2)。
对于 Windows 7,您可以通过使该策略更宽松来“修复”它 - 从要求数字签名到如果服务器同意则可选地使用它。
使用方法如下:
本地 Windows 安全策略更改如下:开始菜单类型 GPEdit.msc 浏览到计算机配置->Windows 设置->安全设置->本地策略->安全选项查找“Microsoft 网络客户端:对通信进行数字签名(始终)”并将其更改为已禁用
您可能还需要对“Microsoft 网络客户端:数字签名通信(如果服务器同意)”执行相同操作。理论上,这应该在 NTLM 的协商/质询阶段进行协商,但可能会失败;NTLM 并未明确要求任何真正的协商。