apache2 上被 wpad.dat 淹没

apache2 上被 wpad.dat 淹没

我服务的公司有一个名为的域控制器internal.example.com,每当他们的员工回家时,Apache 就会被大量 wpad.dat 请求淹没。这些请求被重定向到 404,这让 Apache 不堪重负,陷入瘫痪。

有一个通配符 DNS 条目,用于 *.example.com 重定向到主网站。

这些是我已经做的事情:

  1. 在其网站的根目录中提供了 wpad.dat 文件。当我开始提供静态文件时,Apache 不再陷入停滞状态。

  2. wpad.internal.example.com已将、internal.example.com、的DNS 条目添加wpad.example.com127.0.0.1

添加 DNS 并让其传播后,我仍然可以在日志文件中看到请求。

我不知道他们试图访问哪个域名。日志文件指向的是主网站,而不是他们试图访问的网站。

以下是请求 wpad.dat 文件的应用程序

  • WinHttp-自动代理服务/5.1
  • 微软 Office 2014
  • 卡巴斯基代理服务器检测代理
  • Mozilla/5.0

此主题与被 wpad.dat 淹没但对于如何修复或至少阻止请求,还没有确切的答案。

编辑:我不知道他们试图访问哪个子域,apache 报告它来自主网站。我添加到 DNS 的条目是智能猜测,我没有关于他们访问的内容的具体证据。

答案1

您不应设置指向 127.0.0.1 的 DNS 记录,而应设置一个将被视为无法解析的记录。最简单的方法是设置 TXT 记录wpad.example.com,如下所示:

;name  ttl  class   rr     text
wpad        IN      TXT    "Located in a black hole"

这样,wpad.example.com就永远不会解析任何 IP 地址,客户端甚至不会尝试下载任何东西。

请注意,任何已进行的 DNS 查询可能都已缓存,因此客户端将继续使用缓存的结果。这意味着 DNS 更改不会立即对所有客户端生效,但您应该会看到变化逐渐减小。

答案2

最好的办法处理这是在防火墙上,完全阻止请求到达您的网络服务器,可能使用fail2ban或类似的东西。

如果这不可行(无论出于何种原因),那么尽早在你的 Web 服务器上捕获它并在任何磁盘 I/O 完成之前将其重定向是高效的解决方案。

这是我过去用来做这种事情的配置。在本例中,我将请求重定向到http://127.0.0.1/通过外部重定向导致用户浏览器/脚本不执行任何操作或向自身发出请求。

RewriteEngine on
RewriteRule ^/wpad.dat$ http://127.0.0.1/ [R=301,L,E=nolog:1]

# Then if you wish to stop logging the requests
CustomLog logs/access_log combined env=!nolog

您应该能够根据您的具体需求进行自定义。但是如果您遇到问题,请在您的问题中添加描述。

相关内容