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


26

NFSv3已经广泛使用,但是默认的安全模型是... quaint。CIFS可以使用Kerberos身份验证,但是如果没有POSIX语义,它就不是启动器。AFS从来没有对网络上的流量进行加密,它是krb4-基本上是一个无效的项目。新奇的实验性文件系统从未实现过,或者专注于速度(如果幸运的话,数据可靠性)—例如,Lustre使用与NFSv3相同的客户端信任模型。对于家庭使用,sshfs很漂亮,但是肯定不能扩展。

然后当然是NFSv4,其sec = krb5p。从理论上讲很棒,但是十年后,它似乎在现实世界中令人难以使用。Linux客户端刚刚删除了实验标签。如果您看一下EMC Celerra,Isilon等,它们全都是NFSv3。(Celerra支持NFSv4,但是它确实被埋藏在文档中。Isilon显然致力于将RPCGSS支持添加到FreeBSD中,所以也许它即将推出,但是现在不存在。)我什至不能将此帖子标记为“ nfsv4”,因为我这里新的,那将是一个新标签

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


我想说“基于IPSEC的NFS3”,但我不能。
sysadmin1138

1
“基于IPSEC的NFS3”可解决联机问题,但不能解决另一个基本的NFS问题:如果客户端已扎根,或者您处于用户在自己的系统上拥有根的环境中,可以冒充任何远程用户。
mattdm

有了新标签;)
Cry Havok 2010年

1
AFAIK,为NFS定义了Kerberos
Javier 2010年

2
我不太确定是否需要在LAN环境中对线路上的流量进行加密(尽管应该对身份验证进行加密)。无论如何,您都应该监视ARP中毒...
Hubert Kario 2010年

Answers:


8

由于这是一个特定的问题(大家都在做什么),让我们回答一下:什么也没有。大多数管理员和用户只是不必担心NFS安全性,因此每个人都使用NFSv3。它通常是一个受控的环境(从某种意义上说,首先只有知名机器才能连接到网络)。如果有人被滥用基础设施,他们将被解雇或入狱。

对于您确实不希望任何人都能读取的数据,可以对它们进行显式加密,例如Firefox密码数据库,ssh密钥或pgp密钥。这样做是因为您知道管理员可以在文件服务器上读取它们,因此无论如何网络文件系统的安全性将无济于事。


14

您似乎在这里问了两个问题:

我们实际上在使用什么?这是什么?

什么实际使用是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和Kernel,Windows从NT时代开始就有Posix层)
  4. 严格执行基于服务器的ACL,通过
  5. 不是使用者,通过
  6. 实际使用中,合格

CIFS + IPSec

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

SSHFS

  1. 在线加密,通过
  2. 加密身份验证,通过
  3. Posix语义,通过
  4. 严格执行基于服务器的ACL,通过
  5. 是用户土地,失败
  6. 实际使用中,合格

法新社/ NetATalk

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

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


您可能已经提到“ NFSv4 + Krb”并添加了“ 7.它是否相当快(即与没有加密的相同协议栈相比)?” 作为一个问题。对于NFSv4 + krb5p,这可能会失败,但是会通过问题1-6。
al。

可能是时候使用新的安全网络文件系统SNFS了?
Unix管理员

@ user37899问题一如既往,是说服设备供应商支持它以及组织对其进行部署。
sysadmin1138

1
尝试在POSIX模式下使用CIFS真是倒霉。也许是时候重新讨论一下。
mattdm 2010年

FWIW我正在使用CIFS + IPsec,但没有使用POSIX语义。服务器是emc celerra,客户端是win7。在Cisco ASA(与celerra相邻)和win7内置ipsec之间以lan-to-lan模式完成的ipsec隧道。
丹·普里兹

3

多年来,我一直在Linux和Windows客户端的生产环境中使用openafs。它运行良好,拥有活跃的开发社区,并且在最近几年中,由于各种Linux发行版都随附了打包程序,因此安装和管理变得更加容易。它有缺陷,但是我发现它们被更高的管理灵活性,通过慢速链接将客户端和服务器分隔开的能力,易于进行异地备份以及其他积极的AFSism所抵消。

我特别喜欢的一件事是在openafs上运行面向Internet的生产Web服务器,并锁定ACL。没有kerberos票,机器上就没有可以写入文件系统的进程-即使是以root用户身份运行的进程。我无法数出由于这种简单的措施我们发现攻击完全失败的次数。

