你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
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 部署为教程或测试的一部分,建议在使用完此资源后将其删除。
为了简单起见,此测试环境中使用单个中央虚拟网络。 出于生产目的,中心辐射型拓扑 搭配对等虚拟网络更为常见。
工作角色虚拟机是一个通过防火墙发送 HTTP/S 请求的客户端。
先决条件
如果没有 Azure 订阅,请在开始之前创建一个免费帐户。
部署基础结构
模板为启用了 IDPS、TLS 检查、URL 筛选和 Web 类别的 Azure 防火墙高级版部署完整的测试环境:
- 新的 Azure 防火墙高级版和防火墙策略,具有预定义的设置,用于轻松验证其核心功能(IDPS、TLS 检查、URL 筛选和 Web 类别)。
- 所有依赖项,包括 Key Vault 和托管标识。 在生产环境中,你可能已有这些资源,并且不需要在同一模板中。
- 在创建的密钥保管库上生成和部署的自签名根 CA。
- 在 Windows 测试虚拟机 (WorkerVM) 上生成和部署的派生中间 CA。
- 还部署了 Bastion 主机(BastionHost),你可以使用它连接到 Windows 测试计算机(WorkerVM)。
测试防火墙
现在,可以测试 IDPS、TLS 检查、Web 筛选和 Web 类别。
添加防火墙诊断设置
若要收集防火墙日志,请添加诊断设置以收集防火墙日志。
- 选择 DemoFirewall。 在“监视”下,选择“诊断设置”。
- 选择“添加诊断设置”。
- 对于 诊断设置名称,请输入 fw-diag。
- 在 日志下,选择 AzureFirewallApplicationRule 和 AzureFirewallNetworkRule。
- 在“目标详细信息”下选择“发送到 Log Analytics 工作区”。
- 选择“保存”。
IDPS 测试
若要测试 IDPS,请使用适当的服务器证书部署自己的内部测试 Web 服务器。 此测试包括向 Web 服务器发送恶意流量,因此不要在公共 Web 服务器上执行此测试。 有关 Azure 防火墙高级版证书要求的详细信息,请参阅 Azure 防火墙高级版证书。
用于 curl 控制各种 HTTP 标头并模拟恶意流量。
对 HTTP 流量进行 IDPS 测试
在 WorkerVM 虚拟机上,打开管理员命令提示符窗口。
在命令提示符处键入以下命令:
curl -A "HaxerMen" <your web server address>你会看到 Web 服务器响应。
转到 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”}注意
可能需要一段时间日志中才会开始显示数据。 至少等待几分钟,以便日志开始显示数据。
为 2032081 添加签名规则:
- 选择“DemoFirewallPolicy”,然后在“设置”下选择“IDPS”。
- 选择“签名规则”选项卡。
- 在“签名 ID”下,在打开的文本框中键入“2032081”。
- 在模式下,选择拒绝。
- 选择“保存”。
- 等待部署完成,然后再继续。
在 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转到 Azure 门户中的监视日志,查找被阻止的请求的消息。
测试 IDPS 对 HTTPS 流量的检测能力
使用 HTTPS(而不是 HTTP)重复这些 curl 测试。 例如:
curl --ssl-no-revoke -A "HaxerMen" <your web server address>
会看到与 HTTP 测试相同的结果。
TLS 检查和 URL 筛选
请按照以下步骤测试 TLS 检查和 URL 筛选。
编辑防火墙策略的应用规则,并在
AllowWeb规则集合中添加一个名为AllowURL的新规则。 配置目标 URLwww.nytimes.com/section/world、源 IP 地址 *、目标类型 URL、选择 TLS 检查和协议 http、https。部署完成后,在 WorkerVM 上打开浏览器并转到
https://www.nytimes.com/section/world。 验证 HTML 响应是否按预期显示在浏览器中。在 Azure 门户中,可以在应用规则监视日志中查看完整 URL:
某些 HTML 页面可能看起来不完整,因为它们引用了拒绝的其他 URL。 若要解决此问题,请使用以下方法:
如果 HTML 页面包含指向其他域的链接,请将这些域添加到授予对这些 FQDN 访问权限的新应用程序规则。
如果 HTML 页面包含指向子链接的链接,请修改规则并在 URL 后加上星号。 例如:
targetURLs=www.nytimes.com/section/world*或者,向规则添加新 URL。 例如:
www.nytimes.com/section/world, www.nytimes.com/section/world/*
网络类别测试
创建应用程序规则以允许访问体育网站。
在门户中打开资源组,并选择“DemoFirewallPolicy”。
选择 “应用程序规则”,然后选择“ 添加规则集合”。
对于 名称,请输入 GeneralWeb。 输入 103 作为 优先级。 对于 规则集合组,请选择 DefaultApplicationRuleCollectionGroup。
在 “规则”下,输入 AllowSports 作为 名称。 输入*源。 输入 http,https for Protocol。 选择 TLS 检查。 对于 “目标类型”,请选择 “Web 类别”。 对于 “目标”,请选择“ 运动”。
选择 添加 。
部署完成后,转到 WorkerVM,打开 Web 浏览器并浏览到
https://www.nfl.com。可以看到 NFL 网页,应用程序规则日志显示 Web 类别:运动 规则已匹配,并且允许请求。