Linux系统如何查看是否被CC攻击命令详解

Linux系统如何查看是否被CC攻击命令详解

CC攻击主要攻击页面,模拟很多用户来不断的访问网站,导致系统资源被大量占用,那么在Linux系统中,我们要如何知道自己是否被cc攻击了呢?


查看所有80端口的连接数:
netstat -nat|grep -i "80"|wc -l

对连接的IP按连接数量进行排序:
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

查看TCP连接状态:
netstat -nat |awk '{print $6}'|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 -n |awk '/^tcp/ {print $NF}'|sort|uniq -c|sort -rn
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 eth0 -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

封单个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 全清掉了

查找较多的SYN连接:
netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

关于SYN:
netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
列出所有状态的连接数。

netstat -n -p -t | grep SYN_RECV | grep :80 | wc -l
查看80的SYN_RECV情况。

netstat -anp |awk ‘{print $6}’|sort|uniq -c |sort -rn
这里我们查看SYN_RECV这些,看他的连接数高不高,好几百,就有可能被ddos了。

接下来追查是来自哪个ip发出的syn:
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

接下来继续看下:
netstat -ntu | grep SYN | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n more
netstat -an | grep SYN | awk ‘{print $5}’ | awk -F: ‘{print $1}’ | sort | uniq -c | sort -nr | more

确认了被syn攻击后,我们来改动下syn。

tcp_max_syn_backlog加大SYN队列的长度可以容纳更多等待网络连接数。
tcp_synack_retries和tcp_syn_retries定义SYN 的重试连接次数,将默认的参数减小来控制SYN连接次数的尽量少。

修改方法,使配置立即生效,无需重启,可以执行:
#sysctl -w net.ipv4.tcp_max_syn_backlog=10240
#sysctl -w net.ipv4.tcp_syncookies=1
#sysctl -w net.ipv4.tcp_synack_retries=3
#sysctl -w net.ipv4.tcp_syn_retries=3
然后立即查看syn是否降下来了。

相较于Windows系统下cc攻击的查看,Linux系统的查看相对复杂些,也比较难懂,需要一定的系统知识储备。

版权免责声明
01、本站所有的资源都来源于互联网搜集并整理,如有侵权请邮件联系站长!
02、本站分享的资源仅供参考学习,您必须在下载后二十四个小时之内删除!
03、本站分享目的仅供学习研究和借鉴,请不要用于商业用途以及违法用途!
04、本站提供的源码不保证资源的完整性以及安全性,不附带任何技术服务!
05、禁止用本站源码用于非法商业用途,不得违反国家法律,否则后果自负!
06、如发现资源链接无法下载、失效或广告,请联系管理员或提交工单处理!
07、所有资源均可通过日常签到等任务进行免费兑换,记得每天到本站签到!
08、本站所有资源积分兑换只是赞助,收取费用仅维持本站的日常运营所需!
09、如果您也有好的资源或教程,您可以投稿发布,成功分享后有积分奖励!
10、如需商用请购买正版,由于未及时购买正版发生侵权行为,与本站无关!
11、如果您发现本站分享的资源侵犯了您的权益,请邮件联系我们进行删除!

0
分享海报

站点公告

近期本站改版,为了不影响浏览视觉,请按 Ctrl+F5 强制刷新! ZYE.CC
显示验证码
没有账号?注册  忘记密码?

社交账号快速登录

51LA统计