![Linux 的安全网络文件系统:人们在做什么?](https://linux22.com/image/528586/Linux%20%E7%9A%84%E5%AE%89%E5%85%A8%E7%BD%91%E7%BB%9C%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%EF%BC%9A%E4%BA%BA%E4%BB%AC%E5%9C%A8%E5%81%9A%E4%BB%80%E4%B9%88%EF%BC%9F.png)
NFSv3 已广泛应用,但默认的安全模型是……古雅。CIFS 可以使用 Kerberos 身份验证,但如果没有 POSIX 语义,它就无法启动。AFS 从未加密过线路上的流量,并且是 krb4 — 基本上是一个失败的项目。花哨的新实验文件系统要么从未实现,要么专注于速度(如果幸运的话,还有数据可靠性)— 例如,Lustre 使用与 NFSv3 相同的客户端信任模型。对于家庭使用,sshfs 很棒,但肯定无法扩展。
当然还有 NFSv4,sec=krb5p。理论上很棒,但十年后,它似乎在现实世界中无人使用。Linux 客户端有现在实验标签被删除了。如果你看看 EMC Celerra、Isilon 等,它们都是 NFSv3。(Celerra 支持 NFSv4,但它真的埋在文档中。Isilon 显然致力于将 RPCGSS 支持添加到 FreeBSD,所以也许它即将推出,但现在还没有。)我甚至不能将这篇文章标记为“nfsv4”,因为我是新手,那将是一个新的标签。
所以,真的。你们都在干嘛?
答案1
由于这是一个具体的问题(你们都在做什么),我们来回答:什么都没做。大多数管理员和用户根本不担心 NFS 安全,所以每个人都使用 NFSv3。它通常是一个受控环境(从某种意义上说,只有知名的机器才能连接到网络)。如果有人被发现滥用基础设施,他们就会被解雇或入狱。
对于您真的不想让任何人能够读取,您可以明确加密它们,例如 Firefox 密码数据库、ssh 密钥或 pgp 密钥。您这样做是因为您知道管理员可以在文件服务器上读取它们,因此网络文件系统安全性无论如何都无济于事。
答案2
你似乎在这里问两个问题:
我们实际在使用什么?和这是啥?
什么我是实际使用的是 CIFS,在我的用例中 POSIX 不太重要,所以我没有遇到任何问题。NFS3 用于安全性不重要的领域,例如我的 SLES 安装服务器。最后,sshfs/gvfs 用于简单的用户空间共享。有线加密被认为是不必要的,所以这对我们来说不是一个有意义的因素。
至于另一个问题,您所寻找的似乎有六个主要要求:
- 加密线路上的流量。
- 加密身份验证。
- Posix 语义。
- 严格执行基于服务器的 ACL。
- 不是用户空间。
- 确实被使用了。
我怀疑第 5 点和第 6 点会是关键,但这里是(也是表格的要点)真的方便,但 markdown/StackExchange 不支持它)。
NFSv3 + IPSec
- 在线加密,传递
- 没有加密身份验证,失败
- Posix 语义,传递
- 没有严格执行基于服务器的 ACL,失败
- 不是用户空间,通过
- 实际使用时,通过
NFSv4 + Krb + IPSec
- 在线加密,传递
- 加密认证,通过
- Posix 语义,传递
- 严格执行基于服务器的 ACL,通过
- 不是用户空间,通过
- 并未实际使用,失败
互联网金融
- 未在线加密,失败
- 加密身份验证
- Posix 语义,通过(现在是 Samba 和内核,Windows 自 NT 时代以来就有一个 Posix 层)
- 严格执行基于服务器的 ACL,通过
- 不是用户空间,通过
- 实际使用时,通过
CIFS + IPSec
- 在线加密,传递
- 加密身份验证
- Posix 语义,通过(现在是 Samba 和内核)
- 严格执行基于服务器的 ACL,通过
- 不是用户空间,通过
- 并未实际使用,失败
SSH文件系统
- 在线加密,传递
- 加密认证,通过
- Posix 语义,传递
- 严格执行基于服务器的 ACL,通过
- 是用户空间,失败
- 实际使用时,通过
法新社/NetATalk
- 在线加密,失败
- 加密认证,通过
- Posix 语义,传递
- 严格执行基于服务器的 ACL,通过
- 不是用户空间,通过
- 实际使用时,失败
我没有触及现有的分布式文件系统。根本没有一种单一系统可以做到这一切。有些系统已经接近了(CIFS),有些系统已经存在但没有人使用它们(NFS4 + IPSec、CIFS+IPSec)。出于某种原因,安全网络文件系统多年来一直受到很多攻击。
答案3
多年来,我一直在生产环境中使用 openafs,同时使用 Linux 和 Windows 客户端。它运行良好,拥有活跃的开发社区,而且在过去几年中,随着各种 Linux 发行版都为其打包,安装和管理变得更加容易。它有缺点,但我发现这些缺点被更大的管理灵活性、通过慢速链接将客户端和服务器分开的能力、异地备份的便利性以及其他积极的 AFSisms 所抵消。
我特别喜欢的一件事是在 openafs 上运行面向互联网的生产 Web 服务器,并锁定 ACL。如果没有 Kerberos 票证,机器上就没有任何进程(即使是以 root 身份运行的进程)可以写入文件系统。我数不清有多少次我们注意到攻击因为这个简单的措施而彻底失败。
openafs 有一些相当大的用户——我所知道的最大商业用户是摩根士丹利。
答案4
我看到这个帖子中有很多人都在谈论数据隐藏,即攻击者无法窥探您的数据。考虑数据完整性和真实性同样重要。这些 nfs 数据包真的来自您的 nfs 服务器吗?nfs 数据包在传输过程中是否被更改了?