今天晚上,当我查看我的 Apache2 访问日志时,我在日志文件中发现了一些看似 CONNECT 请求的内容:
...
5*.**.***.**8 - - [28/Jan/2021:21:40:41 +0000] "GET http://www.youtube.com/watch?v=8MZADjiVIbw?search_query=%EC%95%84%EC%9D%B4%ED%81%B4%ED%83%80%EC%9E%84 HTTP/1.1" 301 565 "-" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.2; .NET CLR$
5*.**.***.**8 - - [28/Jan/2021:21:40:41 +0000] "CONNECT domain.tldwatch:443 HTTP/1.1" 301 409 "-" "-"
5*.**.***.**8 - - [28/Jan/2021:21:40:43 +0000] "CONNECT domain.tldwatch:443 HTTP/1.1" 200 3817 "-" "-"
5*.**.***.**8 - - [28/Jan/2021:21:40:44 +0000] "CONNECT domain.tldwatch:443 HTTP/1.1" 301 409 "-" "-"
5*.**.***.**8 - - [28/Jan/2021:21:40:44 +0000] "CONNECT domain.tldwatch:443 HTTP/1.1" 200 794 "-" "-"
...
这只是提出的请求之一,我在日志中还发现了更多类似的请求。
据我所知,我从未接触过与我的服务器上的代理有关的任何内容(即 mod_proxy_connect)。
我的服务器是否存在漏洞?如果存在,我下一步该采取什么措施来缓解这一问题?
答案1
这些请求看起来很可能被重定向到您的实际网站,而不是被代理到攻击者试图去的任何地方。
要确保您不允许此类请求,请检查 Apache 配置中的指令ProxyRequests
。默认情况下,该指令处于关闭状态,但一些低质量的互联网教程建议将其打开以完成其他操作(但实际上并非如此)。如果您将其打开,则可能会使您的 Web 服务器遭受滥用。
至于请求本身,最佳做法是将您的网站配置保留在自己的位置<VirtualHost>
,并与 Apache 的默认配置(由您的发行版提供)隔离,后者应该只返回“它有效”页面(作为 403 错误)。因此,任何未明确请求您的域名的请求都将获得 403。