增加了网络服务器上的 408 请求超时次数

Kzq*_*qai 4 logging apache-2.2

在我的日志观察记录中,这些情况一直在稳步增长:

  408 Request Timeout
      null: 694 Time(s)
Run Code Online (Sandbox Code Playgroud)

在我的网络服务器上。

以下是/var/log/apache2/access.log访问日志中的一些贡献请求:

ip - - date requestsfor"-"? httpcode bytes referrer useragent
75.149.117.146 - - [28/Jan/2013:17:49:47 -0500] "-" 408 0 "-" "-"
65.55.215.247 - - [28/Jan/2013:17:57:40 -0500] "-" 408 0 "-" "-"
205.157.206.75 - - [28/Jan/2013:18:00:21 -0500] "-" 408 0 "-" "-"
Run Code Online (Sandbox Code Playgroud)

正常访问请求示例当然有更多相关信息,如下所示:

ip - - date request-for httpcode bytes referrer useragent
66.251.23.171 - - [28/Jan/2013:17:45:41 -0500] "GET /images/al/al-mb0608tn.jpg HTTP/1.1" 200 4085 "http://example.com/brands.php?F=S&BrandCode=AL" "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)"
Run Code Online (Sandbox Code Playgroud)

在这里查看我的访问日志更大样本(有一些正常的 get 请求,其余的 408)

我对 ips 进行了反向 IP 查找,它们似乎来自美国和加拿大的不同地点。我想这可能只是意味着涉及代理吗?有一个很大的街区:

96.42.74.117 - - [18/Feb/2013:02:55:58 -0500] "-" 408 0 "-" "-"
Run Code Online (Sandbox Code Playgroud)

这经常重复。

我犹豫不决地得出结论,这是一次攻击而不是故障,但记录的探测数量几乎在同一时间一直在稳步增加,例如logwatch也说

 A total of 125 sites probed the server
    107.22.9.89
    108.132.76.100
    108.172.60.59
    108.226.133.142
    12.166.56.82
    12.54.94.24
Run Code Online (Sandbox Code Playgroud)

.... 不断地列出对服务器使用检测到的探针的各种 ip。列出为“探测”服务器的 ips 和使用空值访问访问日志的 ips 有一些重叠,因此这可能表明存在攻击,但由于服务器必须为请求提供服务,因此很难判断是否合法来自 DOS 请求超时攻击的超时,如果这就是这里发生的事情。

如何调试这个问题,或者如果是攻击,处理这个攻击?

Dan*_* t. 7

根据我所做的一些研究,这些是导致408消息的一些可能性。您可以测试每一个以确定与您的案例相关的一个。

1) ApacheTIMEOUT值非常低- 您的 Web 服务器可能在客户端甚至有机会发送请求之前就结束了会话。

访问日志中的 408 错误代码过多

2) browser predictive optimization- 您可以使用不同的浏览器轻松测试。只需这样做tail -f /var/log/apache2/access.log,同时使用可以在第一个搜索页面上显示您的网站的相关关键字,将鼠标悬停在指向您网站的链接上,检查网站预览是否出现.....所有这些都无需单击打开您网站的链接.

http://forum.linode.com/viewtopic.php?f=10&t=8048

3) denial of service attack- ddos​​ 预热,例如slow loris可以打开与服务器的太多连接,而不会发送一个字节码来占用所有 Apache 进程。

http://blog.spiderlabs.com/2011/07/advanced-topic-of-the-week-mitigating-slow-http-dos-attacks.html

来自上面链接的引用 -

“诀窍是打开与服务器的连接,但不发送单个字节。打开连接并等待攻击者几乎不需要任何资源,但它永久地占用了一个 Apache 进程以耐心等待请求。Apache 将一直等到超时到期,然后关闭连接。从 Apache 1.3.31 开始,请求行超时被记录到访问日志中(状态码为 408)。请求行超时消息出现在错误日志中,并带有级别信息。Apache 2不会将此类消息记录到错误日志中,但正在努力添加与 1.x 分支中存在的功能相同的功能。”