Nginx 如何防止 DDoS(分布式拒绝服务攻击)

作者头像

image.png

DDoS(分布式拒绝服务攻击)是一个让很多网站和服务头疼的问题。DDoS 攻击就像是一群不怀好意的人一起堵塞了你的店门,让正常的顾客无法进入。那我们该如何利用 Nginx 来防止这种攻击呢?

一、DDoS 攻击的特点

DDoS 攻击通常有以下几个特点:

  1. 攻击流量来源于一些固定的 IP 地址,而且每一个 IP 地址会创建比真实用户多得多的连接和请求。

  2. 攻击流量全部由机器产生,速率比人类用户高得多。

  3. 进行攻击的机器其 User-Agent 头不是标准的值,Referer 头有时也会被设置成能够与攻击关联起来的值。

二、Nginx 防止 DDoS 攻击的方法

  1. 限制请求率将 Nginx 可接受的入站请求率限制为适合真实用户的值。比如,通过配置让一个真正的用户每两秒钟才能访问一次登录页面。

    limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;
    server {
      ...
      location /loginUser.html {
          limit_req zone=one;
          ...
      }
    }
  2. 限制连接的数量将某个客户端 IP 地址所能打开的连接数限制为真实用户的合理值。例如,限制每一个 IP 对网站/product 部分打开的连接数不超过 10 个。

    limit_conn_zone $binary_remote_addr zone=addr:10m;
    server {
      ...
      location /product/ {
          limit_conn addr 10;
          ...
      }
    }
  3. 关闭慢连接关闭那些一直保持打开同时写数据又特别频繁的连接,因为它们会降低服务器接受新连接的能力。可以通过 client_body_timeout 和 client_header_timeout 指令控制请求体或者请求头的超时时间。

    server {
      client_body_timeout 5s;
      client_header_timeout 5s;
      ...
    }
  4. 设置 IP 黑名单如果能识别攻击者所使用的客户端 IP 地址,那么通过 deny 指令将其屏蔽,让 Nginx 拒绝来自这些地址的连接或请求。

    location / {
      deny 124.123.121.3;
      deny 124.123.121.5;
      deny 124.123.121.7;
      ...
    }
  5. 设置 IP 白名单如果允许访问的 IP 地址比较固定,那么通过 allow 和 deny 指令让网站或者应用程序只接受来自于某个 IP 地址或者某个 IP 地址段的请求。

    location / {
      allow 192.168.122.0/24;
      deny all;
      ...
    }
  6. 通过缓存削减流量峰值通过启用缓存并设置某些缓存参数让 Nginx 吸收攻击所产生的大部分流量峰值。同时,要注意 proxy_cache_key 指令定义的键中不要包含容易被攻击者利用的变量。

  7. 阻塞请求配置 Nginx 阻塞以下类型的请求

    • 以某个特定 URL 为目标的请求。

    • User-Agent 头中的值不在正常客户端范围之内的请求。

    • Referer 头中的值能够与攻击关联起来的请求。

    • 其他头中存在能够与攻击关联在一起的值的请求。

  8. 限制对后端服务器的连接数通常 Nginx 实例能够处理比后端服务器多得多的连接数,因此可以通过 Nginx 限制到每一个后端服务器的连接数。

    upstream website {
      server 192.168.100.1:80 max_conns=200;
      server 192.168.100.2:80 max_conns=200;
      queue 10 timeout=30s;
    }
隐藏内容

附件需要 登录 后就可下载!

免费声明

  1. 本网站的文章内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长QQ:304906607进行删除处理。
  2. 文章采用: 《署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)。
  3. 本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
  4. 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
  5. 本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
  6. 本站永久网址:https://www.aybk.cn
DY下载工具v2.0 支持点赞博主主页合集
« 上一篇 09-28
安卓SpaceCore多元空间v3.5 多开虚拟机安卓分身克隆
下一篇 » 09-28

发表评论

请先登录后才能发表评论

停留在世界边缘,与之惜别

个人信息

HI好朋友 ! 请登录
这是一个奇怪的站长,白天睡大觉,晚上魂飘飘~~~
+ 在线人数:309人
📘本站统计
  • 文章总数 9226篇
  • 注册用户 13829位
  • 运行天数 1439天
  • 评论总数 63120条
  • 总访问量 9506.6W+
  • 今日更新 9篇

立即签到

百度一下

随便看看

大家都在看

登陆
还没有账号?立即注册
点击按钮进行验证
忘记密码?
登陆
忘记密码
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
重置密码
注册
已经有账号?马上登陆
获取验证码
重新获取(60s)
点击按钮进行验证
立即注册