如何确保 NFS 连接安全?远程服务器位于互联网上,而不是本地网络中。服务器没有防火墙,直接连接到互联网。
答案1
答案2
服务器没有防火墙
如果远程系统不安全(没有任何防火墙使得这一点非常可疑),那么无论你对连接做什么都无济于事 - 你无法确保安全。对于身份验证与底层协议无关的 NFS 服务器来说尤其如此。
如果您的断言是正确的(我对此感到非常惊讶),那么找出是谁以这种方式配置了服务器并在他们造成更多危害之前将其阻止。
如果您需要通过互联网访问 NFS,请使用 VPN(IPSEC、SSL 隧道、SSH 隧道,甚至 pptp)并阻止服务器上的所有直接互联网访问(安全连接除外)。
答案3
如果系统使用NFS,请按照以下步骤操作:
- 如果可能的话,仅允许对导出的数据进行只读访问(-ro)
- 不要导出根文件夹 / 或 /etc
- 如果您不想导出任何文件系统,请停用 NFS。
- 对 NFS 导出的访问必须限制于指定主机
- 如果存在 zfs 文件系统,还请检查它们的属性,不要将它们配置为通过 NFS 共享。
- 使用 -nosuid 选项挂载文件夹,以防止执行 setuid 程序。
- 使用 –nodev 选项挂载文件夹,以防止设备文件共享。
答案4
这取决于您使用的 NFS 版本。上面的一些答案可能与您想要针对 NFSv4 之前的版本执行的操作类似。
- NFSv3+通过配置 ssh 连接TCP 包装器这显然充满了陷阱
- 强化网络防火墙 NFSv*
- 打开以下端口TCP、UDP 和 rpcbind。默认端口和 rcpbind 配置可能因 NFS 版本而异
克里斯托弗·尼格斯 (Christopher Negus)Linux 圣经保护 NFSv4 以及上述解决方案的最佳方法是使用 Kerberos 集成,它允许配置基于用户的访问. 这允许对哪些 root 使用进行更细粒度的控制
- 通过 TCP 配置 ssh(可能适用于旧版本的 NFS)。https://web.archive.org/web/20130526012838/http://dag.wieers.com/blog/tunneling-nfs4-over-ssh