我正在尝试配置 Windows 7 Enterprise 客户端以使用 Kerberos 和 Linux KDC 在 Linux NFS 服务器上挂载 NFSv4 共享。
设置如下:
- IPA 服务器(操作系统:Scientific Linux 6.4,软件包:ipa-server)
- NFS 服务器(操作系统:Scientific Linux 6.4,软件包:nfs-utils)
- Windows 7 客户端(操作系统:企业版 64 位,功能:NFS 客户端)
脚步:
在 IPA 服务器上,为 Windows 客户端创建一个主体,并使用密码:
ipa host-add --ip-address=10.10.0.100 win7ent-client.contoso.com ipa-getkeytab -s ipa.contoso.com -p host/win7ent-client.contoso.com -k win7ent-client.keytab -P ^ | This will create a principal and register the client with IPA server Set a random password - e.g. - jU96e3Urp6
为客户端添加NFS服务:
ipa 服务-添加 nfs/win7ent-client.contoso.com
在 Windows 客户端上:
ksetup /setdomain CONTOSO.COM ksetup /setmachpassword <password set on step 1> ksetup /addrealmflags CONTOSO.COM sendaddress delegate ksetup /mapuser * *
重新启动 Windows 客户端
跑步:
ksetup.exe /DumpState
这显示当前配置:
default realm = CONTOSO.COM (external) CONTOSO.COM: (no kdc entries for this realm) Realm Flags = 0x5 SendAddress Delegate Mapping all users (*) to a local account by the same name (*).
在 Windows 客户端上创建一个本地用户,无需密码,其名称在 IPA 服务器上存在。否则您将收到错误 -1332:帐户名与安全 ID 之间未进行映射
测试您是否可以作为用户获取票证:
运行方式/用户:[电子邮件保护]命令
在新的命令窗口中运行:
清单
这将输出当前票证信息:
当前 LogonId 为 0:0x6c70e
Cached Tickets: (1) #0> Client: joe @ CONTOSO.COM Server: krbtgt/CONTOSO.COM @ CONTOSO.COM KerbTicket Encryption Type: AES-256-CTS-HMAC-SHA1-96 Ticket Flags 0x40e10000 -> forwardable renewable initial pre_authent name_canonicalize Start Time: 2/22/2014 5:22:07 (local) End Time: 2/23/2014 5:22:07 (local) Renew Time: 3/1/2014 5:22:07 (local) Session Key Type: AES-256-CTS-HMAC-SHA1-96
NFS 服务器配置
mkdir -p /winshare/joe chown -R joe:joe/winshare/joe exportfs -o rw,sec=krb5 *:/winshare/joe
尝试在 Windows 客户端上挂载上述共享时:
mount -o sec=krb5 nfs.contoso.com:/winshare/joe E:
我收到以下错误:
网络错误 - 121
Type 'NET HELPMSG 121' for more information.
C:\Windows\system32>NET HELPMSG 121
The semaphore timeout period has expired.
尝试使用ms-nfs41-客户端-x64也失败了:
C:\Users\joe\Desktop\ms-nfs41-client-x64>nfs_mount.exe -o sec=krb5 * nfs.contoso.com:/winshare/joe
WNetUseConnection(*:, \\nfs.contoso.com\winshare\joe) failed with error code 1231.
The network location cannot be reached. For information about network troubleshooting, see Windows Help.
- 使用 sec=sys 的 NFS 共享有效
- 以 joe 的身份登录 Windows-7 客户端。
- Windows 日志记录工作后,使用 Putty 连接到 NFS 服务器(只要您先为 Windows 安装 MIT Kerberos 客户端)。
唯一不起作用的是使用 Kerberos 时 NFS。
答案1
据我所知,这一步可能不需要:
为客户端添加NFS服务:
ipa service-add nfs/win7ent-client.contoso.com
您的服务器需要 nfs 服务。
如果您确定需要 Windows 客户端的 nfs 服务,那么很可能它应该使用与该客户端的主机主体完全相同的密码。
此外:您是否已在服务器上启用安全 nfs?我不记得具体细节了,因为我很久以前就转到了 CentOS 7(systemctl (enable|start) nfs-secure 是你的好朋友),但我认为你应该在 /etc/sysconfig/nfs 中查找它。