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

mat*_*tdm 26 security linux network-filesystem posix nfs4

NFSv3 很普遍,但默认的安全模型是... quaint。CIFS 可以使用 Kerberos 身份验证,但如果没有 POSIX 语义,它就无法启动。AFS 从未对线路上的流量进行加密,它是 krb4 — 基本上是一个死项目。花哨的新实验文件系统要么永远不会实现,要么专注于速度(如果幸运的话,还有数据可靠性)——例如,Lustre 使用与 NFSv3 相同的客户端信任模型。对于家庭使用,sshfs 非常好用,但这肯定不能扩展。

当然还有 NFSv4,sec=krb5p。理论上很好,但十年后,它似乎在现实世界中令人不安地未使用。Linux 客户端刚刚删除了实验标签。如果你看看 EMC Celerra、Isilon 等,它们都是 NFSv3。(Celerra 支持 NFSv4,但它确实隐藏在文档中。Isilon 显然致力于将 RPCGSS 支持添加到 FreeBSD,所以也许它即将到来,但现在还没有。)我什至不能将这篇文章标记为“nfsv4”,因为我我是新来的,那将是一个新标签

所以,真的。你们都在做什么?

sys*_*138 13

你似乎在这里问两个问题:

我们实际使用的是什么?这是什么?

什么实际使用是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. 不是userland,pass
  6. 实际使用,通过

NFSv4 + Krb + IPSec

  1. 线上加密,通过
  2. 加密认证,通过
  3. Posix 语义,通过
  4. 强执行基于服务器的 ACL,通过
  5. 不是userland,pass
  6. 没有实际使用,失败

国际金融服务中心

  1. 未在线加密,失败
  2. 加密认证
  3. Posix 语义,通过(现在 Samba 和内核,Windows 自 NT 时代就有了 Posix 层)
  4. 强执行基于服务器的 ACL,通过
  5. 不是userland,pass
  6. 实际使用,通过

CIFS+IPSec

  1. 线上加密,通过
  2. 加密认证
  3. Posix 语义,通过(现在 Samba 和内核)
  4. 强执行基于服务器的 ACL,通过
  5. 不是userland,pass
  6. 没有实际使用,失败

SSHFS

  1. 线上加密,通过
  2. 加密认证,通过
  3. Posix 语义,通过
  4. 强执行基于服务器的 ACL,通过
  5. 是userland,失败
  6. 实际使用,通过

法新社/NetATalk

  1. 在线加密,失败
  2. 加密认证,通过
  3. Posix 语义,通过
  4. 强执行基于服务器的 ACL,通过
  5. 不是userland,pass
  6. 实际使用,失败

而且我不会触及那里的分布式文件系统。没有一件事情可以做到这一切。有些接近(CIFS),有些已经存在但没有人使用它们(NFS4 + IPSec,CIFS + IPSec)。出于某种原因,安全的网络文件系统多年来受到了很多妥协。


小智 8

既然是一个具体的问题(你们都在做什么),我们来回答一下:没什么。大多数管理员和用户只是不担心 NFS 安全,所以每个人都使用 NFSv3。它通常是一个受控环境(从某种意义上说,首先只有知名机器才能连接到网络)。如果有人被抓到滥用基础设施,他们就会被解雇或入狱。

对于您真的不希望任何人读取的数据,您可以明确地加密它们,例如 Firefox 密码数据库、ssh 密钥或 pgp 密钥。你这样做是因为你知道管理员可以在文件服务器上读取它们,所以无论如何网络文件系统安全都没有任何帮助。