我怎样才能防止意外的DDOS与IIS 6运行ColdFusion 8?

我们今天在客户的一个网站上发生了一个有趣的故障。 无处不在,该网站无法访问。 该网站运行在一个专门的物理Windows 2003 R2服务器(可能是矫枉过正,我知道,但这是一个讨论的另一天)。 重新启动IIS和ColdFusion应用程序服务后,问题又回来了几次。 我最初的想法是,这是一个DNS问题,偶尔会发生 – 最后一次发生在飓风桑迪之后,当我们的ISP退出时,我们不得不进行一些networkingconfiguration更改。 但是,这不是一个DNS问题。 我的第二个想法是,这是一个DDOS攻击,但是,没有什么理由要把这个网站closures。 当我们打电话给我们的ISP时,另一端的运营商注意到stream量显着增加。 事实certificate,客户端无意中在网站上造成了一个DDOS,他们在FTP上传了一个非常大的video文件,然后通过电子邮件向其发送了一个链接。 数百人点击链接,把网站跪在地上。

我主要是一个网站程序员,但我经常不得不贡献服务器pipe理有时。 可悲的是,我是常驻ColdFusion和IIS专家,但我对这个问题没有太多的经验。 我可以采取什么样的基本措施来防止将来发生这种情况,因为我们无法控制客户端发送到网站的文件。

以下是我的一些想法,但我不确定这种影响:

  1. 限制IIS中的连接数。
  2. 将媒体文件放在一个单独的服务器(如亚马逊网站等)。
  3. 此types的文件请求目前位于服务器脚本后面(例如,/www.site.com/viewFile.cfm?fileId=1424545,其中fileId引用了远离webroot的文件),并logging请求,并将文件推送到浏览器CFCONTENT。 我可以编辑这个脚本来拒绝在给定的时间范围内超过一定数量的请求(即一个小时内可以全局访问5MB)。 这可能会导致一些用户的挫折,但是,如果数百名用户试图查看该文件,那么该网站将会像今天一样崩溃,这更令人沮丧,因为没有“漂亮”的信息来解释为什么他们无法访问该文件。
  4. 更新请求在ColdFusion Administrator中调整设置。 Maximum number of simultaneous Template requests目前设置为20.我可以减less这个数字为5,只是为了防止这样的事情发生,但这可能会对正常使用的网站有不利影响。

我愿意接受任何build议,因为我正在继续研究,向最佳scheme的首席技术官报告,以便我们能够实施一个解决scheme。

谢谢。

更新:中断时间的使用情况报告:

使用报告

对于大型静态项目,请将其移至像Amazon CloudFront这样的CDN。

这是我现在正在处理的解决scheme:

所有这些加载文档的链接都转到一个页面,在查询string中附加了附加信息:

 /www.site.com/viewFile.cfm?fileId=1424545 

我已经更新了这个文件,只是简单地包含一个指向提供媒体文件的单独站点的iframe:

 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title></title> <style type="text/css"> html { overflow: hidden; } iframe { position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; border: none; } </style> </head> <body> <cfoutput> <iframe src="http://media.site.com/index.cfm#CGI.PATH_INFO#" frameborder="0"></iframe> </cfoutput> </body> </html> 

这个单独的网站(media.site.com)驻留在不同的服务器(由单独的ISP线路服务,实际上是15Mbps线路,但也处理公司的其他业务),并且该站点上的index.cfm包含所有先前驻留在当前着陆页中的逻辑,并且从本地目录提供文件,该本地目录同步来自它们最初驻留的媒体文件。

有点黑客,但它完成了工作。 这样,如果用户对媒体文件的请求超载,那么只有该站点/服务器/ IPS线路将会closures,但原来的网站仍然是“可操作”的,这样用户仍然可以执行正常的function,即使它们可以查看媒体文件。