我们刚刚第一次设置了一个可爱的小 nfs 共享/客户端。
a) 通过 ls 列出时,客户端文件的 UID 显示为 4294967294,但客户端能够在共享中创建和删除文件/目录。在客户端创建的文件和文件夹在服务器端显示正确的用户名(和 uid)。我们确保写入共享的用户在服务器端具有相同的 UID。
以下显示客户端的所有文件/文件夹:
drwxr-xr-x 6 4294967294 4294967294 4096 Feb 23 16:04 foldername
Run Code Online (Sandbox Code Playgroud)
这个可以吗?
b) 是否需要对 portmap / nfs 守护进程执行任何操作,以完全禁用任何 nfs(或 rpc*,因为它在此之前未安装)服务在我们的外部接口上运行?理想情况下,我们希望将服务仅绑定到我们的 LAN 和 VPN 子网。
c) 使 nfs 客户端尽可能积极地尝试重新连接的理想方法是什么?理想情况下,如果网络连接随时丢失,nfs 客户端将继续频繁且无限期地尝试。是否可以通过 fstab 来完成此操作?或者默认情况下 nfs 客户端已经这样做了?共享 nfs 共享的 LAN 端是 1GBit 连接。
d) 还有什么吗?
完了,走吧。
我在这里只回答安全问题,因为这是我最有经验的问题。
NFS 的安全很难保证。我可以推荐的最重要的事情是使用带有 GSS 身份验证机制的 NFS4,但我将继续回答,就好像您正在使用 NFS3(甚至 NFS2)一样。
*
,因为这允许任何地方的任何人访问您的共享。insecure
或no_root_squash
导出选项。secure
将服务器的信任仅限于客户端上的 root,而不仅仅是任何用户,并将root_squash
root 的请求重新映射到nobody
,从而防止通过共享访问敏感系统文件。-i
并portmap
使用hosts.allow
文件来限制对本地 IP 的访问也是个好主意。如果您想测试您的设置是否存在安全问题,我编写了一个用于绕过基本 NFS 安全机制的 Python 程序NfSpy。请随意尝试一下,看看是否可以以您意想不到的方式访问您的导出。
PS 关于客户端重新连接尝试,请参阅MOUNT OPTIONS
nfs(5) 联机帮助页的 部分。一般来说,retrans
和hard
/soft
选项控制您想要的内容,但基于每个请求。即使服务器长时间停机,安装本身也将保持正常状态。这些设置确定如何处理特定请求(读、写等)。