设置Mac Mountain Lion NFS客户端以安全访问Debian NFS服务器

好吧,我在这里疯狂。

尝试设置OS X(10.8.2)NFS客户端以连接到Debian(6.0.6)nfs服务器。 我主要是按照这里的说明: https : //help.ubuntu.com/community/NFSv4Howto哪些是非常彻底的。 但是,有两个问题:

  • 当我使用Kerberos时,性能很糟糕(我认为某些东西一定是超时的),所有的文件显然都是由nobody:nobody拥有的。 做一个安装的目录需要几十秒。
  • 当我尝试使用Kerberos,为服务器和客户端创build一个主体时,我无法装入共享。 客户端抱怨: mount_nfs: can't mount /mnt from servername.domain onto /home: Permission denied

我设置了两个主体, nfs/servername@REALMnfs/clientname@REALM ,并将其复制到客户机和服务器上的/etc/krb5.keytab

服务器(根据Kerberos日志)获取nfs/servername.REALM票据,所以我怀疑OS X NFS客户端不是以某种方式使用它的主体。

有任何想法吗?

更新: /var/log/daemon.log报告:

 Oct 7 19:12:43 servername rpc.svcgssd[19635]: ERROR: GSS-API: error in handle_nullreq: gss_accept_sec_context(): Unspecified GSS failure. Minor code may provide more information - No supported encryption types (config file error?) 

按照此页面: http ://permalink.gmane.org/gmane.comp.encryption.kerberos.heimdal.general/5551我已经删除了除了客户端和服务器krb5.keytab文件中的所有DESencryption选项。 并在/etc/krb5.conf文件中添加了allow_weak_crypto 。 并重新启动hfs-kernel-server ,它仍然不起作用。 叹。

事实上,现在它报告:

 Oct 7 19:26:55 servername rpc.svcgssd[19721]: ERROR: GSS-API: error in handle_nullreq: gss_accept_sec_context(): Unspecified GSS failure. Minor code may provide more information - Wrong principal in request 

那么“请求中的错误的主体”是否意味着客户通过了错误的krb5主体? 我可以在OS X中控制吗?

在Mac OS X 10.8下,NFSv4似乎已经被打破了。
非官方的说法是,苹果已经意识到了这个问题,但没有一个时间表来解决这个问题。 同时,共识是opendirectoryd相当破碎。

几个地方,你可能会检查更好的debugging信息:

  1. # sysctl -w vfs.generic.nfs.client.idmap_ctrl=127
    当您尝试运行ls命令时,请观察/var/log/system.log的输出。

  2. # odutil set log debug
    观察/var/log/opendirectoryd.log的输出

  3. 使用dtrace来确定挂断的位置。
    我们的经验是, nfs4_id2guid超时,因为opendirectoryd并不总是正确地向内核注册。

我的事情你应该尝试创build其他两个校长与您的域名添加到您的服务器名称。

nfs/mysername.example.com@REALMhost/myclientname.example.com@REALM

但无论如何,在MacOSX上你必须有一个TGT之前尝试安装。

所以在mount之前试一下kinit(任何主体都可以)。

Personnaly,我设法在MacOSX上有一个nfs + kerberos。 但是在NFSV3中。

在NFSV4中我设法挂载它,但是速度很慢…非常慢。