生命不息
折腾不止

防CC攻击经验分享(二):通过屏蔽IP的方式防止CC攻击

昨天已经介绍了防御比较低级的 pingback 的攻击。但是那个方法还是有缺陷的,就是大部分人的 vps 性能并不好,大并发的情况下依然很可能耗尽 CPU 的资源。而且更有些 cc 攻击并没有那么容易找规律。那还有种方法就是今天要介绍的,通过屏蔽 IP 的方式来防御。

不管如何攻击,攻击者能发起提供的 IP 总是有限的,不管是几百几千还是多少。我们把这些 ip 收集起来,直接屏蔽掉。

嗯,聪明的你一定要问了,如何收集到这些 ip 呢。。这也是这个方法的缺陷之一。你只能让他们先打个半个小时到 1 个小时。。。然后我们通过分析网站的 log 日志来收集 IP 。

所以,务必打开你的 web 日志记录!

但是几千个 ip ,那么大的 web 日志,怎么收集这些 ip 地址并屏蔽呢?

提取 ip 并通过 iptables 屏蔽

这里提供个 80host 老板提供的自动分析 log ,提取 IP ,并添加到 Iptables 屏蔽的脚本代码:

cat 91yun.org.log | grep 'WordPress' | awk '{print "iptables -I INPUT -p tcp --dport 80 -s ", $1, "-j DROP"}'| sort -n | uniq | sh

把“ 91yun.org.log ”换成你自己的日志文件就可以了。

但我发现, iptables 的生效很慢。。。我屏蔽后,对方还能打大半天。。等 iptables 有反应的时候早就又趴下了 – – 只不过下次再打的时候就可以防住了。

提取 ip 并通过 ip route 屏蔽

后来 KVMLA 的 k 总提供了另外一个方法,直接通过 ip route 来屏蔽 IP ,据说效率更高,但是因为我获得这个信息的时候对方已经没在打了,所以也没有实践,大家不妨记录下,以防不时之需。

用 ip route 来防御,那其实我们只需要把上面的代码 iptables 的命令部分替换下就可以了:

cat 91yun.org.log | grep 'WordPress' | awk '{print "ip route add blackhole ", $1}'| sort -n | uniq | sh
赞(0)
未经允许不得转载:91云(91yun.co) » 防CC攻击经验分享(二):通过屏蔽IP的方式防止CC攻击

留言 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #0

    可以通过CloudFlare的黑名单屏蔽IP,这样省了一些CPU。

    hlx980078年前 (2016-07-12)回复
  2. #0

    有没有试试张戈的cckiller

    呵呵8年前 (2016-07-08)回复
    • 张戈那个是基于 ip 并发连接数 判断,iptables DROP。
      上面 91yun 说 80host 老板提供的方法 iptables的生效很慢,估计是因为 80host 提供这个是通过分析nginx日志的原因,攻击越大日志文件越大

      新手司机8年前 (2016-07-09)回复
      • 是iptables的生效很慢。你改了并不是马上生效的。不知道原因。

        91yun8年前 (2016-07-09)回复
      • 用K总那个add route更好,iptables也是要耗CPU的,性能不强的话链表挂的更快。

        mujj8年前 (2016-08-30)回复