ddos是什么,如何防止ddos攻击,ddos攻击100g成本多少
|分布式拒绝服务攻击(DDoS)是目前黑客经常采用而难以防范的攻击手段。DoS的攻击方式有很多种,最基本的DoS攻击就是利用合理的服务请求来占用过多的服务资源,从而使合法用户无法得到服务的响应。 DDOS攻击手段是在传统的DOS攻击基础之上产生的一类攻击方式。单一的DOS攻击一般是采用一对一方式的,当攻击目标CPU速度低、内存小或者网络带宽小等等各项性能指标不高它的效果是明显的。
--ddos攻击原理及防范方法
DDoS攻击五花八门,防不胜防,当你想建立一个防御系统对抗DDoS的时候,你需要掌握这些攻击的变异形态。
DDOS攻击最初被人们成为DOS(Denial of Service)攻击,DOS攻击的原理是:你有一台服务器,我有一台个人电脑,我就用我的个人电脑想你的服务器发送大量的垃圾信息,拥堵你的网络,并加大你处理数据的负担,降低服务器CPU和内存的工作效率。
随着科技的告诉发展,类似DOS这样一对一的攻击已经起不了什么作用了,于是DDOS—分布式拒绝服务攻击诞生了,其原理和DOS相同,不同之处在于DDOS攻击是多对一进行攻击,甚至达到数万台个人电脑在同一时间一DOS攻击的方式攻击一台服务器,最终导致被攻击的服务器瘫痪。
DDOS攻击的方式
DDOS攻击是目前市面上最常用、最热的攻击方式,其攻击的方法有很多,常用的有以下三种:
SYN/ACK Flood攻击:这种攻击方法是经典最有效的DDOS攻击方法,可通杀各种系统的网络服务,主要是通过向受害主机发送大量伪造源IP和源端口的SYN或ACK包,导致主机的缓存资源被耗尽或忙于发送回应包而造成拒绝服务,由于源都是伪造的故追踪起来比较困难,缺点是实施起来有一定难度,需要高带宽的僵尸主机支持。
TCP全连接攻击:这种攻击是为了绕过常规防火墙的检查而设计的,一般情况下,常规防火墙大多具备过滤TearDrop、Land等DOS攻击的能力,但对于正常的TCP连接是放过的,殊不知很多网络服务程序(如:IIS、Apache等Web服务器)能接受的TCP连接数是有限的,一旦有大量的TCP连接,即便是正常的,也会导致网站访问非常缓慢甚至无法访问,TCP全连接攻击就是通过许多僵尸主机不断地与受害服务器建立大量的TCP连接,直到服务器的内存等资源被耗尽而被拖跨,从而造成拒绝服务,这种攻击的特点是可绕过一般防火墙的防护而达到攻击目的,缺点是需要找很多僵尸主机,并且由于僵尸主机的IP是暴露的,因此此种DDOS攻击方式容易被追踪。
刷Script脚本攻击:这种攻击主要是针对存在ASP、JSP、PHP、CGI等脚本程序,并调用MSSQLServer、MySQLServer、Oracle等数据库的网站系统而设计的,特征是和服务器建立正常的TCP连接,并不断的向脚本程序提交查询、列表等大量耗费数据库资源的调用,典型的以小博大的攻击方法。
防范DDOS攻击并不一定非要用防火墙。
针对目前各大传奇私服站长受到盛大或者某些卑鄙小人的无耻行为,我特地整理了防止DDOS的攻击资料!
绝对可以防止针对传奇端口,或者WEB的大流量的DDOS承受大约40万个包的攻击量
设置保护80.7000.7100.7200等你的传奇端口的。
然后按下面整理的注册表修改或者添加下面的数值。
请注意,以下的安全设置均通过注册表进行修改,该设置的性能取决于服务器的配置,尤其是CPU的处理能力。如按照如下进行安全设置,采用双路至强2.4G的服务器配置,经过测试,可承受大约1万个包的攻击量。
接下来你就可以高枕无忧了。
一部份DDOS我们可以通过DOS命令netstat -an|more或者网络综合分析软件:sniff等查到相关攻击手法、如攻击某个主要端口、或者对方主要来自哪个端口、对方IP等。这样我们可以利用w2k自带的远程访问与路由或者IP策略等本身自带的工具解决掉这些攻击。做为无法利用这些查到相关数据的我们也可以尝试一下通过对服务器进行安全设置来防范DDOS攻击。
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
关闭无效网关的检查。当服务器设置了多个网关,这样在网络不通畅的时候系统会尝试连接
第二个网关,通过关闭它可以优化网络。
"EnableDeadGWDetect"=dword:00000000
禁止响应ICMP重定向报文。此类报文有可能用以攻击,所以系统应该拒绝接受ICMP重定向报文。
"EnableICMPRedirects"=dword:00000000
不允许释放NETBIOS名。当攻击者发出查询服务器NETBIOS名的请求时,可以使服务器禁止响应。
注意系统必须安装SP2以上
"NonameReleaseOnDemand"=dword:00000001
发送验证保持活动数据包。该选项决定TCP间隔多少时间来确定当前连接还处于连接状态,
不设该值,则系统每隔2小时对TCP是否有闲置连接进行检查,这里设置时间为5分钟。
"KeepAliveTime"=dword:000493e0
禁止进行最大包长度路径检测。该项值为1时,将自动检测出可以传输的数据包的大小,
可以用来提高传输效率,如出现故障或安全起见,设项值为0,表示使用固定MTU值576bytes。
"EnablePMTUDiscovery"=dword:00000000
启动syn攻击保护。缺省项值为0,表示不开启攻击保护,项值为1和2表示启动syn攻击保护,设成2之后
安全级别更高,对何种状况下认为是攻击,则需要根据下面的TcpMaxHalfOpen和TcpMaxHalfOpenRetried值
设定的条件来触发启动了。这里需要注意的是,NT4.0必须设为1,设为2后在某种特殊数据包下会导致系统重启。
"SynAttackProtect"=dword:00000002
同时允许打开的半连接数量。所谓半连接,表示未完整建立的TCP会话,用netstat命令可以看到呈SYN_RCVD状态
的就是。这里使用微软建议值,服务器设为100,高级服务器设为500。建议可以设稍微小一点。
"TcpMaxHalfOpen"=dword:00000064
判断是否存在攻击的触发点。这里使用微软建议值,服务器为80,高级服务器为400。
"TcpMaxHalfOpenRetried"=dword:00000050
设置等待SYN-ACK时间。缺省项值为3,缺省这一过程消耗时间45秒。项值为2,消耗时间为21秒。
项值为1,消耗时间为9秒。最低可以设为0,表示不等待,消耗时间为3秒。这个值可以根据遭受攻击规模修改。
微软站点安全推荐为2。
"TcpMaxConnectResponseRetransmissions"=dword:00000001
设置TCP重传单个数据段的次数。缺省项值为5,缺省这一过程消耗时间240秒。微软站点安全推荐为3。
"TcpMaxDataRetransmissions"=dword:00000003
设置syn攻击保护的临界点。当可用的backlog变为0时,此参数用于控制syn攻击保护的开启,微软站点安全推荐为5。
"TCPMaxPortsExhausted"=dword:00000005
禁止IP源路由。缺省项值为1,表示不转发源路由包,项值设为0,表示全部转发,设置为2,表示丢弃所有接受的
源路由包,微软站点安全推荐为2。
"DisableIPSourceRouting"=dword:0000002
限制处于TIME_WAIT状态的最长时间。缺省为240秒,最低为30秒,最高为300秒。建议设为30秒。
"TcpTimedWaitDelay"=dword:0000001e
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesNetBTParameters]
增大NetBT的连接块增加幅度。缺省为3,范围1-20,数值越大在连接越多时提升性能。每个连接块消耗87个字节。
"BacklogIncrement"=dword:00000003
最大NetBT的连接快的数目。范围1-40000,这里设置为1000,数值越大在连接越多时允许更多连接。
"MaxConnBackLog"=dword:000003e8
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAfdParameters]
配置激活动态Backlog。对于网络繁忙或者易遭受SYN攻击的系统,建议设置为1,表示允许动态Backlog。
"EnableDynamicBacklog"=dword:00000001
配置最小动态Backlog。默认项值为0,表示动态Backlog分配的自由连接的最小数目。当自由连接数目
低于此数目时,将自动的分配自由连接。默认值为0,对于网络繁忙或者易遭受SYN攻击的系统,建议设置为20。
"MinimumDynamicBacklog"=dword:00000014
最大动态Backlog。表示定义最大"准"连接的数目,主要看内存大小,理论每32M内存最大可以
增加5000个,这里设为20000。
"MaximumDynamicBacklog"=dword:00002e20
每次增加的自由连接数据。默认项值为5,表示定义每次增加的自由连接数目。对于网络繁忙或者易遭受SYN攻击
的系统,建议设置为10。
"DynamicBacklogGrowthDelta"=dword:0000000a
以下部分需要根据实际情况手动修改
-------------------------------------------------------------------------------------------------
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParameters]
启用网卡上的安全过滤
"EnableSecurityFilters"=dword:00000001
同时打开的TCP连接数,这里可以根据情况进行控制。
"TcpNumConnections"=
该参数控制 TCP 报头表的大小限制。在有大量 RAM 的机器上,增加该设置可以提高 SYN 攻击期间的响应性能。
"TcpMaxSendFree"=
[HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesTcpipParametersInterfaces{自己的网卡接口}]
禁止路由发现功能。ICMP路由通告报文可以被用来增加路由表纪录,可以导致攻击,所以禁止路由发现。
"PerformRouterDiscovery "=dword:00000000asp?id=7745" width=1 border=0>
话说用阿里云服务器已经一年多,这一年多的使用体验来说,阿里云服务器至少对于我来说只能是很一般的,阿里云的服务器防御实在是特别一般以至于感觉很垃圾。
我的博客其实流量不大,不过由于我设计的一些主题使用较多,使得我网站的外链极多,这也导致了网站垃圾评论汹涌。所以有利也有弊啊。以前用虚拟主机的时候,人家就跟我说网站负载挺高的,当时也没什么意识。
使用阿里云以来也让我学到了不少东西,也对垃圾评论做了很多过滤,看文章WordPress垃圾评论防御记,以至于我不使用WordPress自带的防垃圾评论的插件Akismet也能保证几乎没有垃圾评论,同时优化了主题数据库请求,有利于网站的打开速度。
那之后的还算长的一段时间,网站至少在访问上也是挺好的,当然这个在2014年12月24日终结。
24日开始阿里云通知服务器被DDoS攻击,服务器进行访问清洗,访问清洗完直接就黑洞了。当然不知道DDoS的可以自行搜索下,阿里云服务器仅支持每秒请求流量5G,超过就黑洞,黑洞就是服务器禁止任何访问,2.5小时解封。然后服务器就进入了流量清洗,黑洞,解封,再清洗。。。无限循环了。然后网站就访问不了,服务器连不上,只能乘着重启服务器成功那一刻将网站blog目录改名,让其访问变为404,减少服务器php请求来让服务器喘口气。
只能限制攻击的IP了,不过这种基本都是使用的肉鸡攻击的,DDoS攻击这种全球性的难题还是没什么办法的。
虽然不喜欢看网站日志,但是这个时候还是得硬着头皮看起来。根据这些天粗糙得观察也得要一些结论。
1、有国外的固定几个IP不停的
POST /blog/xmlrpc.php
POST /blog/wp-cron.php
GET /blog/wp-login.php*
利用xmlrpc.php提供的接口尝试猜解用户的密码,可以绕过wordpress对暴力破解的限制。这个想来是想暴力破解博客的密码,这基本都是荷兰的IP,提取IP然后deny其IP禁止访问。
2、183.56.161.* 不间断的GET网站的各个页面,导致php请求异常的多,直接屏蔽这个IP段的访问
3、这段时间内蒙古访问的流量竟然是最多的,这很不正常,通过对日志IP进行提取,发现内蒙古的IP各有不同,这个比较难防了,我都是一段时间提取一次异常IP,然后过滤掉。
期间也尝试了使用360网站卫士的dns,如果一个正常的没有受到攻击的网站,使用这个还是挺不错的,他有缓存机制,能够加快网站的访问,同时坚持服务器的请求。
他上面也有网站放DDos攻击,不过基本没什么用,或者说我没有看到他的作用。因为使用了他的缓存机制,服务器做的一些防IP过滤就没有用了,因为当被限制的IP访问的时候,会先访问360的CND节点,CDN节点然后请求源服务器,这就导致了,源服务器认为访问的IP来自cdn节点而不是被限制的IP,导致无法禁止访问,同样是的服务器的CPU跑满,网站宕机。
目前还在跟他做着攻防,服务器还是不算稳定,时不时的访问缓慢,或者短暂宕机。
攻击好歹也半个月了,也该停停了,攻击我等小站也没多大意思,何必呢。
ddos打的是ip,要想自己服务器安全,ip地址隐藏起来只是第一步,第二步才是关键,那就是隐藏后对外的服务器要能抗得住攻击。现在免费的能抗的及其有限,站长需要做的事找一家性价比高的云防厂商,一般云防护厂商都是基于CDN原理做的替身防护,所以自带的还有CDN加速的效果,节省了站长购买服务器时昂贵带宽的成本。大企业愿意多花钱买心安的就选了bat,中小企业注重性价比的可以考虑上海云盾,关键是他家有试用,试用后再决定是否继续使用。