遭遇CC和DDOS攻击怎么处理
直接攻击:主要针对有重要缺陷的WEB应用程序,一般说来是程序写的有问题的时候才会出现这种情况,比较少见。
僵尸网络攻击:有点类似于DDOS攻击了,从WEB应用程序层面上已经无法防御。
代理攻击:CC攻击者一般会操作一批代理服务器,比方说100个代理,然后每个代理同时发出10个请求,这样WEB服务器同时收到1000个并发请求的,并且在发出请求后,立刻断掉与代理的连接,避免代理返回的数据将本身的带宽堵死,而不能发动再次请求,这时WEB服务器会将响应这些请求的进程进行队列,数据库服务器也同样如此,这样一来,正常请求将会被排在很后被处理,就象本来你去食堂吃饭时,一般只有不到十个人在排队,今天前面却插了一千个人,那么轮到你的机会就很小很小了,这时就出现页面打开极其缓慢或者白屏。
3
攻击者的升级
一般我们遇到的情况,就是几个IP,不断的访问网站请求资源。
之前CC攻击的手段是攻击网站的任何一个页面,后来有了统计工具,攻击的时候IP就会被记录下来,于是做坏事的人就换了方法——去登陆页面或者管理后台这样没有统计代码的地方搞破坏。但是新的PHP代码解决方案出来了,通过SESSION来记录刷新的次数,然后针对超过在规定时间内访问次数的IP,进行页面重定向;只要是页面总会有代码,所以这个PHP的解决方案在当时也是很有效的。
然而事情并没有到此结束!最近我看了系统日志,才发现,攻击者开始不对页面进行CC攻击了,而是对着站点的favicon.ico进行CC攻击,这么个小文件几乎每个网站都有。而且这样的文件,根本防不胜防了。即使你用了诸如七牛CDN之类的CDN,访问源站的地址还是会访问到的。
升级版的解决方案
对于这样的攻击,我是无计可施了,我百度和谷歌了相应的解决方案,找到了以下几个比较靠谱的手法,供大家参考:
4
域名解析
暂时暂停一下域名的解析:本方法适合域名真实IP还没有暴露的朋友们,如果CC攻击者是通过域名攻击你的网站的,那么我们暂时让他们攻击失效,一会儿就会好起来。
或者你也可以把自己的域名解析到127.0.0.1上,让攻击你的CC狂魔来反攻击自己的服务器。
5
防火墙
安装防火墙:如果你是VPS用户,可以试试阿里云盾,或者CSF这款免费的防火墙程序。顺便附上一行CSF防火墙有效设置防止CC攻击的设置行:首先用vim命令打开csf.conf,然后修改一行命令:
vim /etc/csf/csf.conf
PORTFLOOD = "22;tcp;5;300,80;tcp;20;5"
6
设置IP黑名单
这个方法实际上也是最无奈,也是最有效的方案。我在寻找CC攻击的解决方案的时候看见了月光博客发的博文,虽然月光没有给出他的代码,但是他说了他的思路就是屏蔽IP黑名单。像月光博客这么大的网站,黑名单IP也只有100多条。于是我决定自己找出这些老鼠屎手动屏蔽之。
打开网站访客日志,查看异常IP,进行屏蔽。为了大家看的清楚,我这里用Cpanel面板截图:
7
点击最近访客就可以进去查看网站的访客和他们的浏览行为了。哪些IP是可疑的?
短时间内频繁访问网站的IP;
User Agent中包含MSIE 6.0的IP,这个年代,身为人类,用这个浏览器的人不多,经过我的观察,100%的恶意CC攻击的IP都是来自这个UA,其实我早就想把所有的IE6.0用户排除我的网站了,正常的访客,一个月里面也没有几个会用IE6.0浏览器的了;
访问favicon.ico次数频繁的IP,前面说了,不解释;
来自同一频段的IP,比如168.168.121.9和168.168.119.8这样相近的IP如果多次出现在你的访客中,显然都是一伙的来刷CC的,屏蔽掉。
怎么判断服务器是否被DDoS恶意攻击?
怀疑遇到攻击情况,首先要看看服务器上面的情况,首先top一下,看看服务器负载,如果负载不高,那么基本可以判断不是cc类型的攻击,再输入命令
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
查看下网络连接的情况,会得到下面这些结果:
TCP/IP协议使用三次握手来建立连接,过程如下:
1、第一次握手,客户端发送数据包syn到服务器,并进入SYN_SEND状态,等待回复
2、第二次握手,服务器发送数据报syn/ack,给客户机,并进入SYN_RECV状态,等待回复
3、第三次握手,客户端发送数据包ACK给客户机,发送完成后,客户端和服务器进入ESTABLISHED状态,链接建立完成
如果ESTABLISHED非常地高,那么可能是有人在恶意攻击,进一步判断,可以把下面命令保存为脚本执行一下:
for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 50) {print $2}}'`
do
echo $i
echo $i /tmp/evilip
done
如果输出了多个结果,那么可能表示有人在企图进行DDOS攻击,想用TCP连接来拖死你的服务器,输出的ip就是发出请求的服务器地址,并且保存在了/tmp/evilip里面。如果没有结果,可以调整一下阈值,把50改成40试一试,对策我们后面再说,这里只讲判断。如果SYN_RECV非常高,那么表示受到了SYN洪水攻击。
SYN洪水是利用TCP/IP协议的设计缺陷来进行攻击的,采用一些策略以及配置可以适当的降低攻击的影响,但并不能完全消除。
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_syn_retries = 0
sysctl -w net.ipv4.tcp_max_syn_backlog=2048
tcp_syncookies设置为1表示启用syncookie,可以大大降低SYN攻击的影响,但是会带来新的安全缺陷。
tcp_syn_retries 表示syn重试次数,重传次数设置为0,只要收不到客户端的响应,立即丢弃该连接,默认设置为5次。
tcp_max_syn_backlog表示syn等待队列,改小这个值,使得SYN等待队列变短,减少对系统以及网络资源的占用。
TCP连接攻击算是比较古老的了,防御起来也相对比较简单,主要是利用大量的TCP连接来消耗系统的网络资源,通常同一个IP会建立数量比较大的TCP连接,并且一直保持。应对方法也比较简单,可以将以下命令保存为脚本,定时ban掉那些傀儡机ip
for i in `netstat -an | grep -i ':80 '|grep 'EST' | awk '{print $5}' | cut -d : -f 1 | sort | uniq -c | awk '{if($1 50) {print $2}}'`
do
echo $i
echo $i /tmp/banip
/sbin/iptables -A INPUT -p tcp -j DROP -s $i
done
banip文件里面记录了所有被ban的ip地址信息,方面进行反渗透以及证据保存等等。为了更好地加固系统,我们可以使用iptables来限制一下,单个ip的最大连接数。
当攻击者的资源非常的多,上面这些方法限制可能就没有什么防护效果了,面对大流量DDoS攻击还是要考虑采用多机负载或者选择墨者安全高防来应对了,一般来说多机负载的成本可能更高,所以大部分人还是选择墨者高防硬防产品来防御。
服务器被ddos攻击应该怎么办?
ddoS的攻击方式有很多种,最基本的ddoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。单一的ddoS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项指标不高的性能,它的效果是明显的。随着计算机与网络技术的发展,计算机的处理能力迅速增长,内存大大增加,同时也出现了千兆级别的网络,这使得DoS攻击的困难程度加大了-目标对恶意攻击包的"消化能力"加强了不少。这时候分布式的拒绝服务攻击手段(DDoS)就应运而生了。DDoS就是利用更多的傀儡机(肉鸡)来发起进攻,以比从前更大的规模来进攻受害者。
当受到DDoS攻击时,可以选择用一些防火墙来进行防御,或者选择机房进行流量迁移和清洗,这种两种方法对于小流量攻击的确有效,而且价格也便宜。但是当攻击者使用大流量DDoS攻击时,这两种方法就完全防御不住了,这种情况就必须考虑更换更高防护的高防服务器了,高防的优势还是很明显的,配置简单,接入方便见效快,对于大流量攻击也完全不在话下。
如何防御网站域名攻击DDOS攻击?
DDOS没有有效的方法的
建议你把 域名解析到 网警的 服务器地址上
网警一看 他们的服务器被攻击
他们就出动了
0条大神的评论