NFSv3 与 Kerberos“不匹配的主机”错误

NFSv3 与 Kerberos“不匹配的主机”错误

我已经使用 Kerberos 设置了 NFSv4(效果很好),但现在我需要使用 Kerberos 添加 NFSv3。尝试挂载 NFSv3 导出时,我在客户端上收到需要权限的错误,在服务器上错误为“不匹配的主机”。

In /etc/export I just have: 
/test gss/krb5(rw,sync)

“主机不匹配”错误通常意味着您没有在导出文件中指定客户端可以访问服务器。但有了 kerberos,你就不需要这样做了。导出的 man 文件指出:

RPCSEC_GSS 安全 要使用 rpcsec_gss 安全性限制对导出的访问,请使用特殊字符串“gss/krb5”作为客户端。不可能同时要求 rpcsec_gss 和对客户端的 IP 地址提出要求。

我非常确定 Kerberos 设置正确(再次使用 kerberos 的 NFSv4 可以正常工作),并且从我在网上读到的内容来看,我认为 NFS 服务器设置正确(设置如下)并且必要的服务正在运行。我目前在 Ubuntu 10.4 上进行测试,但在 Novell SLED 10.3 上遇到了同样的问题。

有人知道我可能做错了什么吗?或者可以向我指出 NFSv3 w/kerberos 操作方法吗?

nss-common:
NEED_STATD=yes
STATDOPTS=
NEED_IDMAPD=no
NEED_GSSD=yes

nss-kernel-srever:
RPCNFSDCOUNT="8 --no-nfs-version 4  --no-nfs-version 2"
RPCNFSDPRIORITY=0
RPCMOUNTDOPTS="--manage-gids"
NEED_SVCGSSD=yes
RPCSVCGSSDOPTS=" -vvv "

答案1

我实际上在家里的一些机器之间使用 NFS v3 + Kerberos(CentOS 5 和 Gentoo 客户端和服务器的混合,以及 Gentoo KDC)。为了让它工作,我最终使用了一个 /etc/exports 条目,如下所示:

/export hostname.local.lan(rw,insecure,sync,sec=krb5p:krb5i:krb5)

在客户端上,/etc/fstab 包含:

hostname.local.lan:/export   /nfs/hostname/export   nfs sec=krb5p,nfsvers=3,mountvers=3,proto=tcp,acl,rw,soft,bg,intr 0 0

安装后,“mount”会为该文件系统返回以下内容:

hostname.local.lan:/export on /nfs/hostname/export type nfs (rw,sec=krb5p,nfsvers=3,mountvers=3,proto=tcp,acl,soft,bg,intr,addr=192.168.1.15)

从 NFSv4 实验来看,我仍然运行着 rpc.idmapd,但我认为 v3 不需要它。

最后一个棘手的部分是我设置时的 /etc/exports 位。许多教程列出了其他内容,例如上面的 gss/krb5 导出条目,但这对我来说从来没有用过,尽管如果您阅读了 nfs utils 源代码,它看起来应该如此。

我希望这能引导其他人走向正确的方向。祝你好运。

答案2

以下是我要更改/检查的一些内容:

使用新的 GSS 导出语法并允许完整性/隐私保护:

/test (sec=krb5:krb5i:krb5p,rw,sync)

确保所需的内核模块可用:rpcsec_gss_krb5auth_rpcgss

检查安装命令选项 - 您也可以将其添加到您的问题中。

相关内容