让代码更简单

利用系统防火墙拦截CC攻击的轻量级防御脚本

重要:本文最后更新于2019-03-25 08:27:29,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

这个东西是张戈大鸟写的,刚刚看到交流群里有人在测试cc攻击,我就想起了去年经历的不堪回首的日子。为了仿制他们恶意测试别人的网站,我给他们推荐了这款名叫cckiller的防御脚本。它能将并发访问过高的ip拉入防火墙黑名单,封禁该ip的访问权限。如果是多ip低并发的cc攻击它将无能为力,曾经我也就被人莫名其妙干过。

众所周知,DDoS 攻击指的是分布式拒绝服务。而 CC 攻击只是 DDoS 攻击的一种,本文所阐述的 CC 攻击,指的是单个 IP 达到我们设定好的阈值并发请求,而非海量 IP 的低并发攻击!对于个人低配服务器,除了使用 CDN 来防护,至少我是没有想到如何抵挡海量 IP 攻击的!因为每个 IP 都模拟正常的用户浏览器请求,并不会触发防御阈值,同时来 1000 个,甚至上万个,个人低配服务器的带宽在第一时间就会被占满,就无法继续提供服务了。

科普,DDos挡不住,别再找防御办法了,最佳防御办法就是,嘿嘿…..烧钱!注意,别拿本站做测试,有cdn,如果让本站受到损失,别怪站长报警,我们可是正经备案网站!

利用系统防火墙拦截CC攻击的轻量级防御脚本

利用系统防火墙拦截CC攻击的轻量级防御脚本

功能介绍

秒级检查

更细的时间颗粒,响应更快,更加灵活稳定。

拉黑时长

CCKiller 可以设置拉黑时长,默认为 10 分钟。当发现有恶意请求时,会自动拉黑目标 IP,并在拉黑时长结束后自动释放。

并发阈值

CCKiller 可以设定单个 IP 的最高请求数,如果某个 IP 同时请求数超过了设定的阈值,就会被暂时拉黑一段时间。

邮件发送

就是个提醒功能,没有邮件发送环境就没用。

并发显示

安装后,直接运行 cckiller 会列出当前系统的请求排行,可以清晰的看到当前请求 IP 和并发数。使用-s 参数还可以继续定制需求,比如 cckiller -s 10 就能显示当前并发数排行前 10 名的 IP。

手动拉黑

支持手动拉黑,执行后会立即检查,将并发请求超过 n 的 IP 拉黑一段时间,比如 cckiller -k 100 就会将目前超过 100 个请求的 IP 拉黑一段时间,如果没有则不会执行任何拉黑操作。

在线安装

复制
curl -ko install.sh https://zhang.ge/wp-content/uploads/files/cckiller/install.sh?ver=1.0.7 && sh install.sh -i

该脚本安装时会询问是否使用默认设置:

利用系统防火墙拦截CC攻击的轻量级防御脚本

利用系统防火墙拦截CC攻击的轻量级防御脚本

默认配置如下:

The Time interval : 20 s       #每 20s 检查一次系统请求情况

The Forbidden Time: 600 s  #拉黑时长设为 10 分钟

Adminstrator Email: root@localhost   #邮件对象设置为 root@localhost(即关闭邮件发送)

Connections Allow: 100      #单个 IP 并发限制为 100

你可以可以选择手动设置各项配置信息,输入N回车即可。

CCkiller服务控制

复制
service cckiller {start|stop|restart|status}

例如,启动cckiller,Linux下执行命令:service cckiller start

文件结构

脚本安装目录为/usr/local/cckiller,其结构如下:

cckiller/
├── cckiller       #主程序
├── log/           #日志目录(ver 1.0.1新增特性)
├── ck.conf        #配置文件
├── ignore.ip.list #白名单
└── install.sh     #安装和卸载脚本
配置文件里可以调整各项参数。

卸载工具

这点就很人性化了,不需要可以卸载掉。卸载功能位于安装文件install.sh中。

  • -u 参数用来升级工具,不过目前由于没时间还没写,所以不可用(Ver 1.0.2 已支持在线更新)
  • -i  参数用来安装工具,如果已安装则会提示并终止
  • -c 参数用来配置工具,方便安装后随时修改工具配置
  • -U 参数用来卸载工具,注意是大写哦!

使用方法,卸载cckiller 使用命令: ./install.sh -U

据我测试,在拦截小白cc攻击方面效果很好,高手的攻击就别想拦截了,别人发起一次攻击还是需要花钱的,岂能轻易让你拦截了?

这个脚本的功能与宝塔自带的拦截功能是一样的,都是通过检查高并发的ip,将其放入系统防火墙的黑名单中,所以有用宝塔面板的用户就不需要这个东西了。至于oneinstack一键安装包中自带的waf防御工具,我也测试过,拦截效果不如这个脚本,主要是响应速度方面,而且waf的拦截似乎需要经过nginx,过于消耗资源,远没有服务器防火墙拦截来的彻底!

转载文章,转自哪里文中有说,请注意查找哟!

感觉很棒!可以赞赏支持我哟~

0 打赏

评论 (0)

登录后评论
QQ咨询 邮件咨询 狗哥推荐