检测访问是否是CC攻击的命令:

80口为网站的访问端口,可以根据实际情况进行修改

# 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],i}' |sort -rn|head -n20

如改成8888
netstat -anlp|grep 8888|grep tcp|awk '{print $5}'|awk -F: '{print $1}'|sort|uniq -c|sort -nr|head -n20 | netstat -ant |awk '/:8888/{split($5,ip,":");++A[ip[1]]}END{for(i in A) print A[i],i}' |sort -rn|head -n20

找出访问比较多的IP,IP地址为荷兰(明显不是企业所在地,直接封堵)
6 139.162.153.143
3 139.162.218.121

对可疑IP进行封堵

封网段
iptables -I INPUT -s 139.162.153.143/16 -j DROP
iptables -I INPUT -s 139.162.218.121/16 -j DROP
iptables -I INPUT -s 205.177.226.156/16 -j DROP

保存规则,保证下次启动规则适用

service iptables save

检测是否是syn flooding DDOS攻击

检测syn_recv命令

检查连接数增多,并且SYN_RECV 连接特别多:
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

TIME_WAIT 16855
CLOSE_WAIT 21
SYN_SENT 99
FIN_WAIT1 229
FIN_WAIT2 113
ESTABLISHED 8358
SYN_RECV 48965
CLOSING 3
LAST_ACK 313

根据经验,正常时检查连接数如下: 
# netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

TIME_WAIT 612
CLOSE_WAIT 2
FIN_WAIT1 3
FIN_WAIT2 535
ESTABLISHED 257
SYN_RECV 4

根据netstat查看到的对方IP特征并进行封堵:

# netstat -na |grep SYN_RECV|more

对可疑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
封整个B段的命令是:

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

参考:http://drops.wooyun.org/tips/2457

05-11 15:48