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

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


来源:mozhe 2024-09-29

CCKiller 是由国内大佬实现的一款功能强大的 Linux 轻量级 CC 防御工具。它能够根据当前 http 连接数计算并发量,当某个 IP 的并发量大于设定值时,便会在 iptables 中封禁该 IP。
CCKiller 具有诸多特性。首先,它实现了秒级检查。很多防御脚本都是通过 Linux 系统的计划任务 crontab 定时检查,而 crontab 最细颗粒度为 1 分钟。CCKiller 利用 while 循环,将检查频率提升至秒级,实现更细的颗粒度,并且被作者写成系统服务,更加灵活稳定。其次,它可以设置拉黑时长,默认为 10 分钟。当发现恶意请求时,会自动拉黑目标 IP,并在拉黑时长结束后自动释放。此外,CCKiller 还可以设定单个 IP 的最高请求数,比如默认的并发限制为 60,如果某个 IP 同时请求数超过了这个阈值,就会被暂时拉黑一段时间。同时,CCKiller 还支持邮件发送功能,虽然实际意义可能不大。安装后,直接运行 CCKiller 会列出当前系统的请求排行,可以清晰地看到当前请求 IP 和并发数。使用 -s 参数还可以定制需求,比如 cckiller -s 10 就能显示当前并发数排行前 10 名的 IP。并且它还支持手动拉黑,执行后会立即检查,将并发请求超过设定值的 IP 拉黑一段时间。
CCKiller 的安装也较为简便。默认输入 y 即可,输入 n 可进入自定义配置模式。安装完成后,配置文件目录为 /usr/local/cckiller/ck.conf。安装后会自动开始检查拦截,同时会将 CCKiller 注册成系统服务,可以使用 service 命令来控制,如 start、stop、restart、status 四个参数。如果熟悉 vim,还可以通过编辑 ck.conf 文件来定义工具参数。

二、功能特点

(一)秒级检查


CCKiller 利用 while 循环实现秒级检查,这与传统的 Linux 系统计划任务 crontab 相比有着显著优势。crontab 的最细颗粒度为 1 分钟,意味着脚本最快也只能 1 分钟检查一次。而 CCKiller 的秒级检查能够更及时地发现潜在的恶意请求,为服务器的安全提供更快速的响应。这种秒级检查不仅提高了防御的及时性,还使得系统服务更加灵活稳定,能够更好地适应各种复杂的网络环境。

(二)拉黑时长可设


CCKiller 允许用户设置拉黑时长,默认为 10 分钟。当系统检测到恶意请求时,会自动拉黑目标 IP,并在设定的拉黑时长结束后自动释放。例如,若将拉黑时长设置为 30 分钟,在这 30 分钟内,被拉黑的 IP 将无法对服务器进行访问。这种可自定义的拉黑时长功能,为用户提供了根据实际情况调整防御策略的灵活性。

(三)并发阈值设定


用户可以设定单个 IP 的最高请求数,当某个 IP 同时请求数超过设定的阈值时,就会被暂时拉黑一段时间。比如,将并发限制设置为 80,当一个 IP 的请求数超过 80 时,CCKiller 会自动将该 IP 拉黑。这样可以有效地防止单个 IP 产生的高并发攻击,保护服务器的资源不被恶意占用。

(四)邮件发送功能


虽然 CCKiller 具备邮件发送功能,但实际意义并不大。邮件发送的成功率与服务器的环境有很大关系,可能会受到网络稳定性、邮件服务器设置等多种因素的影响。因此,在实际使用中,这个功能的实用性相对较低。

(五)并发显示


安装后,直接运行 CCKiller 会列出当前系统的请求排行,可以清晰地看到当前请求 IP 和并发数。通过使用 -s 参数,还可以继续定制需求。比如,cckiller -s 10 就能显示当前并发数排行前 10 名的 IP。这个功能方便用户快速了解系统的请求情况,及时发现异常的高并发 IP。

(六)手动拉黑


