【问题标题】:Azure Vnet: Control traffic to fqdn without Azure FirewallAzure Vnet:在没有 Azure 防火墙的情况下控制到 fqdn 的流量
【发布时间】:2021-11-27 19:53:14
【问题描述】:

出于开发目的,我在 Microsoft azure 上创建了一个 vnet。 vnet 按开发划分为子网,即后端、前端或数据库。

谁能帮助我了解如何控制来自 VM 的出站流量,以便 VM 只能根据开发要求发送流量?例如,前端子网中的 VM 应该只将流量发送到 angular.js CDN,而不能发送到其他地方;同样,后端的 VM 应该只向 maven 存储库发送流量。

我知道这可以使用 azure 防火墙来实现,但由于我的团队很小,而且虚拟机不是 24 小时使用的,所以防火墙对我来说太贵了

【问题讨论】:

  • 听起来你真的不需要需要一个(付费的、昂贵的)Azure 防火墙。请调查NSGs。另见Azure network security overview
  • 您的 VM 需要能够连接 Azure 内部和外部的许多资源。更新、补丁、许可、监控、日志记录、授权等。限制出口流量充其量是有问题的。
  • 我的整个基础架构都基于 Azure,并且虚拟机也在 Windows 操作系统上运行。假设我不限制出口流量。开发人员可能会将流量发送到与他们的工作无关的网站,甚至可以通过文件共享服务(如一个驱动器或谷歌驱动器)共享代码。为了避免这些情况,如果我只允许出口流量到 azure 资源和选定的域名(如 cdnjs.cloudflare.com、mvnrepository.com)会更好。
  • 我想用NSG来做这个,但是在NSG中,我只能指定IP地址,不能指定域名,而且由于开发,我将使用CDN,IP地址可能会改变。

标签: azure azure-virtual-machine azure-virtual-network


【解决方案1】:

因此,您希望能够基于 FQDN/目标域控制流量。我将假设您主要关心的是成本,因此您可能需要自己构建一个基于 IaaS 的解决方案,或者从 Azure 市场获取一个。

您可以在 B1ls/B1s Linux VM 上设置像 Squid Proxy 这样的开源转发代理,它相对容易设置并且非常便宜。然后您将所有请求转发给 Squid 并管理 Squid 上的允许/拒绝列表。但是,代理通常对 HTTPS 的支持有限。

您需要一种解决方案,该解决方案还可以拦截/解密您的流量,以识别机器尝试连接的 FQDN。幸运的是 Squid 代理 v3.5 及更高版本有 SslBump Peek and Splice 可能对此有所帮助。

现在,如果上述方法对您不起作用,您可能需要探索像 pfsense 这样的开源防火墙,您可以再次将其安装在 VM 上。

使用上述两种 IaaS 解决方案的优势在于,您可以在不使用时将其关闭 - 按照与应用程序虚拟机类似的时间表,进一步降低总体成本。

【讨论】:

  • 嗨,Ked,您是否有任何文档说明如何拒绝 pfSense 上的所有出站流量并只允许流向特定域的流量
猜你喜欢
  • 2022-10-06
  • 2021-09-12
  • 1970-01-01
  • 1970-01-01
  • 2014-06-12
  • 1970-01-01
  • 2022-08-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多