最近服务器受到攻击,总结一下特征

最近我的 Linode VPS 服务器受到了一些攻击(12)。好在攻击的强度不大,也许是手下留情吧,没有造成很大的问题。攻击持续了大约三天时间之后停止。虽然查过很多资料,也咨询过一些网友,可还是无法确定具体是什么攻击。所以趁着记忆还新鲜将攻击的特征记录下来,以后有时间再来研究。

1. 基本信息

我的 VPS 运行的是 LAMP 服务器,仅运行几个小型的 WordPress 博客和一个 UseBB 论坛。流量很小,特别是,在出站流量(outgoing traffic)较大的情况下(平均 40kb/s 左右),入站流量(incoming traffic)也是非常小的(低于 10kb/s)。

目前仅使用 iptables 进行访问控制,iptable 规则在这里

2. 攻击特征

根据我的观察,当然经验还是不够丰富,可以将这些攻击分为 2 类。

a. 针对 80 (http) 端口的攻击

攻击的时候,发动攻击的 IP (下称客户机)向主机 80 端口发送连接请求 SYN,主机会回应 ACK,但是似乎客户机不对 ACK 做出反应。连续的 2 次这种过程之间间隔不到 0.3ms。此时通过 tcpdump -n 命令抓包的话就能看到这样的过程:

23:28:33.931441 IP 174.122.6.252.62841 > 106.187.50.90.http: Flags [S], seq 0, win 8192, length 0
23:28:33.931459 IP 106.187.50.90.http > 174.122.6.252.62841: Flags [R.], seq 0, ack 1, win 0, length 0
23:28:33.931729 IP 174.122.6.252.62841 > 106.187.50.90.http: Flags [S], seq 0, win 8192, length 0
23:28:33.931740 IP 106.187.50.90.http > 174.122.6.252.62841: Flags [R.], seq 0, ack 1, win 0, length 0

主机上运行 netstat -anpt 命令可以看到从客户机的多个状态为 SYN_RECV 的 TCP 连接。连接个数从 1~9 都有可能(不多,所以说攻击强度不是很大),并且会持续到攻击结束。例如:

tcp 0 0 106.187.50.90:80 174.122.6.252:62841 SYN_RECV -
tcp 0 0 106.187.50.90:80 174.122.6.252:56394 SYN_RECV -

从 Apache 的访问日志中无法查询到该 IP 的任何访问记录。

这种形式的攻击会造成一定的入站和出站流量。在 6 个 TCP 连接的情况下,大约各有 180kb/s。如果通过 iptables 直接 DROP 掉该 IP 的所有连接请求,就不会再看到 TCP 连接,也不会做出回应。出站流量为 0,但是入站流量不变。

另外,不知道是不是因为我在 iptables 中限制了单个 IP 发送连接请求的速率,这种攻击没有对服务器上的网站访问造成影响。

b. 针对 443 (https) 端口的攻击

因为我本来就没有开放 443 端口,所以这种攻击发生的时候,

  • 无法从 netstat -anpt 命令下看到相关的连接;
  • 只有入站流量,没有出站流量;
  • 客户端以非常快的速度从各个端口向服务器的 443 端口发送连接请求;
  • 对服务器上的网站产生了影响:响应速度变慢了,甚至出现无法打开网页的情况。

第一次攻击就是这一种,我费了好大劲儿,在 Linode 客服的帮助下才从 tcpdump -n 的输出中找到攻击者的 IP。因为服务器直接 DROP 掉了该 IP 的访问请求,所以服务器不会发送 ACK 回应。tcpdump -n 的输出类似于,

23:21:18.552302 IP 221.120.194.182.acr-nema > 106.187.50.90.https: Flags [S], seq 0, win 8192, length 0
23:21:18.556223 IP 221.120.194.182.mit-dov > 106.187.50.90.https: Flags [S], seq 0, win 8192, length 0
23:21:18.556239 IP 221.120.194.182.mit-dov > 106.187.50.90.https: Flags [S], seq 0, win 8192, length 0
23:21:18.556247 IP 221.120.194.182.mit-dov > 106.187.50.90.https: Flags [S], seq 0, win 8192, length 0

如果从 iptables 中封锁该 IP 的访问,则虽然入站流量保持不变,但是不会再对服务器上的网站的访问造成影响。

下面这张流量图包含上述 2 种攻击发生(有时同时存在,有时只存在一种)时的情况:

遭到上述两种攻击时产生的流量图

遭到上述两种攻击时产生的流量图

3. 结论

有网友觉得可能是 Slowloris 攻击,但是经过测试,该类型的攻击不满足上述特征。

根据之前的经验,这倒很有可能都是 SYN_Flood 攻击。只是暂时不知道怎么测试。©

本文发表于水景一页。永久链接:<http://cnzhx.net/blog/detailed-description-on-the-attacks/>。转载请保留此信息及相应链接。

10 条关于 “最近服务器受到攻击,总结一下特征” 的评论

  1. iptables 中限制了单个 IP 发送连接请求的速率,是该怎么设置啊,能不能赐教一下,我也正在学习linux

  2. 引用通告: 日本服务器易受攻击,巧合还是事实? | 水景一页

  3. 引用通告: 百度联盟分账权限被关闭 | 水景一页

时间过去太久,评论已关闭。
如果您有话要说,请到讨论区留言并给出此文章链接。
谢谢您的理解 :-)