CCKiller 支持手动拉黑功能。执行后会立即检查,将并发请求超过设定数的 IP 拉黑一段时间。例如,使用 cckiller -k 100 就会将目前超过 100 个请求的 IP 拉黑一段时间。如果没有满足拉黑条件的 IP,则不会执行任何拉黑操作。这个功能使得用户可以在发现异常情况时,主动进行 IP 拉黑,增强了系统的安全性。

三、安装与配置


(一)在线安装
CCKiller 仅提供在线安装以保证脚本始终为最新版本。执行如下命令即可进入配置步骤:curl -ko install.sh https://zhang.ge/wp-content/uploads/files/cckiller/install.sh?ver=1.0.8 && sh install.sh -i。这样的安装方式确保了用户能够及时获取到开发者更新的功能和修复的漏洞,提高了工具的安全性和稳定性。

(二)工具配置


在安装过程中,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)”。如果默认配置不符合需求,用户可以选择不使用默认配置(n),然后输入参数来自定义配置。这种灵活的配置方式满足了不同服务器的特定需求,使得 CCKiller 能够更好地适应各种复杂的网络环境。

(三)服务控制


安装后,CCKiller 会被注册成系统服务,这时用户可以使用标准的 service 定义来控制 CCKiller,支持 start | stop | restart | status 四个参数。例如,可以使用 “service cckiller stop” 来停止 CCKiller,使用 “service cckiller status” 来查看状态。这种服务控制方式使得用户能够方便地管理 CCKiller 的运行状态,提高了工具的易用性。

(四)集成命令


成功安装后,系统会多出一个 cckiller 的命令。这个命令现有功能如下:cckiller -h 可以调出帮助信息。其中,-k 是拉黑功能,需要在后面带上想拉黑的并发数,比如 cckiller -k 100 就会拉黑当前请求数大于 100 的 IP 一段时间(和拉黑时长一致);-s 是显示并发排名,也需要在后面带上数字,比如 cckiller -s 10 就能显示当前并发数排行前 10 名的 IP。这些集成命令丰富了 CCKiller 的功能,方便用户进行更精细的操作。

(五)文件结构


CCKiller 的脚本安装目录为 /usr/local/cckiller,其结构如下:“cckiller/├── cckiller(主程序)├── log/(日志目录,ver 1.0.1 新增特性)├── ck.conf(配置文件)├── ignore.ip.list(白名单)└── install.sh(安装和卸载脚本)”。这种规范的结构使得用户能够清晰地了解工具的组成部分,方便进行管理和维护。如果用户熟悉 vim,可以通过编辑 ck.conf 文件来定义工具参数,进一步满足个性化的需求。

四、功能更新与扩展

(一)支持白名单


CCKiller 支持白名单为 IP 段格式,比如 192.168.1.0/24。这种格式使得用户可以更加灵活地设置白名单,避免误封重要的 IP 地址。同时,新增拉黑改为判断 iptables 是否已存在操作 IP 的判断方式,提高了拉黑的准确性。此外,还增加了日志记录功能,每天一个日志文件,位于安装目录下的 log 文件内。集成手动拉黑 IP 和解封 IP 功能,使用 cckiller -b IP 拉黑,使用 cckiller -u IP 解封,为用户提供了更加便捷的操作方式。

(二)在线更新


CCKiller 新增在线更新功能,执行 ./install.sh -u 即可检测是否有新版本。如果发现有新版本,则会显示更新内容,并提示用户是否执行更新。选择更新后,将会更新到新版本,需要重新配置,但是 IP 或端口白名单会保持不变。这个功能使得用户能够及时获取到最新的功能和修复的漏洞,提高了工具的安全性和稳定性。

(三)增加永久拉黑时长


有网友反馈需要设置更长的拉黑时间,因此 CCKiller 在 1.0.3 版本加入永久拉黑设置。只要在安装的时候,设置拉黑时长为 0,则 CCKiller 不会再产生后台释放脚本,也不会释放已拉黑的 IP 了。但是,考虑到灵活性问题,并没有在新版中加入 service iptables save 的保存命令,所以当重启系统或者重启 iptables 时,这些拉黑的 IP 都将得到释放。当然,如果用户真的想永久拉黑,可以手动执行 service iptables save 即可。

