您的位置: 新闻资讯 > 行业动态 > 正文

CCKiller:Linux 轻量级 CC 攻击防御利器(图文)


来源:mozhe 2024-12-05

CCKiller 是用于个人低配服务器的轻量级 CC 攻击防御工具,可以抵挡单个 IP 产生的高并发攻击。
CCKiller 的功能设计主要针对个人低配服务器在面临 CC 攻击时的防护需求。CC 攻击作为 DDoS 攻击的一种,通常是单个 IP 达到设定好的阈值并发请求,而非海量 IP 的低并发攻击。对于个人低配服务器而言,抵挡这种攻击具有一定的挑战性。
CCKiller 具有多项实用功能。首先是秒级检查功能,很多防御脚本使用 Linux 系统的计划任务 crontab 定时检查,但 crontab 最细颗粒是 1 分钟,而 CCKiller 利用 while 循环实现秒级检查,并且被写成了系统服务,更加灵活稳定。其次,拉黑时长可设置,默认为 10 分钟,当发现恶意请求时,会自动拉黑目标 IP,并在拉黑时长结束后自动释放。再者,它可以设定单个 IP 的最高请求数,即并发阈值,若某个 IP 同时请求数超过设定阈值,就会被暂时拉黑一段时间。此外,安装后直接运行 cckiller 会列出当前系统的请求排行,能清晰看到当前请求 IP 和并发数,使用 -s 参数还可定制需求,显示当前并发数排行前若干名的 IP。同时,CCKiller 还支持手动拉黑,执行后会立即检查,将并发请求超过特定数的 IP 拉黑一段时间。
在工具安装方面,CCKiller 仅提供在线安装,以保证脚本是最新的。安装过程中,会有自定义配置的环节,可根据每个服务器的不同情况进行调整。安装后,CCKiller 会被注册成系统服务,可使用 service 命令进行控制,包括 start、stop、restart 和 status 四个参数。成功安装后,系统还会多出一个 cckiller 的命令,该命令具有调出帮助信息、拉黑功能(-k 参数)和显示并发排名功能(-s 参数)等。其文件结构也比较规范,安装目录为 /usr/local/cckiller,包括主程序、日志目录、配置文件、白名单和安装卸载脚本等文件。

二、功能特性


1. 秒级检查


CCKiller 利用 while 循环实现秒级检查,相比传统的 crontab 定时检查更加灵活稳定。许多防御脚本通常使用 Linux 系统的计划任务 crontab 来定时检查,但 crontab 最细颗粒度是 1 分钟,而 CCKiller 将检查频率提升到了秒级,并且被写成系统服务,更加灵活稳定。

2. 拉黑时长


CCKiller 可设置拉黑时长,默认 10 分钟。当检测到恶意请求时,会自动拉黑目标 IP,并在设定的时长结束后自动释放。例如,在安装过程中,可以设置拉黑时长为特定的时间段,以应对不同程度的恶意请求。

3. 并发阈值


CCKiller 能够设定单个 IP 的最高请求数,即并发阈值。如果某个 IP 同时请求数超过了设定的阈值,就会被暂时拉黑一段时间。这一功能可以有效地防止单个 IP 的高并发攻击,保护服务器的稳定运行。

4. 邮件发送


CCKiller 的邮件发送功能意义不大,其发送成功率与服务器环境有很大关系。在实际使用中,这一功能的实用性相对较低。

5. 并发显示


安装 CCKiller 后,可以列出当前系统请求排行。直接运行 cckiller 会清晰地看到当前请求 IP 和并发数,使用参数可定制显示排行前若干名的 IP,例如使用 “cckiller -s 10” 就能显示当前并发数排行前 10 名的 IP。

6. 手动拉黑


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

三、工具安装


1. 在线安装


由于作者可能经常会更新一些功能,或修复一些 BUG,所以 CCKiller 仅提供在线安装,以保证脚本是最新的。安装非常简单,执行如下命令就能进入配置步骤:

 
wget -O install.sh http://zhangge.net/wp-content/uploads/files/cckiller/install.sh?ver=1.0.1 && chmod +x install.sh &&./install.sh -i

2. 工具配置


因为每个服务器的情况可能不一样,所以 CCKiller 有一个自定义配置的过程。执行上述安装命令后,将会进入自选配置部分。提示是否使用脚本默认配置,如果选择是(y),那么显示默认配置,并询问是否继续:
默认配置如下:
The Time interval :20 s #每 20s 检查一次系统请求情况
The Forbidden Time:600 s #拉黑时长设为 10 分钟
Adminstrator Email: root@localhost #邮件对象设置为 root@localhost(即关闭邮件发送)
Connections Allow:100 #单个 IP 并发限制为 100
如果不符合需求,可以使用 ctrl + c 组合键终止脚本,或者先继续安装,因为工具设计了配置修改的功能,所以无需着急。如果不使用默认配置(n),则会要输入参数来自定义配置。例如,可以将参数依次定义为每 10 秒进行检查,拉黑时长为 300 秒,发件人设置为博客邮箱,并发限制设置为 60,回车后会弹出一个提示,让检查,如果没问题直接回车就会安装并启动。

3. 服务控制


安装后,CCKiller 会被注册成系统服务,这时就可以使用 service 来控制 CCKiller 了。使用标准的 service 定义,支持 start | stop | restart | status 四个参数。所以,可以使用 service cckiller stop 来停止 CCKiller,也可以使用 service cckiller status 来查看状态。

4. 集成命令


成功安装后,系统还会多出一个 cckiller 的命令,这个命令现有功能如下:
  • cckiller -h 可以调出帮助信息:

 
