练习 - 测试 Front Door 和 WAF 策略

已完成

最后一步是测试 Front Door 环境,并验证路由规则是否已正确配置以定向 Web 流量。 我们还希望测试源 Web 服务器的可用性,以及缓存的内容在服务器停机时是否仍可访问。

为车辆登记 Web 应用测试交通流量分布情况

  1. 在 Cloud Shell 中运行以下命令,生成 Front Door 终结点的 URL。

    echo https://$(az afd endpoint show \
        --profile-name vehicleFrontDoor \
        --endpoint-name $endpoint \
        --resource-group $RG \
        --query hostName \
        --output tsv)
    
  2. 使用 Web 浏览器,导航到前一命令返回的 URL 网站。 此 URL 是在 Front Door 配置文件中创建的终结点的地址。 验证显示了车辆登记 Web 应用的主页。 注意,Web 服务器的名称显示在页面上,让你了解正在为请求提供服务的实例。

    Screenshot of web server 1 responding to web browser request.

  3. 在键盘上按几次 F5 可刷新浏览器。 请注意,服务器名称在 webServer1 和 webServer2 之间来回更换。 这两个 Web 服务器位于同一区域,并且具有相似的延迟。 因此,这两个服务器有同等的机会为你的请求提供服务。

    Screenshot of web server 2 responding to web browser request.

测试路由

现在,让我们测试路由配置到每个网站的路由。 你已配置匹配 /VehicleRegistration//VehicleRegistration/* 的路由,以到达 Web 服务器的专用终结点。 将匹配 /LicenseRenewal//LicenseRenewal/* 的请求路由到应用服务。 在此实验室中,Azure Front Door 与源资源之间的通信是专用的,因为连接是通过专用链接服务建立的。

  1. 若要测试车辆登记网站的其他页面的路由,请选择“登记车辆”。

    Screenshot of web server 1 register a vehicle link.

  2. 请注意 URL 已发生更改,以包含路径 /VehicleRegistration/Create。 由于我们有 /VehicleRegistration/* 的匹配模式,通配符匹配 / 之后的任何内容,并路由至托管车辆登记网站的 Web 服务器。

    Screenshot of vehicle registration page.

  3. 接下来,让我们测试到驾照续期网站的路由。 将路径从 /VehicleRegistration/Create 更改为 /LicenseRenewal/。 此路径路由到应用服务源。

    Screenshot of license renewal home page.

  4. 选择“驾照续期”,可看到路径更改为 /LicenseRenewal/Create。 与车辆登记的路由一样,有一种 /LicenseRenewal/* 的匹配模式,它有一个通配符来匹配 / 之后的任何内容并将该流量定向到应用服务。

    Screenshot of renew a license page.

使用此配置,可以通过 Front Door 将用户定向到这两个网站。 可以设置易记的自定义域,并将用户定向到正确的页面以满足其需求。 使用 Front Door,可以扩展至托管多个网站,启用缓存以提高静态资源的性能,并提供高度可缩放和可用的 Web 应用程序。

测试安全策略

  1. 下载并安装适用于 Windows 的 GO。 在安装过程中使用所有默认设置。 需要 Go 以运行 GoTestWAF 应用程序。

  2. 下载并安装适用于 Windows Git。 在安装过程中使用所有默认设置。 需要使用 Git 将 gotestwaf 存储库克隆到本地计算机。

  3. 安装适用于 Windows 的 GO 和 Git 后,打开 Git Bash 并运行 git clone https://github.com/wallarm/gotestwaf.git 以将 GoTestWAF 文件下载到本地计算机。

    Screenshot of cloning the gotestwaf repository with Git.

  4. 使用 cd gotestwaf 命令将目录更改为 gotestwaf 文件夹。

    Screenshot of changing directory to gotestwaf folder with Git.

  5. 现在运行以下命令来测试安全策略是否能正常运作。 将“EVALUATE_SECURITY_SOLUTION_URL”替换为本单元开头的终结点 URL<>。

    go run ./cmd --url=<EVALUATED_SECURITY_SOLUTION_URL> --verbose
    
  6. 如果正确配置了 WAF 策略设置,则应在输出中看到 Baseline attack status code: 999。 此响应状态代码与 WAF 阻止请求时配置的响应状态代码相同。

    Screenshot of running GoTestWAF with Git and displaying 999 status code.

现在,你拥有一个功能齐全的机动车 Web 应用程序,该应用程序受 Web 应用程序防火墙 (WAF) 策略保护。