如何将 OpenVPN 客户端的连接限制为单个系统用户?

pLu*_*umo 9 networking vpn multiuser openvpn

我有一个多用户设置 (Ubuntu)(同时登录不同 TTY 的用户)。

当我从一个帐户使用 连接到 NordVPN 时nordvpn connect,所有用户现在都通过该 VPN 连接到互联网。

如何以某种方式分离用户的网络,这意味着当我连接到 VPN 时,只有当前用户受到影响,并且该用户的所有连接都应该使用 VPN?


  • nordvpn只是一个包装器openvpn,可以使用 直接连接openvpn,因此纯粹的openvpn解决方案也会有所帮助。
  • 用户通过sudo.
  • 我对脚本解决方案没问题。

dir*_*rkt 1

部分答案(需要更多详细信息):

区分“正常”互联网连接和 NordVPN 互联网连接的一种方法是创建一个网络命名空间,nordvpn在此命名空间中启动,然后启动应在此命名空间中使用此 VPN 的所有进程。

详细信息取决于您想要如何使用它:

  • 如果您有一个始终启动 NordVPN 的用户,您可以在登录时创建该网络命名空间,并在该网络命名空间中为该用户启动所有进程。因此,该用户永远不会有“正常”的互联网连接。

  • 如果您有多个用户都想要使用“正常”互联网连接和 NordVPN 连接,您可以编写一个脚本来创建该命名空间,在其中启动 NordVPN,并为用户提供一个可以启动其他应用程序的终端,或者甚至可能已经在这个命名空间中启动了像网络浏览器这样的应用程序。该脚本将替换该connect命令。

可能还有更多方法可以做到这一点,具体取决于您的要求。因此,请编辑问题并描述您的要求/情况。

您需要 root 权限才能创建命名空间。这意味着您需要将脚本设置为 setuid-root(如果脚本有错误,这可能是一个安全问题),您可能需要授予用户sudo访问权限等。