为了加速自己的网站、缓解网站攻击情况等,我们常常会给自己的网站加上各种各样的 CDN

利用 iptables 使网站仅可通过 CDN 访问

由于我使用 WordPress,被 F5 习惯了,因此出此下策来缓解一下压力测试党,文章很基础、请勿喷

接下来的教程我基本用网站卫士作为例子(以此类推)

一、先找出 CDN 节点的 IP 们:

去他们的帮助文库或者说在控制面板找找节点 IP,全部找出来。

网站卫士:

利用 iptables 使网站仅可通过 CDN 访问

减速乐:

利用 iptables 使网站仅可通过 CDN 访问

把他们的 IP 一个个复制、然后整理好列出来。

二、保存好现在的防火墙规则:

建议在编写接下来的防火墙规则时,保存一遍现在的:

iptables-save > iptables.rules

保存好现在的规则后、我们就大展宏图吧!先清空一遍(我有洁癖,抱歉):

iptables -F

三、开始编写防火墙规则:

咱们先来关闭 80 端口:

iptables -I INPUT -p tcp --dport 80 -j DROP

然后把网站卫士(或其他 CDN)的 IP 全部加入白名单:

iptables -I INPUT -s 183.136.133.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 183.60.211.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 220.181.55.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 101.226.4.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 180.153.235.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 122.143.15.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 27.221.20.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 202.102.85.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 61.160.224.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 112.25.60.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 182.140.227.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 221.204.14.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 222.73.144.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 61.240.144.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 113.17.174.0/24 -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -s 125.88.189.0/24 -p tcp --dport 80 -j ACCEPT

接下来保存一下 iptables 规则(仅适合 centos,debian/ubuntu 的高手们请自行找方法):

service iptables save

最后面重启一下 iptables 吧(强迫症):

service iptables restart

完成!


小结

这么操作之后,你的 VPS 就只有 CDN 可以访问或抓取到了。

目前有16条回应
Comment
Trackback
Loading ....
  • 回应于2014/05/01 20:45 回复TA

    私有CDN的话我会在Header加一个特殊参数

    • Tomas 回应于2014/05/01 22:27 回复TA

      我也是~防止伪造 IP

      • 回应于2014/05/02 03:58 回复TA

        @Tomas:
        一般叫做MinerHint 😮

        • Tomas 回应于2014/05/02 11:01 回复TA

          你糟糕了,我知道了。我以后访问你网站都伪造 IP

          • ★Extreme★ 回应于2014/05/02 13:28 回复TA

            @Tomas: HTTP请求头不一定是IP,CDN服务器请求后端时,可以额外添加一个HTTP请求头,内容可以是特定字符,后端判断是否有该HTTP请求头,且内容是否匹配,不匹配就执行某个法克作,例如return 444之类的。

  • 极雪 回应于2014/04/30 20:58 回复TA

    如果用了CDN的话,根本不会透露源ip唉

    • Tomas 回应于2014/05/01 11:10 回复TA

      但是为何要透露源 IP 呢,如果是为了搜索引擎可以使用 DNS 的搜索引擎解析。

      • 极雪 回应于2014/05/04 16:10 回复TA

        @Tomas: 那你为什么要使网站仅可通过 CDN 访问

        • Tomas 回应于2014/05/04 18:43 回复TA

          因为这样的话可以最大限度的保证前端数据安全,同时的话可以缓解一下攻击。

          另外的就是用于搜索引擎使用的前端我也有准备好,只是仅提供搜索引擎解析而已 。。

    • ★Extreme★ 回应于2014/05/02 13:29 回复TA

      @极雪: 你确定嘛?host.ichuangzhi.com好多前端,直接看你肯定看不出后端IP,不过我看出来了,后端IP是42.159.132.184。

      • 极雪 回应于2014/05/04 17:55 回复TA

        @★Extreme★: ➡ ➡ ➡ 为何这么叼。。。。。。。。话说小蒋用了好多azure。。。。。。。。

        • Tomas 回应于2014/05/04 18:44 回复TA

          为啥说好多 。。木有多少呀 。。

  • 神父 回应于2014/04/30 12:42 回复TA

    昨天你说的wp-admin这个,加个规则,只限本机的ip访问,然后自己用这机子的梯子发文章。可行麽?

    • Tomas 回应于2014/04/30 19:58 回复TA

      可行啊,况且 apache 下可以使用 htaccess 限制 IP 访问,设定目录为 wp-admin 即可~

  • 本篇文章没有Trackback
你目前的身份是游客,请输入昵称和电邮!