我有以下内容:
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