如何允许 VPN 流量进入 Docker 容器

如何允许 VPN 流量进入 Docker 容器

我有以下内容:

                                            Docker Host (public IP 5.6.7.8)
(1) Client (IP 1.2.3.4) <--> (2) OpenVPN in a Container (public IP 5.6.7.8, port 1194)
                             (3) App in a Container (public IP 5.6.7.8, port 1234)

因此,我想从我的手机以客户端身份连接到我的 OpenVPN 服务器,然后连接到我的应用程序(例如 Nextcloud)。这可能是防火墙问题。我想阻止除来自 VPN 的流量之外的所有流量。我尝试了不同的规则和方法来弄清楚我需要做什么。到目前为止,我还没有找到解决方案。

这将阻止到该应用程序的流量:

-A DOCKER-USER -p tcp --dport 1234 -j DROP

这将允许它工作:

-A DOCKER-USER -p tcp -s 1.2.3.4/32 --dport 1234 -j ACCEPT

对我有用的规则并不好,因为我必须添加每个客户端的源 IP。据我所知,所有流量都通过 VPN 路由(例如,我连接到 VPN 后,公共 IP 会发生变化)。

任何帮助都将受到赞赏。

答案1

为什么不直接允许来自 OpenVPN 服务器本身的流量?基本上,您要将 VPN 服务器设置为中间人。

因此,

-A DOCKER-USER -p tcp -s 1.2.3.4/32 --dport 1234 -j ACCEPT

-A DOCKER-USER -p tcp -s [VPN_IPv4_ADDRESS] --dport 1234 -j ACCEPT

相关内容