有人从中国想要杀死我的入口带宽?

中国的Someoen有两个不同的ip,从我的服务器上下载同一个大文件。 他们的ip是:

  • 122.89.45.210
  • 60.210.7.62

他们要求这个文件下载每分钟超过20次。

我能做些什么来防止这种情况? (我在根用户访问gentoo

为什么他们这样做到一个与中国没有任何关系的网站呢?

ADD1:

其他ips:

  • 221.8.60.131
  • 124.67.47.56
  • 119.249.179.139
  • 60.9.0.176

ADD2:

愚蠢的是他们正在请求只有一个单一的文件哈哈。 或者他们要删除这个文件(我不明白为什么)或者他们很愚蠢

ADD3:

情况正在恶化。 知识产权也从其他国家传播(美国和韩国,如果www.geobytes.com/iplocator.htm是正确的)现在他们正在请求另一个文件。

ADD4:

似乎在他们意识到我删除了那个文件后,他们就不再攻击我了 。 我会监视情况。

他们在同样的文件睡了3-4分钟后又开始了(幸运的是我)。 很难说为什么会发生这种情况

只有2个IP地址…你可以很容易地使用iptables阻止IP地址

iptables -I INPUT -s 122.89.45.210 -j DROP
iptables -I INPUT -s 260.210.7.62 -j DROP

编辑

由于IP地址正在增长,您可能需要考虑做一些更为激烈的事情。 你有需要服务中国的IP地址吗? 如果没有,你可以尝试使用下面的网站来帮助阻止整个国家。 只要把结果放在你的.htaccess文件中:

http://www.blockacountry.com

另一个编辑

对于所有的请求还有什么共同点吗? 用户代理是一样的吗? 这很容易帮助阻止攻击。

我不知道你在服务器上使用的是什么操作系统,但我猜想这是一个UNIX(Debian,Ubuntu,Slackware等)发行版。
保护自己免受DoS攻击的简单方法是安装Fail2Ban( http://www.fail2ban.org/wiki/index.php/Main_Page )。 这很容易安装和使用。 我使用它来保护SSH,因为我得到了大量的ssh dos攻击。 该程序扫描日志文件,并检查重复的消息(即失败的login,像你的情况许多连接)。

您必须稍微调整一下才能正确读取Web服务器的日志文件。 如果你设法做到这一点,你可以限制访问 – 也就是说,你可以在1秒内限制50次GET请求。 达到阈值时,IP地址被禁止X次。 这将帮助你节省带宽,不用担心这个攻击是否会来自另一个地址。

希望这可以帮助你:)

编辑1:

我记得有一个Apache的模块,可以限制这些东西 – mod_evasive。 我个人从来没有使用过它,但很多人把它称为“好东西”。 我find了一个教程,可以帮助你 – http://www.mydigitallife.info/2007/08/15/install-mod_evasive-for-apache-to-prevent-ddos-attacks/检查出来,看看是否可以满足您的需求。

你需要做的是联系你的上游供应商。 大多数将无效路由ddos攻击在你身上; 至于美国的知识产权与他们的ISP沟通,这些知识产权正在攻击你,他们通常会与那些通常是你的问题的习惯交谈,因此它主要来自亚洲国家。

这个DDoS造成了什么影响?

如果是CPU使用率,请尝试切换到像nginx这样的服务来提供静态内容。

如果是带宽,可以使用类似mod_bandwidth的方式对限制请求进行评级。

有一件事要牢记:我曾经看到过这样的情况,有时不是攻击,而是使用“下载加速器”的人。 基于(错误的)想法,更多的连接=更多的带宽,这些服务器立刻打开了大量的服务器连接。 为了解决这个问题,我在端口81上安装了nginx,并使用了一些.htaccess规则来强制内容只通过nginx下载。 Nginx可以毫不费力地处理这些请求,而且我不必担心Web服务器重新configuration,也不会减慢合法用户的stream量。

iptablesipset来救援!

首先,build立一个IP集:

 ipset -N Attackers iphash for ip in $LIST_OF_IP; do ipset -A Attackers $ip; done 

接下来,制定规则:

 iptables -t raw -I PREROUTING -m set --match-set Attackers src -j DROP 

或者,如果你感到邪恶:

 iptables -t raw -I PREROUTING -m set --match-set Attackers src -g trap_attackers iptables -t raw -A trap_attackers -j NOTRACK iptables -t raw -A trap_attackers -j ACCEPT iptables -I INPUT -m conntrack --ctstate UNTRACKED -j TARPIT 

每当有新的攻击者时,将其IP添加到集合中:

 ipset -A Attackers abcd 

上面可以通过使用-m match-m recent-j SET的组合来实现自动化,例如-m match --string "GET http://url/to/offending/file" -m recent --seconds 60 --hitcount 2 -j SET --add-set Attackers src

注意:确保对raw表, ipsetTARPIT都被编译到你的Gentoo内核中(或作为模块)。