有一些相当大的openafs用户-我知道最大的商业用户是Morgan Stanley。


1

现在还活着的OpenAFS及其下面的VPN怎么样,因为目前唯一的加密是DES。


2
我在生产中使用过OpenAFS。关于它的活跃性的谣言被大大夸大了。
mattdm

本月有新版本发布,在之前有相当定期的更新以支持Windows的新版本和Linux内核的新版本(最新版本支持3.0)。
休伯特·卡里奥

1

我看到该线程中的很多人都在谈论数据隐藏,即攻击无法监听您的数据。考虑数据完整性和真实性同样重要。这些nfs数据包确实来自您的nfs服务器吗?nfs数据包在传输过程中是否发生更改?


基于IPsec的NFS可以解决这一问题(在广域链路上),而对ARP中毒的监视则可以在LAN上实现
Hubert Kario 2010年

有人成功使用ipsec吗?
Unix管理员2010年

1

好吧,对我来说,听起来像是那些分布式文件系统之一适合您。我不太想推荐OpenAFS,因为它很旧,尚不支持IPv6,..

我自己对GlusterFS感到非常满意。Gluster非常成熟,可以正常运行并且具有良好的功能集。但是,正如最近在IRC中讨论的那样,Gluster也不以稳定的方式支持IPv6。此功能的预定日期为3.6或3.7。

还有一个名为HekaFS的项目,该项目建立在Gluster的基础上,该项目添加了更多高级身份验证功能和SSL。它是imo极好的文档,设计也非常好。

您可能会感兴趣的是XtreemFS,它是为全局网格计算而设计的,因此默认情况下它附带SSL和其他内容。我选择使用Gluster,因为社区似乎更活跃,而且记录得更好。

当然,两者都符合posix。


0

我使用NFS。但是,服务器到服务器的NFS是通过专用网络主干完成的,因此不需要加密,并且身份验证是毫无意义的。只需将每个导出设置为仅将选择目录共享给基于IP的服务器。


专用网络,直到有人用wireshark插入机架交换机。
Unix管理员

那是一个物理安全问题。一旦他们与服务器位于同一房间,无论如何都是游戏。
门廊

-2

出于所有应有的尊重,您完全以错误的方式看待此问题,应该离开控制台几个小时。

几乎所有存储io都是未加密的,因为在抽象堆栈的这一层都没有关系。对此感到怀疑?轻按一下Brocade光纤交换机,您会发现光纤通道(就像iscsi和nfs一样)都是未经加密的混乱-从设计上讲。解决这是一个中等问题,而不是存储协议问题。例如,想要安全和加密的nfs?使用ipsec / ssl / tls或纯硬件解决方案在nfs客户端和服务器之间创建了一个加密的点对点局域网。


我认为您错过了关键点。如问题所述,问题出在NFS安全模型上。加密虽然不错,但正如您所说,这是一个可以解决的问题。NFS的最大问题是,一旦在系统上挂载了文件系统,则对该系统具有root访问权限的任何人都可以访问该文件系统上的任何文件,而无需考虑所有权或权限。像AFS或理论上具有sec = krbp5的NFSv4之类的系统需要强大的凭据才能访问文件,因此,安全性得到了实质性的提高。扎根的NFS客户端并不意味着大量的数据泄露。
larsks 2010年

1
除非您要求用户为每次访问输入凭据,否则将存储凭据。遭到根攻击的客户端很可能会轻易放弃存储的密钥。任何联网的文件系统都会增加文件系统的危害。
BillThor

@BillThor这就是我的想法。如果凭据位于内核内存中,它是否仍然可以受到攻击?我认为可以加载内核模块以读取任何内核内存。
罗伯·奥尔莫斯

只要在具有共享存储访问权限的用户的上下文中使用请求,凭据在哪里都可能无关紧要。凭据通常由后台进程保存,因此可以与它进行通信的任何人都可以访问共享存储。我对安全网络存储的风险与本地存储的风险进行排序。
BillThor

2
@BillThor:使用kerberos可以大大降低风险,因为攻击者只能访问转发了票证的用户的文件系统,并且只能访问这些票证的整个生命周期。借助基于系统的身份验证(la nfsv3),root用户可以访问和操作任何用户的文件,即使该用户与受感染的系统无关。
mattdm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.