代码之家  ›  专栏  ›  技术社区  ›  maxisme

如何防范网络套接字DDOS攻击?

  •  2
  • maxisme  · 技术社区  · 6 年前

    我刚在我的电脑上执行了一个基本的DDOS:

    websocket-bench -a 2500 -c 200 wss://s.example.com
    

    让我非常沮丧的是我的服务器崩溃了!WS通过连接到我的nginx代理来工作:

        location / {
                proxy_pass http://sock;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header        X-Real-IP               $remote_addr;
                proxy_read_timeout 60;
        }
    
        upstream sock {
                server 127.0.0.1:1203 fail_timeout=1s;
        }
    

    在端口上的服务器上本地 1203 ratchet . 棘轮的设置是我允许任何连接 onMessage 执行身份验证,如果无效,则关闭连接。

    我也尝试过通过在第一个连接上传递头来进行身份验证,如果无效,套接字将关闭,但这一点都没有帮助,nginx仍然达到100%的资源,然后崩溃。

    我应该分析什么来防止这些碰撞?

    当将上游更改为另一个关闭端口(即禁用它)时,服务器仍会崩溃。

    1 回复  |  直到 6 年前
        1
  •  0
  •   miknik    6 年前

    或者更改您的身份验证逻辑以便Nginx处理它,或者实现 request and connection limits 在Nginx中控制有多少连接被接受并传递到上游服务器