阿里云CDN架构接入WAF应用防火墙案例实践

2023-09-13 09:55:26

大致实现步骤:

​ 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。

1.网站架构变化

当前的网站架构为用户请求云盘系统,DNS会将域名解析到CDN提供的域名服务器,当请求的数据在CDN中不存在时,会向SLB回源获取数据。

image-20220216140907700

我们要为KodCloud云盘系统接入WAF应用防火墙,保障网站安全。

接入WAF后的架构图如下所示:DNS—>CDN加速—>数据回源到WAF—>数据回源到SLB。

image-20220216135147051

2.配置WAF应用防火墙

需要配置网站接入、WAF回源、配置HTTPS。

2.1.配置网站接入WAF防火墙

1)配置网站接入方式

点击网站接入—>域名列表—>网站接入。

接入方式为Cname手动接入。

image-20220216142958937

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)配置完成后点击下一步。

image-20220216143315220

2.2.WAF防火墙生成CNAME地址

配置完WAF网站接入后,在第二步会提供出WAF的CNAME地址,我们要将CNAME地址配置在CDN加速器中,此时先不进行配置。

WAF的CNAME地址:7wciklcupr28znnhkwrghcsgdjahwszt.yundunwaf1.com

image-20220216144901826

紧接着点击下一步完成网站接入WAF防火墙的配置,第三步会提示我们将WAF的地址加入到白名单,避免误拦。

image-20220216145005968

2.3.配置WAF防火墙HTTPS证书

网站接入WAF时选择了HTTPS协议,此时,需要在WAF防火墙中配置HTTPS证书,否则会无法访问程序。

1)在网站接入中找到kodcloud的网站,在源站信息一列点击上传证书。

image-20220216145305814

2)选择已有证书—>选中网站的域名证书即可

image-20220216145446420

3)证书添加完成。

image-20220216145522772

2.4.WAF防火墙开启HTTP回源SLB

在开始配置WAF时是没有这个选项的,当WAF配置完成后点击编辑时才有这个功能。

在网站接入列表中找到我们的网站点击操作一栏的编辑按钮。

进入编辑页面后,找到协议类型—>勾选开启HTTP回源,此时WAF回源SLB就会采用HTTP的方式。

要想让WAF采用HTTP的方式回源,必须要在SLB中关闭HTTP强转,否则网站请求会一直处于重定向状态导致网站无法访问

image-20220216145757153

由于我的网站是强转HTTPS,这里就不开启HTTP方式回源了。

3.配置CDN加速器回源WAF防火墙

1)进入CDN的域名管理页面—>基本设置—>找到之前添加的源站信息—>编辑。

image-20220216150219433

2)将源站信息修改为源站域名—>填写WAF的CNAME域名地址—端口使用443。

image-20220216150423252

3)CDN回源指向WAF配置完成。

image-20220216150502407

4.将域名DNS解析指向CDN的域名

解析在前面已经将域名指向了CDN的域名。

image-20220216151232733

5.测试网站是否能正常访问

此时kodcloud的网站架构已经接入了WAF防火墙,我们来测试一下网站是否能正常打开。

网站打开没问题。

image-20220216153312704

6.模拟攻击观察WAF的作用

目前网站接入WAF防火墙是可以正常访问的,但是我们并不能看出与之前有什么效果,我们现在来模拟网站共计,观察WAF的作用。

我们来模拟一个xss攻击,在我网站域名后面加上?alert('xss')模拟xss公攻击。

https://kodcloud.jiangxl.com.cn/index.php?alert(%27xss%27)

多访问几次就会出现如下图所示的页面,可以看到异常流量已经被WAF拦截了。

image-20220216154109511

这个用户的电脑多次尝试攻击我们的网站,已经被WAF拉入了黑名单,即使是正常的访问也无法成功。

image-20220216154725078

7.解除WAF的封禁的IP

高频率的工具kodcloud网站,会被WAF拦截并封禁,如上图所示,我们也可以人为解除封禁。

点击网站防护—>高频WEB攻击封禁—>解封当前封禁IP即可。

image-20220216155408674

再次刷新网站即可正常访问。

image-20220216155524318

8.查看WAF的防护记录

在WAF的总览中可以观察WAF拦截了多少入侵防护以及流量分析。

image-20220216154832313

在安全报表中也可以浏览。

image-20220216154936013

更多推荐

MySQL-MHA

