可以在 VPN 中信任 IP 吗?

信息安全 虚拟专用网 ip欺骗 打开VPN
2021-08-30 08:59:47

问题

我有几个连接到 OpenVPN 服务器的 linux 客户端。每个客户端都根据其X509 Common Name获得一个永久 IP 。我可以信任这些 IP 吗?

语境

我将Client1Client2连接到Server,它们都在 OpenVPN 网络中:

网络图 - 使用 draw.io 创建

我想设置一个 NFS 共享以允许Client1(独占)访问Server上的某些文件。关于 NFS 和安全性的 TLDP 页面指出,IP 白名单中/etc/export的“不是非常安全”。这在 VPN 中仍然适用吗?更准确地说,攻击者是否有可能以允许访问 NFS 共享的方式欺骗或接管Client1的 IP 地址:

  • 如果他拥有Client2凭据的副本?
  • 如果他对Client2有 root 访问权限
  • 如果他可以物理访问Client2

细节

(如果需要,请随意假设不同的软件版本、配置和/或加密级别)

  • OpenVPN 版本是2.2.1 x86_64-linux-gnu
  • 的配置文件/etc/openvpn/server.conf包含,除其他外:

    cipher AES-256-CBC
    client-config-dir ccd
    

    ccd文件夹包含每个客户端的文件,其中包含这一行:

    ifconfig-push 10.20.1.N 10.20.0.1
    

    带有N客户 ID(此处为 1 或 2)

  • ccd-exclusive未在配置文件中启用

  • 签名算法是 SHA1,带有 RSA 加密
  • /etc/exports将允许单个 IP 访问共享:

    /some/dir 10.20.1.1(ro,all_squash,sync,subtree_check)
    

注意:请在问题的评论中指出我的设置的任何其他问题。我肯定会调查它,但为了留下一个可用的工件,让我们保留这个关于 IP 欺骗的线程。非常感谢您的宝贵时间!

1个回答

第一个问题是由于您使用与 VPN 端点和 NFS 共享相同的系统,除非通过其他方式缓解,否则可能会“欺骗”另一端(例如服务器的公共线路)上允许的 IP 地址。(NFS 服务不知道特定 IP 应该在特定接口上)

第二个是,如果其中一台机器以任何方式受到损害,它可以用作 IP 欺骗的中继(可以将 Client2 设置为攻击者和在此过程中欺骗 Client1 的 IP 的服务器之间的“跃点”)

这是一个难以实现的场景,但对于专业攻击者来说是可行的。(例如,他们必须找到 client1 的 IP)并且如果您将 NFS 限制为仅接受通过 openVPN 的连接,同时采用适当的入侵检测。比“ip”过滤器足以将连接限制为仅client1。