练习 - 测试 Front Door 和 WAF 策略

已完成

最后一步是测试 Front Door 环境,并验证路由规则是否已正确配置为定向 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 服务器的名称显示在页面上,告知你哪个实例正在为请求提供服务。

    响应 Web 浏览器请求的 Web 服务器 1 的屏幕截图。

  3. 在键盘上按 F5 几次刷新浏览器。 请注意服务器名称在 webServer1webServer2 之间来回更改。 这两个 Web 服务器都位于同一区域,并且存在类似的延迟。 因此,这两个服务器都有机会为请求提供服务。

    响应 Web 浏览器请求的 Web 服务器 2 的屏幕截图。

测试路由

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

  1. 若要测试车辆注册网站的其他页面的路线,请选择 “注册车辆”。

    Web 服务器 1 注册车辆链接的屏幕截图。

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

    车辆注册页的屏幕截图。

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

    许可证续订主页的屏幕截图。

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

    续订许可证页的屏幕截图。

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

测试安全策略

  1. 下载并安装 Go for Windows。 在安装过程中使用所有默认设置。 需要 Go 才能运行 GoTestWAF 应用程序。

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

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

    使用 Git 克隆 gotestwaf 存储库的屏幕截图。

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

    使用 Git 将目录更改为 gotestwaf 文件夹的屏幕截图。

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

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

    使用 Git 运行 GoTestWAF 并显示 999 状态代码的屏幕截图。

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