响应式广告位

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

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系统的查看相对复杂些,也比较难懂,需要一定的系统知识储备。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容