【问题标题】:Mystery Messages GET 200 from NodeJS / Express Server来自 NodeJS / Express 服务器的神秘消息 GET 200
【发布时间】:2019-04-08 16:54:23
【问题描述】:

我正在云中运行一个小型虚拟专用服务器。 (Vultr) 这是一个为一小群人提供 html 内容的简单应用程序。服务器正在运行 Node.js / Express(与 Morgan 一起记录所有 http 请求)。我怀疑我们网站的目标受众甚至是每天 10 个用户。请注意,此站点没有数据库存储。该站点在 docker 容器中运行。

当我检查网站日志时,我看到了非常奇怪的东西。

大量:

GET https://www.cyberpolice.ir 200 38.171 ms - 32910

GWhois.org 告诉我这是德黑兰的某个人。

GET https://www.tasnimnews.com/ 200 780.989 ms - 32910
GET https://www.akamai.com 200 657.255 ms - 32910
GET https://www.varzesh3.com/ 200 5.752 ms - 32910
GET https://www.incapsula.com 200 269.104 ms - 32910

通常我会一次看到一堆这样的几百个。其中有很多,总是大小为 32910。

有人知道这里发生了什么吗?为什么我会看到这些消息?是否有人将我的服务器用于恶意活动?

Morgan 是否有更好的设置来完全识别这里发生了什么?

坦率地说,我不明白会生成此 GET 响应的 http 请求?该请求是什么样的?

【问题讨论】:

    标签: node.js http express morgan


    【解决方案1】:

    第一条规则是不要将 Node JS 服务器直接暴露给公共流量。您应该在 NodeJS 服务器前面使用反向代理服务器。反向代理应配置为仅接受特定域的请求。下面是一个示例 Nginx 配置文件来实现这一点。

    server {
      listen 80;
    
      server_name your_domain.com;
    
      location / {
        proxy_pass http://localhost:5555;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
       }
    }
    

    【讨论】:

    • 不一定重要,但我没有提到我在 docker 容器中运行它。你在告诉我我不应该做什么,但没有提及为什么。 (参见上面的 6 ea ?)非常感谢。
    • 您的应用程序似乎已暴露于某种流量机器人。有人正在使用各种主机标头针对您的应用程序生成大量 HTTP 请求。因此,您必须配置您的服务器堆栈以侦听特定域,以便摆脱那些不需要的请求。
    • 如果您能够使用像 Cloudflare 这样的 Web 应用程序防火墙,那就太好了。然后,您可以将 iptables 配置为仅与防火墙 IP 通信。因此,您可以完全摆脱恶意流量,因为外部系统将无法直接与您的服务器通信。
    猜你喜欢
    • 2023-03-09
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多