防止 DDoS 和 Web 服务器中断
Prevent DDoS and Webserver breaking
目前我们 运行 NGINX 作为 MVC 框架的反向代理,使用 TWIG、PHP、Elasticache、MySQL、NodeJS (socket.io) <- Instant通知和消息
我们的网站具有不错的加载速度,但我们不得不不断重新加载 PHP 因为人们一直在 DDoSing 我们的网站。我们不知道如何缓解这种情况,但我们已经在 CloudFlare 中创建了每 10 秒 60 个请求的速率限制规则。我们唯一的幸运是将网站置于重度攻击模式,但这会导致用户在浏览网站时经常等待 5 秒。虽然我们不知道是谁在进行攻击,但我们希望阻止其中的大部分攻击,因为该网站几乎每隔一天就会被关闭。
我们可以做些什么来防止站点在 DDoS 攻击后为用户提供 502 页面?
我们可以采取哪些措施来尽早定位并阻断攻击源头?
我们没有很多钱花钱请一家公司来喜欢 imperva 来处理这个问题,但我们希望继续开发我们的平台,而不是让我们的用户不断地加载 502 或等待 5 秒他们加载的很多页面(来自 cloudflare)。
我假设您的 CloudFlare 帐户是基本计划,默认情况下不提供 Layer3/4/7 DDOS 缓解措施,但您仍然可以通过在 CloudFlare 中应用相关的 WAF 规则来保护您的网站免受常见的 DDOS 攻击DDOS 仍在继续,但为此您必须观察 Web 服务器日志和 CloudFlare 面板以查看攻击模式。
第一步应该是降低您当前的速率限制,即 60 requests/10 秒。
其次,我建议寻找正在进行的 DDOS 攻击的模式,这将帮助您通过在 CloudFlare 中应用相应的规则来减轻它们(每个 DDOS 都有不同的模式,需要不同的缓解步骤)。
作为一般规则: 在您网站的某些 pages/endpoints 上或超过特定速率限制时,通过 CloudFlare 启用 Javascript 或验证码质询。这很有用,因为 DDOS 攻击是通过使用机器人进行的,当您在您的网站上应用 Javascript 或验证码挑战时,只有真正的人类用户才能通过这些挑战,机器人会被过滤掉。
此外,我建议通过 CloudFlare 设置 DDOS 警报,这将帮助您及时采取行动(如上所述)在您的用户受到影响和托管服务器被阻塞之前阻止这些攻击。
目前我们 运行 NGINX 作为 MVC 框架的反向代理,使用 TWIG、PHP、Elasticache、MySQL、NodeJS (socket.io) <- Instant通知和消息
我们的网站具有不错的加载速度,但我们不得不不断重新加载 PHP 因为人们一直在 DDoSing 我们的网站。我们不知道如何缓解这种情况,但我们已经在 CloudFlare 中创建了每 10 秒 60 个请求的速率限制规则。我们唯一的幸运是将网站置于重度攻击模式,但这会导致用户在浏览网站时经常等待 5 秒。虽然我们不知道是谁在进行攻击,但我们希望阻止其中的大部分攻击,因为该网站几乎每隔一天就会被关闭。
我们可以做些什么来防止站点在 DDoS 攻击后为用户提供 502 页面?
我们可以采取哪些措施来尽早定位并阻断攻击源头?
我们没有很多钱花钱请一家公司来喜欢 imperva 来处理这个问题,但我们希望继续开发我们的平台,而不是让我们的用户不断地加载 502 或等待 5 秒他们加载的很多页面(来自 cloudflare)。
我假设您的 CloudFlare 帐户是基本计划,默认情况下不提供 Layer3/4/7 DDOS 缓解措施,但您仍然可以通过在 CloudFlare 中应用相关的 WAF 规则来保护您的网站免受常见的 DDOS 攻击DDOS 仍在继续,但为此您必须观察 Web 服务器日志和 CloudFlare 面板以查看攻击模式。
第一步应该是降低您当前的速率限制,即 60 requests/10 秒。
其次,我建议寻找正在进行的 DDOS 攻击的模式,这将帮助您通过在 CloudFlare 中应用相应的规则来减轻它们(每个 DDOS 都有不同的模式,需要不同的缓解步骤)。
作为一般规则: 在您网站的某些 pages/endpoints 上或超过特定速率限制时,通过 CloudFlare 启用 Javascript 或验证码质询。这很有用,因为 DDOS 攻击是通过使用机器人进行的,当您在您的网站上应用 Javascript 或验证码挑战时,只有真正的人类用户才能通过这些挑战,机器人会被过滤掉。
此外,我建议通过 CloudFlare 设置 DDOS 警报,这将帮助您及时采取行动(如上所述)在您的用户受到影响和托管服务器被阻塞之前阻止这些攻击。