![无法通过主机名从 Windows 7(在域上)访问 Samba 共享](https://linux22.com/image/840561/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E4%B8%BB%E6%9C%BA%E5%90%8D%E4%BB%8E%20Windows%207%EF%BC%88%E5%9C%A8%E5%9F%9F%E4%B8%8A%EF%BC%89%E8%AE%BF%E9%97%AE%20Samba%20%E5%85%B1%E4%BA%AB.png)
我花了好几天时间试图解决这个问题——这个论坛或其他论坛上的所有答案都无法提供帮助。我尝试了所有方法。我阅读了整个 Samba 手册。但都无济于事。
令人高兴的是,我已经解决了这个问题,并愿意与社区分享答案。
以下是我的具体问题:
我在 Ubuntu Server 12.04 上运行 Samba 3.6.3。服务器通过 PowerBroker Identity Services Open Edition(他们购买了 Likewise)加入到我的公司域。我按照手册使用 AD 组权限设置共享。可以使用 AD 权限从 Linux 和 Mac 访问它。从 Windows 7 开始,它只能在未加入域的计算机上访问。加入域后,它只能通过 IP 访问 - 短主机名和 FQDN 会响应密码错误。
答案1
显然,域上的组安全策略存在问题 - 但无法更改一个网络共享的安全策略。根据我的研究,问题与 AD 如何创建 Kerberos 票证有关 - 并且域策略是仅使用 Kerberos。Samba 与 NTMLv2 配合使用,但 Samba 不负责身份验证 - AD 负责,PBIS 负责实现这一点。
问题源于 Samba 无法访问 PBIS 的 keytab 文件。我通过在smb.conf
下输入以下内容解决了该问题[global]
:
Kerberos method = dedicated keytab
dedicated keytab file = /etc/krb5.keytab
默认设置Kerberos method
是secrets only
使用 tdb 文件来存储票证 - 这对于 PBIS 不起作用。您必须告诉 Samba 仅使用 PBIS 使用的 keytab 文件。一旦我这样做了 - 身份验证就可以正确地使用 IP、短主机名和 FQDN。
krb5.conf
您可以通过检查文件(通常是 /etc/krb5.conf)并检查设置来找到 PBIS 正在使用哪个密钥表文件default_keytab_name
。
作为参考,这是我的smb.conf
:
[global]
security = ADS
workgroup = DOMAIN
realm = DOMAIN.COM
machine password timeout = 0
server string = %h
local master = no
encrypt passwords = yes
Kerberos method = dedicated keytab
dedicated keytab file = /etc/krb5.keytab
deadtime = 20
log level = 20
debug pid = true
debug class = yes
log file = /var/log/samba-pbis.log
[test]
comment = test
path = /test
browseable = yes
read only = no
writeable = yes
valid users = @DOMAIN\user1 @DOMAIN\domain^users
admin users = @DOMAIN\domain^admins
guest ok = yes
create mask = 0774
directory mask = 0774
inherit acls = yes
inherit permissions = yes