AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 1025469
Accepted
hardillb
hardillb
Asked: 2020-07-17 04:09:06 +0800 CST2020-07-17 04:09:06 +0800 CST 2020-07-17 04:09:06 +0800 CST

奇怪的 NGINX 日志条目

  • 772

我最近更新了面向公众的 NGINX 实例的设置,以添加对 http2 的支持。在之后查看日志以了解它的使用频率时,我发现与托管站点无关的新日志条目迅速增加。

首先是一堆发出CONNECT请求的条目,由于 NGINX 实例未配置为转发代理,这些都失败并出现 400 错误。我已经设置了 fail2ban 规则来丢弃来自许多源 IP 地址的流量。我对此并不特别担心(如果需要,请添加评论)。

下一组条目是GET请求,但没有路径,它们有完整的 URL 作为目标,例如

222.223.121.231 - - [16/Jul/2020:12:57:37 +0100] "GET http://api.gxout.com/proxy/check.aspx HTTP/1.1" 404 199 "http://api.gxout.com/proxy/check.aspx" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"

其中大多数都按预期再次收到 404 响应,并且我添加了另一个 fail2ban 规则来丢弃来自源 IP 地址的数据包(同样并没有真正关心这些)。

还有一些类似的得到了 200 个回复,这些是我担心的,例如

35.236.60.202 - - [16/Jul/2020:11:52:28 +0100] "GET http://www.nike.com/ HTTP/1.1" 200 396 "-" "python-requests/2.20.0"

我有以下问题:

  1. 为什么 NGINX 会为此请求返回 200?
  2. 有关如何调试的建议?

所有传入流量都应该是 https(必需或 http2),并且我被固定在 TLS 1.2 或 1.3,所以我认为使用 tcpdump 捕获流量不会有帮助(我假设我无法提供私钥进入wireshark并解码数据包?)。

我能想到的唯一其他选择是向 NGINX 添加一些自定义日志记录(是否可以在 nginx 访问日志中记录响应数据?)以记录整个请求/响应。我过去这样做是为了调试 oAuth2.0 令牌交换问题,但仅限于我可以完全控制所有传入流量的系统上。

nginx
  • 1 1 个回答
  • 416 Views

1 个回答

  • Voted
  1. Best Answer
    Danila Vershinin
    2020-07-17T04:30:53+08:002020-07-17T04:30:53+08:00

    我认为没有必要进一步调试,因为有些事情是显而易见的:

    python-requests/2.20.0as User-Agent 表示一些 Python 脚本。流行的requestsPython 库使编写简单的机器人变得非常容易,无论好坏。

    如果您在 NGINX 中有一个允许响应任何标头的默认服务器,则将 200 返回到未知主机名可能是非常典型的Host:。

    请原谅我的措辞,但默认情况下,NGINX 中的默认服务器将响应任何Host:. 然后,200返回 a 所需的是您的应用程序不检查域名并且不为您网站的规范域名发出重定向。

    与典型情况一样,“您知道您托管哪些域”,任何具有外来域名(或没有)的请求都可以被视为恶意/不需要的。

    您可能想查看“域不是您的”此类请求的蜜罐阻止方法Host:- 大多数恶意/不良机器人实际上只会提供裸 IP 作为标头的值,只是因为它们懒惰检查哪些域位于给定 IP 上(请注意,他们只需通过枚举网络/IP 地址即可找到受害者)。

    至于带有完整 URL 而不是 URI 的请求,这可以是任何东西,包括写得不好的机器人、代理检查器等。

    如果您有很多这样的请求,并且在您的后端生成 404,我建议您使用简单的规则直接在配置中拒绝此操作,并可能添加一个即时块,而不是使用 Fail2ban。

    location ~ "^https?:/" {
        return 404;
    }
    
    • 2

相关问题

  • Gzip 与反向代理缓存

  • nginx 作为代理的行为

  • Nginx 学习资源 [关闭]

  • 提供 70,000 个静态文件 (jpg) 的最佳方式?

  • 在 Apache、LightTPD 和 Nginx Web 服务器上提供 PHP 5.x 应用程序的现状?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve