情况:
- 最初在 VPS 上运行的 React 应用程序
- 几天前,我们的网站遭受了 DDOS 攻击,导致瘫痪。
- 在攻击期间,我们决定迁移到 Netlify。
- 迁移后,网站再次上线。攻击显然持续了几个小时,Netlify 在保持网站正常运行方面做得很好……
- ...但成本很高(3.4 TB 的带宽消耗,这意味着一笔昂贵的费用)。
我在找防止 DDOS 攻击影响的选项(避免停机以及带宽使用/成本)。
我对任何设置简单且与 Netlify 配合良好的东西特别感兴趣,但我肯定会考虑所有的选择。
我正在考虑的一些选择:
- 优化页面大小 - 可以减少带宽,但这不是最终的解决方案(您可以进行的优化总是有限制的)。
- 在 Netlify 前面配置 Cloudflare?-我想知道这是否能解决问题,以及是否有需要考虑的影响(关于表现和别的含义但我真的没发现太多)。
- 还有其他选择吗?
我承认这个问题很广泛,但如果能提供建议、意见和进一步的细节(如何设置、自己的经验、涉及这个特定问题的参考资料/文章......)我将非常感激。
答案1
将您的服务器置于 CDN/DDOS 保护供应商(例如 CloudFlare/AWS CloudFront + WAF)之后,并确保您的服务器仅接受来自您的供应商和您自己的静态 IP 的直接连接。
一般步骤如下:
- 注册服务并订阅您需要的计划
- 在您的服务上设置 DNS 以指向您的主机。确保传输您需要的任何其他 DNS 记录 - MX、CNAME 等
- 将您的域名注册商更改为使用 CDN 或 DDOS 供应商 DNS 服务器。等待更改在整个互联网上应用,最简单的方法是等待 24 小时。您不应该看到任何差异,它应该保持完全相同的运行。
- 设置防火墙,仅接受来自 CDN 已发布的 IP 范围和您的私有 IP(例如您的工作或家庭静态 IP)的请求。如果您没有静态家庭 IP,则每次想要通过 SSH/RDP 进入服务器时都必须更改防火墙。以下是CloudFlare 发布的 IP 范围。理想情况下是 IPv4 和 IPv6。此防火墙应为托管服务,否则 DDOS 仍将使用您的服务器带宽,只是不会影响您的应用程序。在 AWS 中,您可以使用安全组,在 Digital Ocean 中,您可以使用 CloudFirewall 等
这并不是特别困难,但你确实需要了解一些背景知识,如 IP、防火墙等。每个 CDN 供应商都有文档可以指导你完成这一步。
扩展
在云中,您还可以进行扩展以满足超出 DDOS 保护系统的部分 DDOS 负载。
你应该读一下AWS DDOS 白皮书,这在很大程度上适用于其他提供商和云。