(四)注册开机启动


新版本已将 CCKiller 服务注册到了开机启动服务列表,这样重启系统后就不用再担心未启动 CCKiller 了。这个功能确保了 CCKiller 在系统启动时能够自动运行,为服务器的安全提供了持续的保障。

(五)兼容 Centos 7


目前博客运行在 Centos 7 系统,所以将 CCKiller 也做了一下兼容,其实就是在 Centos 7 上安装了 iptables。并且修复了 Centos7 系统对已拉黑 IP 的判断问题。这使得 CCKiller 能够在更多的操作系统上运行,为用户提供了更广泛的选择。

(六)日志级别与开关


根据网友建议,CCKiller 新增日志控制开关,参数为 LOG_LEVEL,支持 INFO、DEBUG 和 OFF 三个参数。其中 INFO 表示仅记录拉黑和释放 IP,DEBUG 记录全部日志,包括拉黑、释放的报错信息,OFF 表示关闭日志。如果需要使用该功能,可以执行 ./install.sh -u 在线更新或直接重新安装。这个功能使得用户可以根据自己的需求选择不同的日志级别,方便用户进行故障排查和系统监控。

五、与其他工具对比及应用场景

(一)与 fail2ban 对比


CCKiller 和 fail2ban 都是用于防御网络攻击的工具,但它们在功能和适用场景上存在一些差异。CCKiller 是一款轻量级的 CC 防御工具,主要根据当前 http 连接数计算并发量,当某个 IP 的并发量大于设定值时,在 iptables 中封禁该 IP。而 fail2ban 功能更加全面,它可以根据实时日志,统计请求数量,如果某个时间段,某种请求超过了阈值,就可以封禁该 IP。此外,fail2ban 支持 yum/apt 一键安装,配置简单,配置文件几行配置就能实现需求,还支持多种监控,如读取 ssh 的登录日志和 apache 访问日志等。
然而,CCKiller 也有其独特的优势。它实现了秒级检查,利用 while 循环将检查频率提升至秒级,比 fail2ban 更加及时。同时,CCKiller 的拉黑时长可设、并发阈值设定、手动拉黑等功能也为用户提供了更灵活的防御策略。在适用场景上,CCKiller 更适合个人低配服务器的轻量级 CC 攻击防御,而 fail2ban 则适用于更广泛的网络环境,尤其是需要对多种服务进行监控的场景。

(二)与 Wordfence Security 对比


Wordfence Security 是一个 wordpress 安全插件,据说可以根据某个时间段访问网站总次数超过阈值后,封禁该 IP。但它存在一些问题,比如插件比较庞大,只为了这个功能安装插件不划算;没有汉化;该功能好像要付费才能用的更流畅。相比之下,CCKiller 作为独立的工具,安装简便,功能针对性强,不会给服务器带来过多的负担。
CCKiller 在 Linux 系统中对 CC 攻击的防御优势主要体现在以下几个方面:首先,它是轻量级的工具,对系统资源的占用较少,适合个人低配服务器。其次,秒级检查和可自定义的拉黑时长、并发阈值等功能,使得用户可以根据实际情况进行灵活的防御设置。最后,CCKiller 的安装和配置相对简单,用户可以快速上手使用。

(三)适用场景


CCKiller 适用于个人网站、小型企业网站等对服务器资源有限的场景。在这些场景下,CCKiller 可以有效地抵挡单个 IP 产生的高并发攻击,保护服务器的稳定性和安全性。同时,对于那些习惯使用 Linux 系统,尤其是 Centos 和 Ubuntu 系统的用户来说,CCKiller 是一个不错的选择。它可以与其他安全工具配合使用,共同构建一个强大的网络安全防护体系。
 

墨者安全 防护盾

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

热门文章

X

7x24 小时

免费技术支持

15625276999


-->