什么是ddos攻击?如何判断是否被ddos攻击?

老牛  2015-08-16 00:19  阅读 173 views 次 评论 0 条

什么是DDoS攻击?
DDoS(Distributed Denial of Service)是分布式拒绝服务攻击的英文缩写,它是一种利用多台计算机向指定目标服务器发送攻击数据包,导致目标服务器系统资源或带宽耗尽,从而对正常业务请求出现拒绝服务的攻击行为。
常见的DDoS攻击分为如下两类:
协议缺陷型
利用TCP,DNS等互联网协议的缺陷,向服务器发送无用却必须处理的数据包来抢占服务器系统资源,从而达到影响正常业务服务的目的。常见的攻击类型包括:SYNFLOOD,ACKFLOOD,DNSFLOOD等。
流量阻塞型
通过发送大量满负载垃圾数据包到目标服务器,使链路带宽耗尽,从而达到影响正常业务服务的目的。常见的攻击类型包括UDPFLOOD,ICMPFLOOD等。
DDoS攻击的影响
分布式拒绝服务攻击将会使目标服务器承载的业务处于不可用状态,直接影响业务的收入或口碑。对于B/S类业务,用户无法打开网页,如www.qq.com;对于C/S类业务,如网游,就是在线用户大量掉线,同时用户无法成功登录游戏。

简单判断方法:网站出现访问无响应、长时间连接不成功、网站流量异常
使用nerstat命令检查是否被ddos
查看所有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

查找较多的SYN连接

netstat -an | grep SYN | awk '{print $5}' | awk -F: '{print $1}' | sort | uniq -c | sort -nr | more

封单个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规则放到/etc/sysconfig/iptables中,系统启动iptables时自动执行.

iptables-save >/etc/sysconfig/iptables

3.service iptables save 也可以把你当前的iptables规则放/etc/sysconfig/iptables中,系统启动iptables时自动执行.
后两种更好此,一般iptables服务会在network服务之前启来,更安全.
解封的话:

iptables -D INPUT -s IP地址 -j REJECT

全清掉了

iptables -F

关于iptable,可以参照Centos下lnmp正确iptables配置规则
Linux iptables 配置详解

历史上的今天:

本文地址:http://xiaohost.com/1291.html
版权声明:本文为原创文章,版权归 老牛 所有,欢迎分享本文,转载请保留出处!

发表评论


表情