使用用户名/密码挂载与 nfs 的网络共享

VVP*_*VVP 3 nfs docker

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

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

所以我唯一的替代解决方案是在容器启动期间使用用户名/密码挂载这个 nas 文件夹。

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

mount -t cifs  -osec=ntlmv2,domain=mydomain,username=svc_account,password=password,noserverino //nsnetworkshare.domain.company/share/folder /opt/testnas
Run Code Online (Sandbox Code Playgroud)

有人告诉我,我们应该使用 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
Run Code Online (Sandbox Code Playgroud)

下面的命令似乎也不起作用。

 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
Run Code Online (Sandbox Code Playgroud)

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

请提出想法。

谢谢,
毗湿奴

Slu*_*ler 6

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-host 上使用 iptables(或您选择的防火墙)可能是值得的,以防止其他容器首先访问 NAS。与其将安全性委托给 NAS,不如在 docker-host 级别完成。


小智 4

好吧,我会说使用 CIFS 作为 NFS(旧),少数 linux/Unix bistro 甚至停止了对它的支持。

\n\n

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

\n\n

CIFS 是 Windows 操作系统用于文件共享的 \xe2\x80\x9cCommon Internet File System\xe2\x80\x9d 的缩写。CIFS 还使用客户端-服务器方法,其中客户端向服务器程序发出访问文件的请求。服务器执行请求的操作并返回响应。CIFS 是 Microsoft 开发和使用的服务器消息块协议 (SMB) 的开放标准版本,它使用 TCP/IP 协议。

\n\n

如果我有一个 Linux <-> Linux,我会选择 nfs,但如果它是一个 Windows <-> Linux cifs 将是最好的选择。

\n