通过 OpenVPN 拒绝 NFS 访问

通过 OpenVPN 拒绝 NFS 访问

我正在尝试访问 NFS 共享。 NFS 共享位于我家里的服务器中,我尝试从本地网络外部访问它。

为了实现这一目标,我在本地网络上启动了 OpenVPN 服务器。这工作正常,我可以从本地网络外部连接到 VPN,甚至可以 ping 服务器并访问一些仅本地的其他服务。我的 OpenVPN IP 地址是 172.27.232.5。

问题是我无法挂载 NFS 共享。当我连接到 VPN 时,我可以使用 showmount 命令查看共享

showmount -e 192.168.73.2
Export list for 192.168.73.2:
/media/share/kdab     192.168.73.0/24
/media/share/jjcasmar 192.168.73.0/24

但如果我尝试连接到其中任何一个,都会失败。

sudo mount -t nfs4 192.168.73.2:/media/share/jjcasmar /home/jjcasmar/mnt
mount.nfs4: access denied by server while mounting 192.168.73.2:/media/share/jjcasmar

我不明白我的设置有什么问题,而且我的网络不太好。对可能发生的事情有什么想法吗?

ip addr showVPN 连接的结果是

13: tun1: <POINTOPOINT,MULTICAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UNKNOWN group default qlen 100
    link/none 
    inet 172.27.232.5/23 brd 172.27.233.255 scope global tun1
       valid_lft forever preferred_lft forever
    inet6` fe80::b6a9:fff6:dd69:6f7f/64 scope link stable-privacy 
       valid_lft forever preferred_lft forever

如果我理解正确的话,NFS 服务器会拒绝连接,因为虽然我可以在 192.168.73.2 上看到服务器,但我不在该子网上,对吗?

我尝试修改导出以添加172.27.232.0/23,但仍然失败。我也尝试过直接导出到我的 OpenVPN IP,172.27.232.5但没有成功。

答案1

OpenVPN 通常使用路由网络将客户端连接到服务器。例如,尽管您的 LAN 是 192.168.73.0/24,但您连接的客户端可能会被分配 VPN 地址 10.0.0.2。路由允许您的客户端访问 LAN 上的设备。

连接 VPN 时在客户端上运行ip addr( ) 将显示用于 OpenVPN 的子网 - 或者您可以查看 OpenVPN 服务器配置文件(通常位于服务器下)。ip a/etc/openvpn

您可以看到showmountNFS 导出仅提供给 LAN 192.168.73.0/24 上的主机。

您的客户端不在 192.168.73.0/24 上,因此权限被拒绝。解决方案是修改/etc/exports您的服务器以包含对 OpenVPN 子网的访问。

对于 NFS v3,我会做类似的事情,但我不知道 NFS v4 还需要多少:

/media/share/kdab     192.168.73.0/24 172.27.232.0/23
/media/share/jjcasmar 192.168.73.0/24 172.27.232.0/23

同样,对于 NFS v3,我会运行,exportfs -var但我不知道是否仍然需要(我从未使用过 NFS v4 - 太复杂,没有明显的收益)。

相关内容