大致实现步骤:
1.配置WAF防火墙接入网站(配置网站域名、协议类型、服务器地址、协议端口、负载算法)
2.生成WAF CNAME域名地址
3.在WAF网站接入中配置HTTPS证书,采用HTTPS方式访问网站。
4.将CDN的回源地址调整为WAF的CNAME地址,回源到WAF。
5.将将域名的DNS解析记录指向CDN的域名地址。
KodCloud是以HTTPS方式访问的,因此CDN、WAF、SLB都需要配置HTTPS,如果网站部署强转HTTPS,那么WAF回源SLB的端口号可以使用80。
当前的网站架构为用户请求云盘系统,DNS会将域名解析到CDN提供的域名服务器,当请求的数据在CDN中不存在时,会向SLB回源获取数据。
我们要为KodCloud云盘系统接入WAF应用防火墙,保障网站安全。
接入WAF后的架构图如下所示:DNS—>CDN加速—>数据回源到WAF—>数据回源到SLB。
需要配置网站接入、WAF回源、配置HTTPS。
1)配置网站接入方式
点击网站接入—>域名列表—>网站接入。
接入方式为Cname手动接入。
2)填写网站的信息
1)填写网站域名:kodcloud.jiangxl.com.cn
2)协议类型勾选HTTP和HTTPS以及HTTP2
3)勾选启用回源SNI与实际请求host保持一致(如果负载均衡器中有多个项目,这一项一定要勾选,跟随源地址转发)
4)服务器地址也就是要保护的地址、数据回源地址,这里填写负载均衡器的地址:47.95.212.251
5)服务器端口号HTTP为80、HTTPS为443
6)负载均衡算法选择轮询
7)WAF前是否有七层代理选择是,WAF前面会有CDN加速器,勾选取X-Forwarded-For中的第一个IP作为客户端源IP。
8)配置完成后点击下一步。
配置完WAF网站接入后,在第二步会提供出WAF的CNAME地址,我们要将CNAME地址配置在CDN加速器中,此时先不进行配置。
WAF的CNAME地址:7wciklcupr28znnhkwrghcsgdjahwszt.yundunwaf1.com
紧接着点击下一步完成网站接入WAF防火墙的配置,第三步会提示我们将WAF的地址加入到白名单,避免误拦。
网站接入WAF时选择了HTTPS协议,此时,需要在WAF防火墙中配置HTTPS证书,否则会无法访问程序。
1)在网站接入中找到kodcloud的网站,在源站信息一列点击上传证书。
2)选择已有证书—>选中网站的域名证书即可
3)证书添加完成。
在开始配置WAF时是没有这个选项的,当WAF配置完成后点击编辑时才有这个功能。
在网站接入列表中找到我们的网站点击操作一栏的编辑按钮。
进入编辑页面后,找到协议类型—>勾选开启HTTP回源,此时WAF回源SLB就会采用HTTP的方式。
要想让WAF采用HTTP的方式回源,必须要在SLB中关闭HTTP强转,否则网站请求会一直处于重定向状态导致网站无法访问
由于我的网站是强转HTTPS,这里就不开启HTTP方式回源了。
1)进入CDN的域名管理页面—>基本设置—>找到之前添加的源站信息—>编辑。
2)将源站信息修改为源站域名—>填写WAF的CNAME域名地址—端口使用443。
3)CDN回源指向WAF配置完成。
解析在前面已经将域名指向了CDN的域名。
此时kodcloud的网站架构已经接入了WAF防火墙,我们来测试一下网站是否能正常打开。
网站打开没问题。
目前网站接入WAF防火墙是可以正常访问的,但是我们并不能看出与之前有什么效果,我们现在来模拟网站共计,观察WAF的作用。
我们来模拟一个xss攻击,在我网站域名后面加上?alert('xss')
模拟xss公攻击。
https://kodcloud.jiangxl.com.cn/index.php?alert(%27xss%27)
多访问几次就会出现如下图所示的页面,可以看到异常流量已经被WAF拦截了。
这个用户的电脑多次尝试攻击我们的网站,已经被WAF拉入了黑名单,即使是正常的访问也无法成功。
高频率的工具kodcloud网站,会被WAF拦截并封禁,如上图所示,我们也可以人为解除封禁。
点击网站防护—>高频WEB攻击封禁—>解封当前封禁IP即可。
再次刷新网站即可正常访问。
在WAF的总览中可以观察WAF拦截了多少入侵防护以及流量分析。
在安全报表中也可以浏览。