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

2023-11-19

大致实现步骤:

​ 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

阿里云CDN架构接入WAF应用防火墙案例实践 的相关文章

  • 网工我劝你,这11种协议报文格式要烂熟于心!

    你们好 我的网工朋友 你最熟悉的报文是啥 TCP UDP 在网络世界里 就如同道路系统让车辆畅通无阻一样 网络协议是确保信息顺畅传输的关键 作为网络工程师 理解网络协议的种类与结构至关重要 今天就和你一起探索一下11种关键协议报文格式啊 包
  • 性能分析与调优: Linux 内存观测工具

    目录 一 实验 1 环境 2 vmstat 3 PSI 4 swapon 5 sar 6 slabtop 7 numstat 8 ps 9 top 10 pmap 11 perf 12 bpftrace 二 问题 1 接口读写报错 2 sl
  • Linux ls命令

    目录 一 配置项 1 1 ls l 1 2 ls a 1 3 ls lrt 1 4 ls ld 二 案例 2 1 查看指定文件夹下文件的数量
  • 阿里云2核4G服务器优惠价格30元3个月?小心坑

    2024年阿里云2核4G服务器优惠价格30元3个月 活动 https t aliyun com U bLynLC 配置为云服务器ECS经济型e实例ecs e c1m2 large 3M固定带宽 系统盘为40GB ESSD Entry 活动打
  • 数据采集才是MES系统的核心内容

    一 数据采集在MES管理系统中的应用 1 设备数据采集 MES管理系统通过与生产设备的连接 可以实时采集设备运行状态 产量 质量等相关数据 这有助于企业及时掌握设备运行状况 优化设备资源配置 提高设备利用率 2 工艺数据采集 MES管理系统
  • Linux 软件安装以及管理

    本篇主要记录常用的软件安装和管理方式 主要是 yum rpm dnf apt pip 大致都是一样的 主要是部分软件提供了解决依赖的功能 内容不包括源码安装 源码安装情况相对比较复杂 后续有时间再补充 约定 案例所用模板软件均为 pytho
  • 如何解读服务器的配置和架构?

    在当今数字化时代 服务器作为企业或组织的重要基础设施 其配置和架构对于保障业务的稳定运行至关重要 如何解读服务器的配置和架构 成为了一个备受关注的话题 本文将围绕服务器配置和架构的解读进行深入探讨 帮助读者更好地理解服务器的性能 扩展性和安
  • CCSC,一种CPU架构

    core circuit separate computer 核与执行电路的分离 最初是为了省电 用寄存器实现这种分离 V寄存器控制着执行电路的供电 V 0则不供电 进入省电模式 V 1则供电 进入工作模式 P寄存器是parameter r
  • 2种方法,教你使用Python实现接口自动化中的参数关联

    通常在接口自动化中 经常会参数关联的问题 那么什么是参数关联 参数关联就是上一个接口的返回值会被下一个接口当做参数运用 其中Python中可以实现参数关联的方法有很多种 今天小编给大家介绍下 如何通过Python来实现接口自动化中的参数关联
  • Jenkins 插件下载速度慢、安装失败了!我教你怎么解决!

    Jenkins部署完毕 如果不安装插件的话 那它就是一个光杆司令 啥事也做不了 所以首先要登陆管理员账号然后点击系统管理再点击右边的插件管理安装CI CD必要插件 但是问题来了 jenkins下载插件速度非常慢 而且经常提示下载插件失败 真
  • 什么是充放电振子理论?

    CHAT回复 充放电振子模型 Charging Reversal Oscillator Model 是一种解释ENSO现象的理论模型 这个模型把ENSO现象比喻成一个 热力学振荡系统 在这个模型中 ENSO现象由三个组成部分 充电 Char
  • 盲猜你不懂H5架构和原生架构的区别

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Kubernetes (十一) 存储——Secret配置管理

    一 简介 从文件创建 echo n admin gt username txt echo n westos gt password txt kubectl create secret generic db user pass from fi
  • 服务器VPS是什么意思?一文了解其含义与重要性

    在今天的数字时代 服务器扮演着至关重要的角色 它们是网站 应用程序和在线业务的基石 但是 你是否听说过VPS 本文将深入探讨什么是服务器VPS 以及为什么它在今天的互联网世界中如此重要 什么是服务器VPS 服务器的基本概念 在我们深入探讨V
  • DockerCompose - 微服务项目部署全过程(最佳实践)

    目录 一 微服务项目部署 1 1 项目介绍 1 2 准备 MySQL 初始化文件 1 3 pom xml 插件 1 4 测试工作 1 5 编写 Dockerflie 文件 1 6 编写 DockerCompose yml 文件 1 7 修改
  • 为什么 requirejs 尝试加载 .map?

    我正在尝试从 CDN 具体来说是 cdnjs 加载脚本 并且在 requirejs 中您必须像这样保留扩展名 require config baseUrl static js paths underscore cdnjs cloudflar
  • jqGrid 有 CDN 吗?

    谁知道有没有CDNjqGrid http www trirand com blog Thanks Here is JQgrid 的 CDN http www jsdelivr com jqgrid 不过 不是最小版本 http www js
  • 如何强制 cdn.rawgit.com 使用更新的文件

    我正在使用 cdn rawgit com 托管项目的一些脚本和 CSS 但无法刷新它 根据常见问题解答 对 cdn rawgit com 的请求通过 MaxCDN 的超快速内容交付网络进行路由 并在第一次加载时永久缓存 这会带来最佳性能并减
  • MathJax `\\` 换行符不渲染。简单地显示`\\`

    我使用 MathJax CDN 当我将其放入我的网页时 Say P k n is the probability of By definition 所有数学都正确呈现 但是 显示为 而不是换行符 并且没有换行符 它只是在同一条线上继续 所以
  • React 包的 CDN 链接以及在使用 React 时如何使用 CDN 中的脚本导入它

    我尝试在没有 NPM 和其他工具的情况下使用 React 而是通过添加 CDN 链接来使用它 但是如何导入依赖包 例如useState hook 如果它是通过另一个脚本标签添加的 那么它的 CDN 链接是什么 下面是我的代码

