你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

部署和配置 Azure 防火墙高级版

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

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

有关详细信息,请参阅 Azure 防火墙高级版功能

使用模板部署包含三个子网的中央虚拟网络(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 防火墙高级版部署完整的测试环境:

  • 新的 Azure 防火墙高级版和防火墙策略,具有预定义的设置,用于轻松验证其核心功能(IDPS、TLS 检查、URL 筛选和 Web 类别)。
  • 所有依赖项,包括 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 防火墙高级版证书要求的详细信息,请参阅 Azure 防火墙高级版证书

用于 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 门户中的监视日志,查找被阻止的请求的消息。

测试 IDPS 对 HTTPS 流量的检测能力

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

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

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

TLS 检查和 URL 筛选

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

  1. 编辑防火墙策略的应用规则,并在AllowWeb规则集合中添加一个名为AllowURL的新规则。 配置目标 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 类别:运动 规则已匹配,并且允许请求。

后续步骤