通过 SSH 远程隧道挂载 NFS 时权限被拒绝

通过 SSH 远程隧道挂载 NFS 时权限被拒绝

我成功地将目录从 CentOS 7 服务器导出到 CentOS 6 服务器(我使用了*/etc/exports而不是服务器的 IP)。但我似乎找不到适合我通过 SSH 隧道导出它的解决方案。这是我目前的/etc/exports

/dir localhost(insecure,rw,sync,no_subtree_check,no_root_squash,no_all_squash)

我确保防火墙没有阻止它:

[SERVER]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client nfs
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

7475在客户端,我通过选择随机源端口和目标(NFS 服务器 IP 和 NFS 端口)使用 PuTTY 设置远程隧道10.2.10.14:2049。事件日志确认它有效:

2020-02-04 12:07:48 Requesting remote port 7475 forward to 10.2.10.14:2049
2020-02-04 12:07:48 Remote port forwarding from 7475 enabled

以下是我尝试安装时发生的情况:

[CLIENT]# mount -v -t nfs -o port=7475 localhost:/dir /dest
mount.nfs: timeout set for Tue Feb  4 12:09:53 2020
mount.nfs: trying text-based options 'port=7475,vers=4,addr=127.0.0.1,clientaddr=127.0.0.1'
mount.nfs: mount(2): Permission denied
mount.nfs: access denied by server while mounting localhost:/dir

PuTTY 事件日志产生以下输出:

2020-02-04 12:07:31 Received remote port localhost:7475 open request from 127.0.0.1:962
2020-02-04 12:07:31 Attempting to forward remote port to 10.2.10.14:22
2020-02-04 12:07:31 Forwarded port opened successfully
2020-02-04 12:07:31 Forwarded port closed

关于如何让 NFS 在此处工作,您有什么想法或故障排除技巧吗?我尝试查看tcpdump,但无法真正理解输出。不寻求sshfs解决方案

答案1

这是我犯的一个愚蠢的错误。我当时正在遵循这里,但似乎(我不完全理解本地端口转发)因为我的是一个远程隧道,而不是像说明,我不得不改口/etc/exports说:

/dir *(insecure,rw,sync,no_subtree_check,no_root_squash,no_all_squash)

可能并非所有这些都是必要的。不知何故,我认为执行 SSH 隧道会将客户端伪装成 NFS 服务器,但它似乎只是重新路由,所以这就是为什么导出到localhost拒绝访问客户端服务器的原因。

我认为如果 NFS 仅向那些能够通过 SSH 隧道连接到它的人导出,这可能是安全的。但事实并非如此,这对我来说太不安全了,因为 NFS 似乎没有简单的密码保护,所以我将使用 samba 共享。

相关内容