转载来源: 什么是cc,网站如何应对cc攻击?
http://www.safebase.cn/article-259414-1.html
一、Linux主机简单判断CC攻击的命令
第一条命令:
tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*'
正常的输出结果类似于这样
POST /ajax/validator.php HTTP/1.1
POST /api_redirect.php HTTP/1.1
GET /team/57085.html HTTP/1.1
POST /order/pay.php HTTP/1.1
GET /static/goodsimg/20140324/1_47.jpg HTTP/1.1
GET /static/theme/qq/css/index.css HTTP/1.1
GET /static/js/index.js HTTP/1.1
GET /static/js/customize.js HTTP/1.1
服务器测试
虚拟机测试
一直没显示出来,可能配置太低了,只有一个内存1G
正常命令结果以静态文件为主,比如css,js,各种图片。
如果是被攻击,会出现大量固定的地址,比如攻击的是首页,会有大量的“GET / HTTP/1.1”,或者有一定特征的地址,比如攻击的如何是Discuz论坛,那么可能会出现大量的“/thread-随机数字-1-1.html”这样的地址。
第二条命令:
tcpdump -s0 -A -n -i any | grep ^User-Agent
输出结果类似于下面:
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
User-Agent: Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.89 Safari/537.1
这个是查看客户端的useragent,正常的结果中,是各种各样的useragent。
大多数攻击使用的是固定的useragent,也就是会看到同一个useragent在刷屏。随机的useragent只见过一次,但是给搞成了类似于这样“axd5m8usy”,还是可以分辨出来。
第三条命令:
tcpdump -s0 -A -n -i any | grep ^Host
如果机器上的网站太多,可以用上面的命令找出是哪个网站在被大量请求
输出结果类似于下面这样
Host: www.server110.com
Host: www.server110.com
Host: www.server110.com
二、查CC攻击的几个命令
查看所有80端口的连接数
netstat -nat|grep -i "80"|wc -l
对连接的IP按连接数量进行排序
netstat -anp | grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
netstat -ntu | awk '{print $5}' | egrep -o "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" | sort | uniq -c | sort -nr
查看TCP连接状态
netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
netstat -n | awk '/^tcp/ {++S[$NF]};END {for(a in S) print a, S[a]}'
netstat -n | awk '/^tcp/ {++state[$NF]}; END {for(key in state) print key,"\t",state[key]}'
netstat -n | awk '/^tcp/ {++arr[$NF]};END {for(k in arr) print k,"\t",arr[k]}'
netstat -ant | awk '{print $NF}' | grep -v '[a-z]' | sort | uniq -c
查看80端口连接数最多的20个IP
netstat -anlp|grep 80|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20
netstat -ant |awk '/:80/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A,i}' |sort -rn|head -n20
用tcpdump嗅探80端口的访问看看谁最高
tcpdump -i any -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
抓包最常访问的url:
tcpdump -s0 -A -n -i any | grep -o -E '(GET|POST|HEAD) .*'
判断最高的访问80的ip
tcpdump -i enp4s0 -tnn dst port 80 -c 1000 | awk -F"." '{print $1"."$2"."$3"."$4}' | sort | uniq -c | sort -nr |head -20
查找较多time_wait连接
netstat -n|grep TIME_WAIT|awk '{print $5}'|sort|uniq -c|sort -rn|head -n20
查找较多的SYN连接
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more
linux下实用iptables封ip段的一些常见命令:
封单个IP的命令是:
iptables -I INPUT -s 211.1.0.0 -j DROP
封IP段的命令是:
iptables -I INPUT -s 211.1.0.0/16 -j DROP
iptables -I INPUT -s 211.2.0.0/16 -j DROP
iptables -I INPUT -s 211.3.0.0/16 -j DROP
封整个段的命令是:
iptables -I INPUT -s 211.0.0.0/8 -j DROP
封几个段的命令是:
iptables -I INPUT -s 61.37.80.0/24 -j DROP
iptables -I INPUT -s 61.37.81.0/24 -j DROP
想在服务器启动自运行的话有三个方法:
1、把它加到/etc/rc.local中
2、iptables-save >/etc/sysconfig/iptables可以把你当前的iptables规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执
行。
3、service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行。
后两种更好此,一般iptables服务会在network服务之前启来,更安全。
解封的话:
iptables -D INPUT -s IP地址 -j REJECT
iptables -F 全清掉了
没有安装netstat的情况:
如果使用netstat时提示:
-bash: netstat: command not found
说明未安装,使用以下命令安装即可:
yum install net-tools
三、如何应对CC攻击
cc攻击介绍
目前网站攻击主要分为两大类,cc攻击跟ddos攻击。服务器该如何应对cc流量攻击? 所谓的CC攻击(Challenge Collapsar)是DDOS(分布式拒绝服务)的一种,也是一种常见的网站攻击方法,攻击者通过代理服务器或者肉鸡向向受害主机不停地发大量数据包,造成对方服务器资源耗尽,一直到宕机崩溃。很多网络攻击采取的就是这种方式。那么网站要怎么应对cc攻击呢?
1.取消域名绑定
取消域名绑定后Web服务器的CPU能够马上恢复正常状态,通过IP进行访问连接一切正常。但是不足之处也很明显,取消或者更改域名对于别人的访问带来了不变,另外,对于针对IP的CC攻击它是无效的,就算更换域名攻击者发现之后,攻击者也会对新域名实施攻击。
2.更改Web端口
一般情况下Web服务器通过80端口对外提供服务,因此攻击者实施攻击就以默认的80端口进行攻击,所以,可以修改Web端口达到防CC攻击的目的。
3.IIS屏蔽IP
我们通过命令或在查看日志发现了CC攻击的源IP,就可以在IIS中设置屏蔽该IP对Web站点的访问,从而达到防范IIS攻击的目的。
CC攻击的防范手段
1.优化代码
尽可能使用缓存来存储重复的查询内容,减少重复的数据查询资源开销。减少复杂框架的调用,减少不必要的数据请求和处理逻辑。程序执行中,及时释放资源,比如及时关闭mysql连接,及时关闭memcache连接等,减少空连接消耗。
2.限制手段
对一些负载较高的程序增加前置条件判断,可行的判断方法如下:
必须具有网站签发的session信息才可以使用(可简单阻止程序发起的集中请求);必须具有正确的referer(可有效防止嵌入式代码的攻击);禁止一些客户端类型的请求(比如一些典型的不良蜘蛛特征);同一session多少秒内只能执行一次。
3.完善日志
尽可能完整保留访问日志。日志分析程序,能够尽快判断出异常访问,比如单一ip密集访问;比如特定url同比请求激增。
滴盾网络现针对互联网企业提供整套行业和技术解决方案,涵盖金融云、电子商务、移动应用、游戏云等领域,目前拥有青岛BGP数据中心,5T DDOS硬防+CC硬件防御总出口达8T, 具备完善的机房设施,自建光纤网络, 独有的核心骨干网络有效保证高品质的网络环境和丰富的带宽资源,为您的网站安全提供最全方面的保障。24小时客服在线,详情可登陆滴盾网络咨询。
Linux使用CCKiller防御少量IP高并发CC攻击(防刷站)
CCKiller:Linux轻量级CC攻击防御工具,秒级检查、自动拉黑和释放。CCKiller 是用于个人低配服务器的轻量级 CC 攻击防御,可以抵挡单个 IP 产生的高并发攻击。
功能特性
①、秒级检查
很多防御脚本都是使用了 Linux 系统的计划任务 crontab 来定时检查的。而 crontab 的最细颗粒是 1 分钟,也就是说脚本最快也只能 1 分钟检查一次。CCKiller利用 while 循环实现秒级检查,实现更细的颗粒。当然,CCKiller 更是被作者写成了系统服务,更加灵活稳定。
②、拉黑时长
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://pan.itca.cc/Linux/CCKiller-install.sh?ver=1.0.7 && sh install.sh -i
默认输入y即可,输入n可进入自定义配置模式。
默认配置信息,回车确定安装。
The Time interval : 20 s #每 20s 检查一次系统请求情况
The Forbidden Time: 600 s #拉黑时长设为 10 分钟
Adminstrator Email: root@localhost #邮件对象设置为 root@localhost(即关闭邮件发送)
Connections Allow: 100 #单个 IP 并发限制为 100
安装完成,配置文件目录:/usr/local/cckiller/ck.conf
安装后自动开始检查拦截。
服务控制:
安装后,会将 cckiller 注册成系统服务,这时你就可以使用 service 来控制 cckiller 了。
使用标准的 service 定义,支持 start | stop | restart | status 四个参数。所以,你可以使用
service cckiller stop 来停止 cckiller,也可以使用 service cckiller status 来查看状态。
集成命令
成功安装后,系统还会多出一个 cckiller 的命令,这个命令现有功能如下:
cckiller -h 可以调出帮助信息:
Copyright ©2015 zhang.ge. 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。
文件结构
脚本安装目录为/usr/local/cckiller,其结构如下:
cckiller/
├── cckiller #主程序
├── log/ #日志目录(ver 1.0.1新增特性)
├── ck.conf #配置文件
├── ignore.ip.list #白名单
└── install.sh #安装和卸载脚本
如果你熟悉 vim 的话,只要编辑 ck.conf 就可以定义工具参数了:
##### Paths of the script and other files
PROGDIR="/usr/local/cckiller"
PROG="/usr/local/cckiller/cckiller"
LOGDIR="/usr/local/cckiller/log"
IGNORE_IP_LIST="/usr/local/cckiller/ignore.ip.list"
IPT="/sbin/iptables"
DKName=CCkiller
DKVer=1.0.5
##### SLEEP_TIME设定检查频率,单位为秒
SLEEP_TIME=10
##### NO_OF_CONNECTIONS设定并发限制
NO_OF_CONNECTIONS=60
##### EMAIL_TO设定邮件的发送对象(请改为自己的邮箱地址)
EMAIL_TO="xxxxx@qq.com"
##### BAN_PERIOD设定拉黑时长,单位为秒
BAN_PERIOD=300
##### 设置忽略端口,比如 21,2121,8000 (默认不忽略)
IGNORE_PORT=
##### 定义日志级别 INFO,DEBUG,WARNING,OFF (默认 INFO)
LOG_LEVEL=INFO
白名单
工具安装时会默认将系统所有 IP 都加入白名单,避免自己把自己给拉黑的尴尬。如果你还有其他要加白的 IP,可以将 IP 加入到 cckiller 安装目录下的 ignore.ip.list 文件中,每行一个。
卸载工具
可以找到安装脚本,使用 ./install.sh -U 来卸载 CCKiller。
参考链接 :
Linux主机简单判断CC攻击的命令 :https://blog.csdn.net/Gamay/article/details/73737272?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromBaidu-7.nonecase
什么是cc,网站如何应对cc攻击?
http://www.safebase.cn/article-259414-1.html
Linux使用CCKiller防御少量IP高并发CC攻击(防刷站) https://www.jianshu.com/p/beda33e06d55
Linux查CC攻击的几个命令 :https://blog.csdn.net/chouhunpo4240/article/details/100868998?utm_medium=distribute.pc_relevant_right.none-task-blog-OPENSEARCH-6.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-OPENSEARCH-6.nonecase
https://blog.csdn.net/shangdi1988/article/details/53419401?utm_medium=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase&depth_1-utm_source=distribute.pc_relevant_right.none-task-blog-BlogCommendFromMachineLearnPai2-4.nonecase
centos中防CC攻击两种实现方法(转) :https://blog.csdn.net/weixin_33739646/article/details/86426198?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-16.nonecase