将特定进程限制于 OpenVPN 连接?

将特定进程限制于 OpenVPN 连接?

有没有办法强制特定进程使用 OpenVPN 连接,但允许系统上的所有其他进程使用 Ubuntu Linux 上的默认网络连接?

我在 AWS 中运行一个自定义 Python 应用程序,并尝试将其与外部 PostgreSQL 服务集成。该服务提供了 OpenVPN 配置的 VPN,因此我可以访问他们的 PostgreSQL 服务器。

据我了解,默认情况下,OpenVPN 会强制服务器上的所有网络流量使用 VPN,这通常正是您想要的。但是,由于我的应用程序在 AWS 中运行,AWS 管理自己的安全性并优化了网络路由,如果我将服务器配置为将此 VPN 用于所有用途,那么我将强制所有流量进入此外部连接,这将减慢一切速度,并可能导致安全访问问题,因为服务器对我的其他 AWS 资源的访问似乎来自我的帐户之外。

创建 VPN 网络接口的最简单方法是什么,但要阻止除特定进程之外的所有进程使用它?

答案1

您可以使用route-nopull客户端配置中的命令来阻止创建任何路由条目。之后,您可以手动添加指向数据库服务器的路由条目。这样,访问数据库服务器的所有内容都将使用 VPN,其他所有内容都将使用它们之前使用的任何路由。

例如,假设数据库服务器位于 192.168.111.111(位于 VPN 服务器后面),则需要将其包含在客户端配置中:

route-nopull
route 192.168.111.111 255.255.255.255

相关内容