我正在使用 Kubuntu 11.10 客户端和 FreeBSD 9.0 服务器。
服务器在 /etc/rc.conf 中有以下几行
nfs_server_enable="YES"
nfsv4_server_enable="YES"
nfsuserd_enable="YES"
并在 /etc/exports 中添加以下内容
V4: /
/
除了默认系统之外,我没有使用任何类型的安全性,以使此配置尽可能简单。
从客户端来看,这两个命令均成功挂载了导出的 NFS 共享:
$ sudo mount -t nfs test.home:/ /mnt
$ sudo mount -t nfs4 test.home:/ /mnt
我可以在服务器端做什么来禁用 NFSv3 及以下版本,以便以下内容不起作用?
$ sudo mount -t nfs test.home:/ /mnt
答案1
我从从事 NFS 代码工作的 FreeBSD 开发人员那里得到了以下答案。要在服务器级别禁用 v2 和 v3 连接,需要运行以下命令:
sysctl vfs.nfsd.server_min_nfsvers=4
如果您希望更改在系统上永久生效,请添加以下行/etc/sysctl.conf
:
vfs.nfsd.server_min_nfsvers=4
我刚刚在我最初的问题中的设置上测试了这一点,并使用 v3 和 v4 mount 命令得到了关于挂载的以下输出:
$ sudo mount -t nfs test.home:/ /mnt
$ mount
test.home:/ on /mnt type nfs (rw,vers=4,addr=192.168.1.5,clientaddr=192.168.1.3)
$ sudo mount -t nfs4 test.home:/ /mnt
$ mount
test.home:/ on /mnt type nfs4 (rw,addr=192.168.1.5,clientaddr=192.168.1.3)
请注意,两者现在均已采用 v4 安装。