随机推荐

  • JAVA获取类的类对象的三种方式

    自定义一个类 MyClass 并声明该类的对象 class MyClass MyClass mClass1 new MyClass 1 2 3 在上面说过 Class 类的构造方法是私有的 只有 java 虚拟机可以调用该方法创建该类的对象
  • Linux下Qt 5.15.2源码下载及编译

    一 下载 Qt的官方下载地址 Qt Downloads Qt 5 15 2源码下载路径 archive qt 5 15 5 15 2 single qt everywhere src 5 15 2 zip 二 编译源码 Qt官网提供了编译前
  • Verilog的基础知识

    Verilog的基本介绍 硬件描述语言发展至今已有二十多年历史 当今业界的标准中 IEEE标准 主要有VHDL和Verilog HDL 这两种硬件描述语言 一个设计往往从系统级设计开始 把系统划分成几个大的基本的功能模块 每个功能模块再按一
  • centos6.5linux安装docker之升级内核

    1 没有ssl 安装之 yum y install curl nss openssl 2 升级内核 参考博文https blog csdn net lvshuocool article details 79540617 1 gt 导入pub
  • DTD && Schema

    XML约束简介 XML文档都是自定义标签 所以编写起来比较随意自由 所以我们要给XML文档创建一个规则 我们需要在遵守相应的规则的前提下来编写XML文档 XML约束共有两种形式 DTD Schema DTD 文档类型定义 DTD可以定义文档
  • 【万字总结篇】C++STL常用算法详解(错等年系列)

    写在前面 本小菜鸟是一名热爱编程的大二在校生 目前主要精力放在学习C 数据结构和算法上 目前C 这个专栏的博客我已经总结完了C 常用的容器 内置函数对象 仿函数 还有此篇常用的内置算法 都是一些C STL的内容 因为这部分内容不难 并且需要
  • git fetch & git pull 总结

    一 git fetch git pull 图解 最开始 github 上存放着我们的远程仓库代码 然后在本地通过 git clone 命令 将远程仓库拉取到本地仓库 此时 本地仓库的 origin master 的内容 是远程仓库 mast
  • AS配置NDK开发环境,附CMake、NDK-build构建工具用法

    注意 Android Studio需要是1 3及以上版本 且版本号小于2 2 见文末说明 步骤1 新建一个项目 打开Project Structure 设置Android NDK Location目录 如果没有提前下载NDK包 可打开SDK
  • 分享两种实现图片验证码校验登录方法

    第一种使用ValidateCode实现验证码 ValidateCode是第三方依赖包 我们要先通过命令行引用一下 1 添加jar包到本地仓库 mvn install install file DgroupId cn dsna util im
  • 使用python暴力破解ZIP、7Z 、RAR格式压缩包密码教程

    使用python暴力破解ZIP 7Z RAR格式压缩包密码教程 目录 使用python暴力破解ZIP 7Z RAR格式压缩包密码教程 一 摘要 二 使用zipfile包暴力破解ZIP 7Z格式压缩包密码 三 使用unrar包暴力破解RAR格
  • 面试官问:如何快速开发一个类似微信的聊天系统?

    去年我们公司要我去面试一位候选人 当时刚好我接手了公司的 IM 系统 借这个机会 就问了候选人这个问题 如何快速开发一个类似微信的聊天系统 这个问题的确让候选人回答起来很吃力 从分析 PC 端微信界面的实现到怎么处理框体也业务代码分离 从通
  • hibernate学习之hibernate的入门

    hibernate 可能对于我并不是很陌生 一个基于面向对象来操作SQL语句的框架 也就是一种ORM框架 在Java对象与关系型数据库之间建立某种映射 来实现直接存取Java对象 特点 将对数据库的操作直接转换为Java对象的操作 简化开发
  • flvplayer.swf flv视频播放器使用方法

    今天由于网页上要加入一个视频文件 就研究了一下flv视频播放器flvplayer swf 一 直接在html文件中加载 复制代码代码如下 div div
  • mybatis 加载顺序

    1 加载配置文件 解析配置文件 MyBatis基于XML配置文件创建Configuration对象的过程 2 SqlSessionFactoryBuilder根据传入的数据流生成Configuration对象 然后根据Configurati
  • 最常见的Java框架有哪些?

    Java语言仍然是程最受欢迎的编程语言之一 如果你想进入这个行业 Java可以引导你 很多初学者可能没有系统的了解过Java框架 今日为大家整理一下常见的Java框架有哪些 Java框架 一 Spring框架 Spring框架是Java后端
  • 区块链数字签名、验签,以及椭圆曲线算法JS库—elliptic的使用

    目录 一 简介 二 椭圆曲线密码elliptic 1 安装elliptic和js sha3 2 Keccak256 3 签名过程 一 简介 数字签名是一种将类似现实世界中物理签名 盖章
  • 更改element button 按钮颜色

    在全局的index scss里面改 显示时按钮样式 el button inblack 需要更改的按钮类型 background 060606 important border color 060606 important color ff
  • AppDomain一——基本原理

    一 问题的提出 技术一定是为了解决某个应用场景的问题而产生的 很多时候 我们都想使用 开发 USB式 热插拔 的应用 例如 开发一个WinForm应用 并且这个WinForm应用能允许开发人员定制扩展插件 我们不能关闭程序 在把新的dll替
  • vue项目部署方式:tomcat部署和nginx部署

    LINUX 发布 VUE项目 关于vue部署 1 nginx转发 一般项目前后端分离得话 都会用nginx作为反向代理转发的 因为项目要兼容ie9 使用axios发ajax请求的时候 不能通过CORS解决跨域的问题 所以尝试部署nginx作
  • 阿里云CDN架构接入WAF应用防火墙案例实践

    文章目录 1 网站架构变化 2 配置WAF应用防火墙 2 1 配置网站接入WAF防火墙 2 2 WAF防火墙生成CNAME地址 2 3 配置WAF防火墙HTTPS证书 2 4 WAF防火墙开启HTTP回源SLB 3 配置CDN加速器回源WA