CCkiller version 1.0.0 Author: Jager <ge@zhangge.net>
Copyright ©2015 zhangge.net. All rights reserved.
Usage: cckiller [OPTIONS] [N]
N : number of tcp/udp connections (default 100)
OPTIONS:
-h | --help: Show this help screen
-k | --kill: Block the offending ip making more than N connections
-s | --show: Show The TOP "N" Connections of System Current
-k 是拉黑功能,需要在后面带上想拉黑的并发数,比如 cckiller -k 100 就会拉黑当前请求数大于 100 的 IP 一段时间(和拉黑时长一致);-s 是显示并发排名,也需要在后面带上数字,比如 cckiller -s 10 就能显示当前并发数排行前 10 名的 IP。

5. 文件结构


脚本安装目录为 /usr/local/cckiller,其结构如下:
cckiller/
├── cckiller #主程序
├── log/ #日志目录(ver 1.0.1 新增特性)
├── ck.conf #配置文件
├── ignore.ip.list #白名单
└── install.sh #安装和卸载脚本
很简单也比较规范的结构,当然,后续功能如果越来越多,此结构可能会有所更新。

四、版本更新亮点

1. Ver 1.0.1


CCKiller 在 1.0.1 版本中带来了多项重要更新。首先,支持白名单为 IP 段,采用 IP 段通用格式,如 192.168.1.0/24。这一功能使得用户可以更加灵活地设置白名单,有效防止误封。其次,新增拉黑判断方式,改为判断 iptables 是否已存在操作 IP,提高了拉黑的准确性。同时,增加了日志记录功能,每天一个日志文件,位于安装目录下的 log 文件内,方便用户查看和分析系统运行情况。此外,还集成了手动拉黑 IP 和解封 IP 功能,使用 cckiller -b IP 可拉黑指定 IP,使用 cckiller -u IP 可解封 IP。

2. Ver 1.0.2


1.0.2 版本的 CCKiller 新增了在线更新功能,执行./install.sh -u 即可检测是否有新版本。如果发现有新版本,会显示更新内容,并提示用户是否执行更新。选择更新后,系统将更新到新版本,但 IP 或端口白名单会保持不变。此外,应网友需求,新增了端口白名单功能。在配置 CCKiller 的最后一项会提示输入端口白名单,用户可以输入需要排除的端口,以逗号分隔,如 21,2121,8000。本次更新为非必须功能,不过新增的在线更新功能方便用户后续检测 CCKiller 是否为最新版本,推荐用户按需更新。

3. Ver 1.0.3


1.0.3 版本的 CCKiller 增加了 “永久” 拉黑时长。有网友反馈需要设置更长的拉黑时间,考虑到原先机制下设置拉黑时间过长可能会产生很多后台释放黑名单脚本,占用系统资源,因此该版本加入了永久拉黑设置。在安装时,将拉黑时长设置为 0,CCKiller 不会再产生后台释放脚本,也不会释放已拉黑的 IP。不过,为了保持灵活性,新版中没有加入 service iptables save 的保存命令,所以当重启系统或重启 iptables 时,这些拉黑的 IP 都将得到释放。如果用户真的想永久拉黑,可以手动执行 service iptables save。此外,新版本还将 CCKiller 服务注册到了开机启动服务列表,重启系统后无需担心 CCKiller 未启动,进一步提高了系统的稳定性和可靠性。

4. Ver 1.0.4


1.0.4 版本主要进行了 BUG 修复。根据网友反馈,在攻防测试中发现一个 IP 不能被拉黑,经过分析发现该 IP 命中了白名单。而实际上白名单中并没有 IP 段,只因 IP 同属于一个网段。因此,在是否属于 IP 段的判断中,加入了对斜杠的筛选,即只判断白名单中存在斜杠 (/) 的条目,这种处理方式简单粗暴,有效地解决了该问题。

5. Ver 1.07


1.07 版本根据网友建议,新增了日志控制开关,参数为 LOG_LEVEL,支持 INFO、DEBUG 和 OFF 三个参数。其中 INFO 表示仅记录拉黑和释放 IP,DEBUG 记录全部日志,包括拉黑、释放的报错信息,OFF 表示关闭日志。如果需要使用该功能,可以执行./install.sh -u 在线更新或直接重新安装。
 

墨者安全 防护盾

墨者安全作为专业级别安全防护专家,在应对 Webshell 风险隐患方面展现出了卓越的能力。其拥有全面的检测机制,能够精准识别 Webshell 的各种类型和变体,无论是复杂的大马,还是隐蔽的内存马,都难逃其敏锐的监测。
墨者安全防护盾具备强大的实时监控功能,对服务器的各项活动进行 7*24 小时不间断的监视。一旦发现任何可疑的 Webshell 活动迹象,立即发出警报,并迅速采取隔离和清除措施,将风险扼杀在萌芽状态。
在防护策略上,墨者安全防护盾采用了多层次的防御体系。不仅能够在网络层面阻挡外部的恶意访问和攻击,还能深入系统内部,对服务器的文件系统、进程等进行深度检查和保护,确保 Webshell 无法植入和运行。
同时,墨者安全防护盾拥有快速的应急响应能力。当 Webshell 攻击事件发生时,专业的安全团队能够迅速介入,进行深入的分析和处理,最大程度减少攻击带来的损失,并帮助用户快速恢复服务器的正常运行。
墨者安全防护盾还注重用户教育和培训,为用户提供关于 Webshell 防范的专业知识和最佳实践,帮助用户提升自身的安全意识和防范能力,共同构建坚实的网络安全防线。

热门文章

X

7x24 小时

免费技术支持

15625276999


-->