通过VPN访问Docker容器和KVM虚拟机

Ubuntu 17.04应该用于托pipe3个Windows VM和多个应用程序,每个应用程序都在Docker容器中分离。 一些容器应该可以从互联网上访问。 使用带有防火墙/前端networking服务器的私有子网似乎没什么大不了的,它将诸如80的端口转发到Docker中相应的后端应用程序。

在Docker中也有一些内部应用程序,例如Portainer 。 这些应用程序用于pipe理,不应该向公众传播。 我的想法:使用OpenVPN创build到服务器的VPN隧道,以便这些服务只能通过VPN访问。 对于Windows服务器,RDP只能通过VPN使用。

但是我不确定,如何处理这个场景的路由。 我的第一个想法是使用不同的子网这种types的应用程序:

Docker容器:192.168.0.1/24

KVM虚拟机:192.168.1.1/24

VPN客户端:192.168.2.1/24

对我来说似乎是一个很好的做法,因为这些types的客户是孤立的。 可能的问题在这里:通过这些networking进行一些通信是必需的,通过VPN访问Docker容器。 我认为当VPN作为Docker容器本身运行时,这是一个问题。

如何解决这个问题? 在主机上安装VPN看起来像一个简单的解决scheme,因为主机知道所有这些networking,这使得他充当路由器。 但从安全angular度来看,似乎并不好。 是否可以将多个networking分配给Docker容器,以便VPN容器也是KVM虚拟机networking的成员,以便通过Docker访问虚拟机? 这是一个更安全的解决scheme吗?