1、什么是MHAMHA(MasterHighAvailability)是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。MHA的出现就是解决MySQL单点的问题。MySQL故障切换过程中,MHA能做到0-30秒内自动完成故障切换操作。MHA能在故障切换的过程中最大程度上保证数据的一致性,以达到真正意义上的高可

UVA-1343 旋转游戏 题解答案代码 算法竞赛入门经典第二版

GitHub-jzplp/aoapc-UVA-Answer:算法竞赛入门经典例题和习题答案刘汝佳第二版题目其实不难,但是耗费了我较多时间。这种题关键就是在于找到约束条件,我在DFS的基础上,试了很多种策略:1.对3种数字,每种数字递归遍历一次,这样每次只需要关注一种数字的变化,情况更少。2.使用一个longlong类型

如何自动获取短信验证码?

点击下方关注我,然后右上角点击...“设为星标”,就能第一时间收到更新推送啦~~~这篇文章通过解决实际项目开发中遇到的如何自动获取短信验证码的问题,进一步讲述在Java中如何使用正则。Java中如何使用正则Java中正则相关类位于java.util.regex包下,主要使用2个类,如下:Pattern类:Pattern

tokio::net学习

tokio::net该模块包含TCP/UDP/Unix网络类型,类似于标准库,可用于实现网络协议。networkingprotocolsOrganizationTcpListenerandTcpStreamprovidefunctionalityforcommunicationoverTCPUdpSocketprovi

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 7- 完成简单视图解析

😀前言自己实现SpringMVC底层机制系列之-实现任务阶段7-完成简单视图解析🏠个人主页:尘觉主页🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉在csdn获奖荣誉:🏆csdn城市之星2名⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣💓Java全栈群星计

卷积神经网络中的 Full、Same 和 Valid 卷积

文章目录卷积神经网络概述Full卷积Same卷积Valid卷积卷积模式的选择代码示例结论🎉欢迎来到AIGC人工智能专栏~卷积神经网络中的Full、Same和Valid卷积☆*o(≧▽≦)o*☆嗨~我是IT·陈寒🍹✨博客主页:IT·陈寒的博客🎈该系列文章专栏:AIGC人工智能📜其他专栏:Java学习路线Java面

自己实现 SpringMVC 底层机制 系列之-实现任务阶段 4- 完成自定义@Service 注解功能

😀前言自己实现SpringMVC底层机制系列之-实现任务阶段4-完成自定义@Service注解功能🏠个人主页:尘觉主页🧑个人简介:大家好,我是尘觉,希望我的文章可以帮助到大家,您的满意是我的动力😉😉在csdn获奖荣誉:🏆csdn城市之星2名⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣⁣💓

多目标优化算法:基于非支配排序的小龙虾优化算法(NSCOA)MATLAB

一、小龙虾优化算法COA小龙虾优化算法(Crayfshoptimizationalgorithm,COA)由JiaHeming等人于2023年提出,该算法模拟小龙虾的避暑、竞争和觅食行为,具有搜索速度快,搜索能力强,能够有效平衡全局搜索和局部搜索的能力。小龙虾是一种形状类似于虾的甲壳类动物,其甲壳坚硬且颜色丰富。成体的

深度解析NLP文本摘要技术:定义、应用与PyTorch实战

目录1.概述1.1什么是文本摘要?1.2为什么需要文本摘要?2.发展历程2.1早期技术2.2统计方法的崛起2.3深度学习的应用2.4文本摘要的演变趋势3.主要任务3.1单文档摘要3.2多文档摘要3.3信息性摘要vs.背景摘要3.4实时摘要4.主要类型4.1抽取式摘要4.2生成式摘要4.3指示性摘要4.4信息性摘要5.抽

Shell脚本中文英文多语言国际化和命令行批处理(bash sh cmd bat)中定义函数的简单写法

文章目录命令行脚本参考-bat命令行脚本参考-bash值得学习的知识点1.识别终端使用的语言2.函数的编写3.获取用户的输入4.bat文件老是乱码怎么办有时候为了方便别人使用,我们会选择去编写各种各样的命令行脚本:给Windows用户编写.batcmd批处理脚本,给macOS、Linux用户编写.shbashshell

鼠标、键盘、窗口监听事件

一、画笔paint//画笔publicclassTestPaint{publicstaticvoidmain(String[]args){newMyPaint().loadFrame();​}}​classMyPaintextendsFrame{​publicvoidloadFrame(){setBounds(200,

热文推荐