共用方式為

部署和配置 Azure Firewall Premium

Azure Firewall Premium 是下一代防火墙,具有高度敏感和管控环境所需的功能。 它包括以下功能:

  • TLS 检查 - 解密出站流量、处理数据,然后加密数据并将数据发送到目的地。
  • IDPS - 一个网络入侵检测和防护系统(IDPS),可用于监视网络活动是否存在恶意活动、记录有关此活动的信息、报告它,以及选择性地尝试阻止它。
  • URL 筛选 - 扩展Azure Firewall的 FQDN 筛选功能,以考虑整个 URL。 例如,www.contoso.com/a/c,而非 www.contoso.com
  • Web 类别 - 管理员可以允许或拒绝用户访问某些类别的网站,例如赌博网站、社交媒体网站等。

有关详细信息,请参阅 Azure Firewall Premium 功能

使用模板部署包含三个子网的中央虚拟网络(10.0.0.0.0/16)的测试环境:

  • 工作节点子网(10.0.10.0/24)
  • Azure Bastion子网(10.0.20.0/24)
  • 防火墙子网 (10.0.100.0/24)

重要

小时定价从部署 Bastion 的时刻开始计算,而无论出站数据使用情况如何。 有关详细信息,请参阅定价SKU。 如果要将 Bastion 部署为教程或测试的一部分,建议在使用完此资源后将其删除。

为了简单起见,此测试环境中使用单个中央虚拟网络。 出于生产目的,中心辐射型拓扑 搭配对等虚拟网络更为常见。

显示具有辅助角色、Bastion 和防火墙子网的中央虚拟网络的关系图。

工作虚拟机是通过防火墙发送 HTTP/S 请求的客户端。

先决条件

如果没有 Azure 订阅,请在开始前创建 试用订阅

部署基础结构

模板为启用了 IDPS、TLS 检查、URL 筛选和 Web 类别的 Azure Firewall 高级版部署完整的测试环境:

  • 具有预定义设置的新Azure Firewall高级和防火墙策略,以轻松验证其核心功能(IDPS、TLS 检查、URL 筛选和 Web 类别)。
  • 所有依赖项,包括 Key Vault 和托管身份。 在生产环境中,你可能已有这些资源,并且不需要在同一模板中。
  • 在创建的 Key Vault 上生成和部署的自签名的根 CA。
  • 在 Windows 测试虚拟机(WorkerVM)上生成并部署的派生中间证书颁发机构(CA)。
  • 还部署了 Bastion 主机(BastionHost),你可以使用它连接到Windows测试计算机(WorkerVM)。

用于将资源管理器模板部署到 Azure 的按钮。

测试防火墙

现在,可以测试 IDPS、TLS 检查、Web 筛选和 Web 类别。

添加防火墙诊断设置

若要收集防火墙日志,请添加诊断设置以收集防火墙日志。

  1. 选择 DemoFirewall。 在“监视”下,选择“诊断设置”
  2. 选择“添加诊断设置”。
  3. 对于 诊断设置名称,请输入 fw-diag
  4. 日志下,选择 AzureFirewallApplicationRuleAzureFirewallNetworkRule
  5. 目标详细信息下,选择发送到Log Analytics工作区
  6. 选择“保存”。

IDPS 测试

若要测试 IDPS,请使用适当的服务器证书部署自己的内部测试 Web 服务器。 此测试包括向 Web 服务器发送恶意流量,因此不要在公共 Web 服务器上执行此测试。 有关Azure Firewall高级证书要求的详细信息,请参阅 Azure Firewall Premium 证书

用于 curl 控制各种 HTTP 标头并模拟恶意流量。

对 HTTP 流量进行 IDPS 测试

  1. 在 WorkerVM 虚拟机上,打开管理员命令提示符窗口。

  2. 在命令提示符处键入以下命令:

    curl -A "HaxerMen" <your web server address>

  3. 你会看到 Web 服务器响应。

  4. 转到Azure门户中的防火墙网络规则日志,找到类似于以下消息的警报:

    { "msg" : "TCP request from 10.0.100.5:16036 to 10.0.20.10:80. Action: Alert. Rule: 2032081. IDS:
    USER_AGENTS Suspicious User Agent (HaxerMen). Priority: 1. Classification: A Network Trojan was
    detected"}
    

    注意

    可能需要一段时间日志中才会开始显示数据。 至少等待几分钟,以便日志开始显示数据。

  5. 为签名 2032081 添加签名规则:

    1. 选择“DemoFirewallPolicy”,然后在“设置”下选择“IDPS”。
    2. 选择“签名规则”选项卡。
    3. 在“签名 ID”下,在打开的文本框中键入“2032081”。
    4. 在“模式”下,选择“拒绝”。
    5. 选择“保存”。
    6. 等待部署完成,然后再继续。
  6. 在 WorkerVM 上,再次运行 curl 命令:

    curl -A "HaxerMen" <your web server address>

    由于 HTTP 请求现在被防火墙阻止,因此在连接超时过期后会看到以下输出:

    read tcp 10.0.100.5:55734->10.0.20.10:80: read: connection reset by peer

  7. 转到Azure门户中的“监视”日志,找到阻止的请求的消息。

测试用于 HTTPS 流量的 IDPS

使用 HTTPS(而不是 HTTP)重复这些 curl 测试。 例如:

curl --ssl-no-revoke -A "HaxerMen" <your web server address>

会看到与 HTTP 测试相同的结果。

TLS 检测和 URL 筛选

请按照以下步骤测试 TLS 检查和 URL 筛选。

  1. 编辑防火墙策略的应用规则,并在AllowURL规则集合中添加一个名为AllowWeb的新规则。 配置目标 URL www.nytimes.com/section/world、源 IP 地址 *、目标类型 URL、选择 TLS 检查和协议 http、https

  2. 部署完成后,在 WorkerVM 上打开浏览器并转到 https://www.nytimes.com/section/world。 验证 HTML 响应是否按预期显示在浏览器中。

  3. 在Azure门户中,可以在应用程序规则监视日志中查看整个 URL:

    显示 URL 的警报消息

某些 HTML 页面可能看起来不完整,因为它们引用了拒绝的其他 URL。 若要解决此问题,请使用以下方法:

  • 如果 HTML 页面包含指向其他域的链接,请将这些域添加到授予对这些 FQDN 访问权限的新应用程序规则。

  • 如果 HTML 页面包含指向子链接的链接,请修改规则并在 URL 后加上星号。 例如:targetURLs=www.nytimes.com/section/world*

    或者,向规则添加新 URL。 例如:

    www.nytimes.com/section/world, www.nytimes.com/section/world/*

网络类别测试

创建应用程序规则以允许访问体育网站。

  1. 在门户中打开资源组,并选择“DemoFirewallPolicy”。

  2. 选择 “应用程序规则”,然后选择“ 添加规则集合”。

  3. 对于 名称,请输入 GeneralWeb。 输入 103 作为 优先级。 对于 规则集合组,请选择 DefaultApplicationRuleCollectionGroup

  4. “规则”下,输入 AllowSports 作为 名称。 输入*。 输入 http,https for Protocol。 选择 TLS 检查。 对于 “目标类型”,请选择 “Web 类别”。 对于 “目标”,请选择“ 运动”。

  5. 选择 添加

  6. 部署完成后,转到 WorkerVM,打开 Web 浏览器并浏览到 https://www.nfl.com

    可以看到 NFL 网页,应用程序规则日志显示 Web 类别:运动 规则已匹配,并且允许请求。

后续步骤