Azure Vnet:在没有 Azure 防火墙的情况下控制到 fqdn 的流量
Azure Vnet: Control traffic to fqdn without Azure Firewall
我已经在 Microsoft azure 上创建了一个 vnet 用于开发目的。 vnet按开发分为子网,即后端、前端或数据库。
谁能帮我理解如何控制VM的出站流量,使VM只能根据开发要求发送流量?例如,前端子网中的 VM 应该只将流量发送到 angular.js CDN,而不是其他任何地方;同样,后端的 VM 应该只将流量发送到 maven 存储库。
我知道这可以使用 azure 防火墙来实现,但是由于我的团队很小并且 VM 不是 24 小时使用的,防火墙对我来说是一个太昂贵的选择
因此,您希望能够基于 FQDN/destination 域控制流量。我假设您主要关心的是成本,因此您可能需要自己构建一个基于 IaaS 的解决方案,或者从 Azure Marketplace 获取一个。
您可以在 B1ls/B1s Linux VM 上设置一个开源转发代理,例如 Squid Proxy,它相对容易设置并且非常便宜。然后,您会将所有请求转发给 Squid 并在 Squid 上管理一个 allow/deny 列表。但是,代理通常对 HTTPS 的支持有限。
您需要一个解决方案,它还可以 intercept/decrypt 您的流量来识别机器尝试连接的 FQDN。幸运的是,Squid 代理 v3.5 及更高版本 SslBump Peek and Splice 可能对此有所帮助。
现在,如果上述方法不适合您,您可能想要探索开源防火墙,例如 pfsense,您可以再次将其安装在 VM 上。
使用上述两种 IaaS 解决方案的优势在于,您可以在不使用时将它们关闭 - 按照与应用程序 VM 类似的时间表,进一步降低总体成本。
我已经在 Microsoft azure 上创建了一个 vnet 用于开发目的。 vnet按开发分为子网,即后端、前端或数据库。
谁能帮我理解如何控制VM的出站流量,使VM只能根据开发要求发送流量?例如,前端子网中的 VM 应该只将流量发送到 angular.js CDN,而不是其他任何地方;同样,后端的 VM 应该只将流量发送到 maven 存储库。
我知道这可以使用 azure 防火墙来实现,但是由于我的团队很小并且 VM 不是 24 小时使用的,防火墙对我来说是一个太昂贵的选择
因此,您希望能够基于 FQDN/destination 域控制流量。我假设您主要关心的是成本,因此您可能需要自己构建一个基于 IaaS 的解决方案,或者从 Azure Marketplace 获取一个。
您可以在 B1ls/B1s Linux VM 上设置一个开源转发代理,例如 Squid Proxy,它相对容易设置并且非常便宜。然后,您会将所有请求转发给 Squid 并在 Squid 上管理一个 allow/deny 列表。但是,代理通常对 HTTPS 的支持有限。
您需要一个解决方案,它还可以 intercept/decrypt 您的流量来识别机器尝试连接的 FQDN。幸运的是,Squid 代理 v3.5 及更高版本 SslBump Peek and Splice 可能对此有所帮助。
现在,如果上述方法不适合您,您可能想要探索开源防火墙,例如 pfsense,您可以再次将其安装在 VM 上。
使用上述两种 IaaS 解决方案的优势在于,您可以在不使用时将它们关闭 - 按照与应用程序 VM 类似的时间表,进一步降低总体成本。