zoukankan      html  css  js  c++  java
  • 如何防止CDN防护被绕过

    当攻击者发现目标站点存在CDN防护的时候,会尝试通过查找站点的真实IP,从而绕过CDN防护。
    我们来看一个比较常见的基于公有云的高可用架构,如下:
    CDN(入口层)->WAF(应用层防护)-> SLB(负载层)-> ECS(源站) -> RDS(数据库)
    即对应关系为:域名 cname CDN,CDN-→WAF,WAF-→ SLB,SLB-→ ECS。

    我们重点来关注一下CDN-→WAF-→SLB-→ECS这几层服务的关系。
    假设,攻击者知道SLB的真实IP地址,就可以直接访问SLB的ip地址,从而轻易绕过CDN+WAF的安全防护。

    如何防止CDN被绕过呢?
    这里分享一个CDN防护技巧,通过中间件配置只允许域名访问,禁止ip访问。
    这样处理的话,所有直接访问站点真实IP的请求都会被拒绝,任何用户只能通过域名访问站点,通过预先设定的网络链路,从DNS→CDN→waf防护→源站,所有的访问请求都必须经过WAF检测。
    即使攻击者找到了真实IP地址,修改本地hosts文件,强行将域名与IP解析,也无法访问到目标站点。

    Nginx参考配置:

    #添加一个server,在原server里绑定域名
    server  {
            listen 80 default;
            server_name _;
            return 403;
        }
    server {
            listen       80;
            server_name  www.demo.com;
            .........
    

    Apache参考配置:

    #在httpd.conf最后面加上
    <VirtualHost 此处填写IP>
            ServerName 此处填写IP
            <Location />
                Order Allow,Deny
                Deny from all
            </Location>
    </VirtualHost>
    <VirtualHost 此处填写IP>
            DocumentRoot /var/www/html
            ServerName   此处填写域名
    </VirtualHost>

    IIS参考配置:

    网站绑定,绑定主机名就可以了
     
  • 相关阅读:
    《NoSQL精粹》读书笔记
    react+flux编程实践(一) 基础篇
    MongoDB索引(一) --- 入门篇:学习使用MongoDB数据库索引
    (译+注解)node.js的C++扩展入门
    深入解析Javascript异步编程
    (译)package.json详解
    Protobuf学习
    Redis学习
    MySQL学习-常用命令整理
    TCP/IP-TCP
  • 原文地址:https://www.cnblogs.com/xiaozi/p/12438894.html
Copyright © 2011-2022 走看看