一,引言

  上一篇我们利用 Azure Front Door 为后端 VM 部署提供流量的负载均衡。因为是演示实例,也没有实际的后端实例代码,只有一个 “Index.html” 的静态页面,那么我们今天直接在我们项目的根目录放置日志文件,如下图所示

而且我们通过 Azure Front Door frontend host 直接就可以访问到项目的根目录的文件了

这样的话就产生了很多问题,比方说我们的项目程序中没有处理根目录的资源,那么有可能导致其他任何人通过Azure Front Door frontend host 连接加上根目录资源文件的名称就可以直接获取到服务器跟目录的文件,这样是很危险的。同时,我们实际的项目代码中也要防止此类的攻击,例如 “SQL注入”、“跨站脚本攻击”等。这个时候,我们就需要学会利用Web Application Firewall 提供集中保护,使其免受常见攻击和漏洞的侵害。

-------------------- 我是分割线 --------------------

1,Azure Front Door(一)为基于.net core 开发的Azure App Service 提供流量转发

2,Azure Front Door(二)对后端 VM 进行负载均衡

3,Azure Front Door(三)启用 Web Application Firewall (WAF) 保护Web 应用程序,拒绝恶意攻击

二,正文

1,创建Azure Web Application Firewall(WAF)

Azure Portal 上点击 “Create a resource”,并且在搜索框中输入“ Web Application Firewall (WAF)” 进行搜索

点击 “Create”

添加/选择参数

Policy For 选择:“Global WAF(Front Door)”

Front door SKU:“Front Door”

Resource group:“Web_Test_FD_RG”

Policy name:“cnbateblogwebwaf”

点击 “Next:Policy settings >” 进行配置策略设置

Mode(模式)选择:“Prevention(保护,预防)”

等待验证完成后,点击 “Create” 进行创建

2,配置 "Web Application Firewall" 拦截规则

首先我们需要添加关联的 Front host 主机,选择 “Setting =》Assocations”,点击 “+ Add frontend host” 添加关联主机

选择上一篇文章中创建的 Azure Front Door “cnbateblogweb”,选择Azure Front Door 的主机 “cnbateblogweb-azurefd-net”,点击 “Add” 进行添加

点击 “Save” 进行保存操作

接下来就需要我们进行配置自定义 WAF 规则了,选择 “Settings =》Custom rules”,点击 “+ Add custom rule”

输入相关参数

Customer rule name:“ProtectTXTRule”

Priority(权重):“100”

Priority(权重):为规则指定唯一的编号,以指定相对于其他自定义规则处理规则的顺序。具有较低值的规则在具有较高值的规则之前进行求值。最佳实践是以100为增量分配数字。

接下来我们配置自定义规则匹配的条件,当请求的Azure Front Door 的 URL 已 “.txt” 为结尾的时候, 重定向流量到 “https://www.baidu.com”,点击 “Add”

添加完成后,点击 “Save” 保存当前自定义策略

3,测试 Web Application Firewall 的拦截威力

正常情况下的访问

如果我们在请求 Azure Front Door Frontend Host 链接中加上 日志文件呢? https://cnbateblogweb.azurefd.net/202103261640.txt

 ok,我们的目的也达成了!

三,结尾

  ok,今天的分享主要是为了演示 Web Application Firewall(WAF)在不需要我们修改任何代码的情况下,截至配置重定向流量,拒绝流量等防护操作,下一篇我们继续讲解 Web Application Firewall (WAF) ,细细分享其中还有那些知识点。本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。

参考资料:Azure Front DoorAzure Web Application Firewall


本文所分享的内容也存在着很多我自己的一些理解,有理解不到位的,还希望多多包涵,并且指出不足之处。