我有一个工作NFS4设置。服务器被调用bluebox.lan
并导出:
/mnt bluescreen.lan(rw,no_root_squash,crossmnt)
客户端被调用bluescreen.lan
并且能够bluebox
使用以下命令挂载 nfs:
mount -t nfs4 -o nfsvers=4.2 bluebox.lan:/mnt /bluebox
现在我补充说凯尔伯罗斯混合。
bluebox
是控制中心对于领域“LAN”。
制定了以下原则:
host/bluebox.lan@LAN
mathijs@LAN
mathijs/admin@LAN
nfs/bluebox.lan@LAN
nfs/bluescreen.lan@LAN
然后我将其添加nfs/bluebox.lan
到 bluebox 的 keytab 和nfs/bluescreen.lan
bluescreen 的 keytab。
我验证了 Kerberos 本身可以工作:
$ kinit mathijs@LAN
Password for mathijs@LAN:
$ klist
Ticket cache: FILE:/tmp/krb5cc_1000
Default principal: mathijs@LAN
Valid starting Expires Service principal
29-10-19 10:20:07 30-10-19 10:20:07 krbtgt/LAN@LAN
然后我改变了/etc/exportsbluebox
(仅添加 ,sec=krb5):
/mnt bluescreen.lan(rw,no_root_squash,crossmnt,sec=krb5)
我重新启动了涉及的服务(两台机器上的nscd
、rpcbind
和,以及rpc-statd
)。rpc-gssd
nfs-server
bluebox
现在我尝试安装bluescreen
:
mount -t nfs4 -o nfsvers=4.2,sec=krb5 bluebox.lan:/mnt /bluebox -vvvvvv
mount.nfs4: timeout set for Tue Oct 29 10:24:54 2019
mount.nfs4: trying text-based options 'nfsvers=4.2,sec=krb5,addr=192.168.22.2,clientaddr=192.168.22.5'
mount.nfs4: mount(2): Permission denied
mount.nfs4: access denied by server while mounting bluebox.lan:/mnt
我没有在两台机器的日志中收到任何消息。
但是,我确实注意到 Kerberos 在后台运行以安排票证。在bluescreen
(客户端)上/tmp/krb5ccmachine_LAN
出现了以下内容:
# klist -e /tmp/krb5ccmachine_LAN
Ticket cache: FILE:/tmp/krb5ccmachine_LAN
Default principal: nfs/bluescreen.lan@LAN
Valid starting Expires Service principal
29-10-19 10:16:36 30-10-19 10:16:36 krbtgt/LAN@LAN
Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
29-10-19 10:16:36 30-10-19 10:16:36 nfs/bluebox.lan@LAN
Etype (skey, tkt): aes256-cts-hmac-sha1-96, aes256-cts-hmac-sha1-96
bluescreen.lan
这似乎是合理的,这是尝试访问的票证bluebox.lan
。所以我的猜测是 nfs 服务器不知何故不接受此票证或无法验证它。
此外:
hostname -f
表明两台机器都知道自己的全名(包括.lan
)。getent <name-of-other-machine>
解析为正确的 IP 地址。getent <ip-address-of-other-machine>
解析为正确的主机名。- 我在两台机器上运行 systemd-timesyncd,因此它们的时钟同步
- 我在跑NixOS 19.09
- 两台主机上的内核均为 5.3.7
- nfs-utils 2.4.1
- 使用 Kerberos 1.17
现在我的问题是:
我应该如何进一步调试它?
我使用命令进行了一些尝试rpcdebug
,让一些日志流入两端(rpc、nfs、nfsd 组件)的日志中,但是经过很多操作却没有出现明显的错误。
编辑 2019-11-03:发现问题出在 NixOS NFS 服务器。NixOS 客户端与 Debian 10 服务器配合使用时运行良好。Debian 客户端与 NixOS 服务器配合使用时遇到的问题与 NixOS 客户端相同。但目前尚无解决方案。现在使用 NixOS 进行标记,因为它显然与我的问题有关。