Linux 的安全网络文件系统:人们在做什么?

Linux 的安全网络文件系统:人们在做什么?

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 用于简单的用户空间共享。有线加密被认为是不必要的,所以这对我们来说不是一个有意义的因素。

至于另一个问题,您所寻找的似乎有六个主要要求:

  1. 加密线路上的流量。
  2. 加密身份验证。
  3. Posix 语义。
  4. 严格执行基于服务器的 ACL。
  5. 不是用户空间。
  6. 确实被使用了。

我怀疑第 5 点和第 6 点会是关键,但这里是(也是表格的要点)真的方便,但 markdown/StackExchange 不支持它)。

NFSv3 + IPSec

  1. 在线加密,传递
  2. 没有加密身份验证,失败
  3. Posix 语义,传递
  4. 没有严格执行基于服务器的 ACL,失败
  5. 不是用户空间,通过
  6. 实际使用时,通过

NFSv4 + Krb + IPSec

  1. 在线加密,传递
  2. 加密认证,通过
  3. Posix 语义,传递
  4. 严格执行基于服务器的 ACL,通过
  5. 不是用户空间,通过
  6. 并未实际使用,失败

互联网金融

  1. 未在线加密,失败
  2. 加密身份验证
  3. Posix 语义,通过(现在是 Samba 和内核,Windows 自 NT 时代以来就有一个 Posix 层)
  4. 严格执行基于服务器的 ACL,通过
  5. 不是用户空间,通过
  6. 实际使用时,通过

CIFS + IPSec

  1. 在线加密,传递
  2. 加密身份验证
  3. Posix 语义,通过(现在是 Samba 和内核)
  4. 严格执行基于服务器的 ACL,通过
  5. 不是用户空间,通过
  6. 并未实际使用,失败

SSH文件系统

  1. 在线加密,传递
  2. 加密认证,通过
  3. Posix 语义,传递
  4. 严格执行基于服务器的 ACL,通过
  5. 是用户空间,失败
  6. 实际使用时,通过

法新社/NetATalk

  1. 在线加密,失败
  2. 加密认证,通过
  3. Posix 语义,传递
  4. 严格执行基于服务器的 ACL,通过
  5. 不是用户空间,通过
  6. 实际使用时,失败

我没有触及现有的分布式文件系统。根本没有一种单一系统可以做到这一切。有些系统已经接近了(CIFS),有些系统已经存在但没有人使用它们(NFS4 + IPSec、CIFS+IPSec)。出于某种原因,安全网络文件系统多年来一直受到很多攻击。

答案3

多年来,我一直在生产环境中使用 openafs,同时使用 Linux 和 Windows 客户端。它运行良好,拥有活跃的开发社区,而且在过去几年中,随着各种 Linux 发行版都为其打包,安装和管理变得更加容易。它有缺点,但我发现这些缺点被更大的管理灵活性、通过慢速链接将客户端和服务器分开的能力、异地备份的便利性以及其他积极的 AFSisms 所抵消。

我特别喜欢的一件事是在 openafs 上运行面向互联网的生产 Web 服务器,并锁定 ACL。如果没有 Kerberos 票证,机器上就没有任何进程(即使是以 root 身份运行的进程)可以写入文件系统。我数不清有多少次我们注意到攻击因为这个简单的措施而彻底失败。

openafs 有一些相当大的用户——我所知道的最大商业用户是摩根士丹利。

答案4

我看到这个帖子中有很多人都在谈论数据隐藏,即攻击者无法窥探您的数据。考虑数据完整性和真实性同样重要。这些 nfs 数据包真的来自您的 nfs 服务器吗?n​​fs 数据包在传输过程中是否被更改了?

相关内容