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 部署为教程或测试的一部分,建议在使用完此资源后将其删除。
为了简单起见,此测试环境中使用单个中央虚拟网络。 出于生产目的,中心辐射型拓扑 搭配对等虚拟网络更为常见。
工作虚拟机是通过防火墙发送 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)。
测试防火墙
现在,可以测试 IDPS、TLS 检查、Web 筛选和 Web 类别。
添加防火墙诊断设置
若要收集防火墙日志,请添加诊断设置以收集防火墙日志。
- 选择 DemoFirewall。 在“监视”下,选择“诊断设置”。
- 选择“添加诊断设置”。
- 对于 诊断设置名称,请输入 fw-diag。
- 在 日志下,选择 AzureFirewallApplicationRule 和 AzureFirewallNetworkRule。
- 在目标详细信息下,选择发送到Log Analytics工作区。
- 选择“保存”。
IDPS 测试
若要测试 IDPS,请使用适当的服务器证书部署自己的内部测试 Web 服务器。 此测试包括向 Web 服务器发送恶意流量,因此不要在公共 Web 服务器上执行此测试。 有关Azure Firewall高级证书要求的详细信息,请参阅 Azure Firewall Premium 证书。
用于 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门户中的“监视”日志,找到阻止的请求的消息。
测试用于 HTTPS 流量的 IDPS
使用 HTTPS(而不是 HTTP)重复这些 curl 测试。 例如:
curl --ssl-no-revoke -A "HaxerMen" <your web server address>
会看到与 HTTP 测试相同的结果。
TLS 检测和 URL 筛选
请按照以下步骤测试 TLS 检查和 URL 筛选。
编辑防火墙策略的应用规则,并在
AllowURL规则集合中添加一个名为AllowWeb的新规则。 配置目标 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 类别:运动 规则已匹配,并且允许请求。
后续步骤
- Azure 门户中的 Azure Firewall Premium