被僵尸网络攻击;iptables 跟不上

1 xen iptables drupal

Fructis 是一个多站点(和多软件)VM (Xen),具有 2 个内核和类似 6G 的 RAM。

它托管着流行的 Drupal 和 Wordpress 网站,目前正在遭受重创。我将把所有细节放在下面。

  1. 我一直在阻止 IP,但似乎有一个非常激进的机器人网络,而且大多数情况下更改 IP 的速度比我阻止它们的速度还快

  2. 我已经更新了 Drupal,但所有的 Wordpress 站点都不一定由我管理。

  3. 我已经为 TS 启用了日志,但它们似乎没有帮助

  4. 也许答案是了解最近/现在常见的机器人攻击类型是什么?为此,http://www.webmasterworld.com/home.htm 可能有有用的信息

细节:

root@fructis:/home/nrogara# w
09:28:05 up 10 days,  1:55,  2 users,  load average: 31.10, 30.61, 32.31
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
nrogara  pts/0    c-24-7-67-188.hs Wed13    1:01m  0.18s  0.00s sshd:
nrogara [priv]
nrogara  pts/1    142-254-1-80.dsl 09:00    5.00s  0.06s  0.01s sshd:
nrogara [priv]

root@fructis:/home/nrogara# !net
netstat -tn 2>/dev/null | grep :80 | awk '{print $5}' | cut -d: -f1 |
sort | uniq -c | sort -nr | head
     12 72.37.249.84
     12 162.243.193.98
      7 91.207.5.157
      7 74.73.126.40
      4 184.73.22.102
      3 94.102.49.35
      3 199.255.208.91
      3 195.211.154.155
      3 174.21.231.10
      3 108.62.154.15
Run Code Online (Sandbox Code Playgroud)

(2分钟后再次)

root@fructis:/home/nrogara# netstat -tn 2>/dev/null | grep :80 | awk
'{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr | head
     10 95.26.128.85
      6 67.170.85.225
      5 195.2.240.106
      4 24.7.67.188
      4 216.246.184.159
      3 206.51.125.66
      2 91.122.6.86
      2 79.143.187.214
      2 72.46.156.116
      2 50.115.172.177
Run Code Online (Sandbox Code Playgroud)

Mic*_*ton 5

你显然无法用手跟上这种攻击者。如果他们有那么多 IP 地址,这将不起作用。

你分析过机器人在做什么吗?他们是否试图发送垃圾邮件?抓取您的网页内容?尝试 DDoS?

不久前,我开发了一个工具来处理与应用程序级别不同的情况。Bad Behavior分析 HTTP 请求中的元数据以确定请求是否可能是垃圾邮件发送者或其他攻击者,并在它绑定任何执行 Web 应用程序的资源之前以早期 403 错误阻止请求。它可以作为WordPress 插件使用,也可以作为Drupal 模块使用

如果机器人试图发送垃圾邮件、抓取您的网站、探测安全漏洞或尝试暴力登录,不良行为几乎肯定会提供重要帮助。如果他们只是在做一个普通的旧 DDoS,它可能不会有多大帮助。

您可以做的另一件事是确保正确缓存。例如,针对 Drupal 的 Boost和针对 WordPress 的W3 Total Cache。这会有所帮助,但如果机器人正在抓取您的网站,他们将花费大量时间获取未缓存的内容,因此在这种情况下不会有太大帮助。如果机器人主要发布数据,例如尝试发布垃圾邮件,它也无济于事。

如果可能,您还应该暂时增加虚拟机的 CPU 和 RAM 分配,以帮助缓解一些压力。这可能需要您停止并重新启动虚拟机,但此时这是一个小问题。

我有时还为特定的机器人编写了自定义的fail2ban 正则表达式,这些机器人正在做特定的滥用行为,例如反复尝试在 Drupal 上注册用户帐户。如果您对服务器日志的分析表明正在发生非常具体的事情,您也可以执行此类操作。