通过联合部署DDoS高防和WAF提升网站防护能力

如果您的网站遭受的攻击既有流量型攻击,又混杂精巧的Web应用层攻击时(例如SQL注入、跨站脚本攻击、命令注入等)时,推荐您组合使用阿里云DDoS高防和Web 应用防火墙 WAF(Web Application Firewall),通过多层次的安全防护对抗多种潜在威胁。本文介绍如何同时部署DDoS高防和WAF。

网络架构

DDoS高防和WAF同时部署时采用以下网络架构:DDoS高防(入口层,防御DDoS攻击)->WAF(中间层,防御Web应用攻击)->源站服务器(ECS、SLB、VPC、IDC等)。网站业务流量会先经过DDoS高防清洗,然后转发到WAF过滤Web攻击,最后只有正常的业务流量被转发到源站服务器,保障网站的业务安全和数据安全。业务流量的转发过程如下图所示。

image

注意事项

访问请求将经过多层中间代理才到达源站,源站不能直接获取请求的真实来源IP。如果您需要获取访问请求的真实来源IP,请参见配置DDoS高防后获取真实的请求来源IP

前提条件

步骤一:网站业务接入WAF

支持CNAME接入和云产品接入两种方式,接入前请您详细了解各接入方式的推荐场景。详细信息,请参见接入管理概述

  1. 登录Web应用防火墙3.0控制台。在顶部菜单栏,选择WAF实例的资源组和地域(中国内地非中国内地)。

  2. 在左侧导航栏,单击接入管理

  3. 通过CNAME接入云产品接入,将业务接入WAF。

    1. CNAME接入

      1. CNAME接入页签,单击接入

      2. 配置监听向导页,完成如下配置后,单击下一步

        仅简要介绍各配置项,更详细的配置项介绍,请参见添加域名

        配置项

        配置说明

        域名

        填写您的网站域名。

        协议类型

        选择网站使用的协议类型并填写对应端口。每输入一个端口,按回车确认。

        说明
        • 选中HTTPS后,您还需要将网站域名关联的证书上传到WAF。如果您的网站要同时支持国密SM2算法,您需要上传国密证书。

        • 选中HTTPS并配置证书后,您也可以根据业务需要,设置是否开启HTTP2、是否开启HTTPS的强制跳转、选择TLS协议版本、选择HTTPS加密套件。

        WAF前是否有七层代理(高防/CDN等)

        选择,并设置客户端IP判定方式

        • (默认)取X-Forwarded-For中的第一个IP作为客户端源IP

          WAF默认读取请求Header字段X-Forwarded-For(XFF)中的第一个IP地址作为客户端IP。

        • 【推荐】取指定Header字段中的第一个IP作为客户端源IP,避免XFF伪造

          如果您的网站业务已通过其他代理服务的设置,规定将客户端源IP放置在某个自定义的Header字段(例如,X-Client-IP、X-Real-IP),则您需要选择该选项,并在指定Header字段框中输入对应的Header字段。

          说明

          推荐您在业务中使用自定义Header存放客户端IP,并在WAF中配置对应Header字段。该方式可以避免攻击者伪造XFF字段,躲避WAF的检测规则,提高业务的安全性。

        更多配置

        根据您的业务,设置是否开启IPv6、是否开启独享IP,选择要使用的防护资源类型。

        资源组

        从资源组下拉列表中选择该域名所属资源组。如果不选择,则默认加入默认资源组

      3. 配置转发向导页,完成如下配置后,单击提交

      4. 配置项

        说明

        负载均衡算法

        源站有多个服务器地址时,根据业务需要设置,以实现负载均衡。

        服务器地址

        填写网站对应的源站服务器的公网IP地址或源站域名,用于接收WAF转发回源的正常业务请求(回源请求)。

        HTTPS高级设置

        根据业务需要,设置是否开启HTTP回源、是否启用回源SNI。

        其它高级设置

        根据业务需要,设置是否启用流量标记、WAF回源到源站的超时时间、回源重试、回源长连接。

      5. 接入完成向导页,获取WAF提供的CNAME地址。

    2. 云产品接入

      具体操作,请参见云产品接入

      如果Web业务已启用阿里云应用型负载均衡(Application Load Balancer,简称ALB)、微服务引擎(Microservices Engine,简称MSE)、函数计算(Function Compute,简称FC)或Serverless 应用引擎 SAE(Serverless App Engine,简称SAE),建议您选择SDK插件接入。如果Web业务已启用阿里云传统型负载均衡(Classic Load Balancer,简称CLB)上、云服务器(Elastic Compute Service,简称ECS),建议您通过反向代理集群接入

步骤二:网站业务接入DDoS高防

  1. 登录DDoS高防控制台

  2. 在顶部菜单栏左上角处,选择地域。

    • DDoS高防(中国内地):选择中国内地地域。

    • DDoS高防(非中国内地):选择非中国内地地域。

  3. 在左侧导航栏,选择接入管理 > 域名接入

  4. 域名接入页面,单击添加网站,按照页面提示完成配置。

    配置项

    说明

    功能套餐

    选择要关联的DDoS高防实例的功能套餐。

    实例

    选择要关联的DDoS高防实例。

    一个网站域名最多可以关联8个DDoS高防实例,且只能关联同一种功能套餐下的多个实例。

    网站

    填写您的网站域名。

    协议类型

    选择网站支持的协议类型。

    说明
    • 选择HTTPS协议时,完成网站配置后,请上传网站域名使用的证书。

    • 选中HTTPS协议后,可以根据需要开启HTTPS的强制跳转、是否开启HTTP回源、是否启用HTTP2。

    启用OCSP

    选择是否启用OCSP(Online Certificate Status Protocol)功能。

    重要

    该功能适用于网站HTTPS业务。如果您已选择的协议类型包含HTTPS,推荐启用该功能。

    服务器地址

    • 域名在WAF上的接入模式为CNAME接入时,选择源站域名并填写步骤一中获取的WAF的CNAME地址。

    • 域名在WAF上的接入模式为云产品接入时,选择源站IP并填写源站服务器的公网IP。

    服务器端口

    根据协议类型,设置源站提供对应服务的端口。

    • HTTP协议、Websocket协议的端口默认为80。

    • HTTPS协议、HTTP2协议、Websockets协议的端口默认为443。

    您可以单击自定义,自定义服务器端口,多个端口间使用半角逗号(,)分隔。

    Cname Reuse

    仅DDoS高防(非中国内地)支持配置该参数。选择是否开启CNAME复用。更多信息,请参见CNAME复用

  5. 复制DDoS高防提供的CNAME地址。

步骤三:修改域名的DNS解析

请将域名解析指向DDoS高防提供的CNAME地址。以域名DNS托管在阿里云云解析DNS为例介绍,使用其他DNS服务商的域名解析服务时请参考配置。

  1. 登录阿里云云解析DNS控制台

  2. 域名解析页面,定位到目标域名,单击操作列的解析设置

  3. 解析设置页面,定位到目标解析记录,单击操作列的修改

    说明

    如果要操作的解析记录不在记录列表中,您可以单击添加记录

  4. 修改记录(或添加记录)页面,选择记录类型CNAME,并将记录值修改为域名对应的DDoS高防CNAME地址(即步骤二中获取到的DDoS高防CNAME地址)。

  5. 单击确认,等待修改后的解析设置生效。

  6. 使用浏览器测试网站访问是否正常。

相关文档