使用用户名/密码通过nfs挂载网络共享

时间:2018-12-04 02:08:13

标签: docker nfs

我正在尝试使用nfs挂载NAS用于应用程序。 存储团队已将其导出到主机服务器,我可以通过/ nas / data访问它。

我正在使用容器化的应用程序,此文件系统导出到主机将是一个安全问题,因为主机上运行的任何容器都可以使用共享。因此,这种从Linux到Linux的挂载对我不起作用。

因此,我唯一的替代解决方案是在容器启动期间使用用户名/ password挂载此nas文件夹。

以下命令在支持Unix / Windows的共享上正常运行。我可以在容器启动时挂载

mount -t cifs  -osec=ntlmv2,domain=mydomain,username=svc_account,password=password,noserverino //nsnetworkshare.domain.company/share/folder /opt/testnas

有人告诉我,我们应该使用nfs选项而不是cifs。 因此,仅尝试找出使用nfs还是cifs会有什么不同。

指定nfs选项会出现以下错误。

 mount -t nfs -o nfsvers=3,domain=mydomain,username=svc_account,password=password,noserverino //nsnetworkshare.domain.company/share/folder /opt/testnas


mount.nfs: remote share not in 'host:dir' format

以下命令似乎也不起作用。

 mount -t nfs -o nfsvers=3,domain=mydomain,username=svc_account,password=password,noserverino nsnetworkshare.domain.company:/share/folder /opt/testnas

mount.nfs: an incorrect mount option was specified

我找不到带有用户名/ password的mount -t nfs选项示例。所以我认为我们不能将mount -t nfs与凭据一起使用。

请注入想法。

谢谢,
毗湿奴

2 个答案:

答案 0 :(得分:1)

好吧,我想说CIFS是NFS(旧),很少有Linux / Unix小酒馆甚至停止支持它。

NFS是专门用于Unix和Linux操作系统的“网络文件系统”。它允许服务器与最终用户机器(如台式机和笔记本电脑)之间的文件透明通信。 NFS使用客户端-服务器方法来允许用户查看计算机系统上的读取和写入文件。用户可以通过NFS挂载文件系统的全部或一部分。

CIFS是Windows操作系统用于文件共享的“通用Internet文件系统”的缩写。 CIFS还使用客户机-服务器方法,其中客户机请求服务器程序访问文件。服务器采取请求的操作并返回响应。 CIFS是Microsoft开发和使用的服务器消息块协议(SMB)的开放标准版本,它使用TCP / IP协议。

如果我有Linux <-> Linux,我会选择nfs,但是如果是Windows <-> Linux cifs将是最佳选择。

答案 1 :(得分:1)

CIFS是文件共享协议。 NFS是一种卷共享协议。两者之间的区别最初可能并不明显。

从本质上讲,NFS与直接共享/ dev / sda1相比仅一步之遥。客户端实际上接收到文件系统共享子集的裸视图,包括(至少从NFSv4开始)对哪些用户可以访问哪些文件的描述。客户端可以实际管理允许哪个用户访问哪些文件的权限。

另一方面,

CIFS在服务器端管理用户,并且可以提供每个用户的视图和文件访问权限。在这方面,它类似于FTP或WebDAV,但具有读取/写入文件任意子集的功能,以及与锁定有关的其他几个功能。

这听起来好像NFS明显不如CIFS,但实际上它们是出于不同的目的。 NFS对于通过以太网连接的外部硬盘驱动器和虚拟云存储最为有用。在这种情况下,打算与计算机共享驱动器本身,而只是通过以太网而不是SATA进行共享。对于该用例,NFS提供了更大的简便性和速度。您正在使用的NAS实际上就是一个很好的例子。首先,这并不是要管理访问,而是要避免接触不应该访问它的系统。

如果您绝对必须使用NFS,则有两种方法来保护它。 NFSv4具有基于Kerberos的可选安全模型。祝你好运。更好的选择是不允许主机直接连接到NFS服务,而是需要通过一些安全隧道,例如SSH端口转发。然后,安全性下降到建立隧道。但是,其中任何一个都需要主机的配合,而对于您的NAS,这可能是不可能的。

请记住,如果您已经在使用CIFS,并且运行良好,并且可以为您提供良好的访问控制,则没有充分的理由进行切换(尽管为安全起见,您必须关闭NFS)。但是,如果您拥有docker样式的主机,则值得在docker主机上使用iptables(或您选择的防火墙),以防止其他容器首先访问NAS。与其将安全委托给NAS,不应该在docker-host级别上完成。