我正在遭受 DDoS 攻击,应该怎么做?

本文档详细介绍了如何在 DDoS(分布式拒绝服务)攻击中保护您的网络资源。如果您目前正遭受 DDoS 攻击,或者认为您的网络资源会遭受攻击,您应该采取以下步骤以获得最大限度的防护。

必需步骤

第 1 步: 注册 Cloudflare 来获得无限量的 DDoS 防护
第 2 步: 开启 I’m Under Attack 模式
第 3 步: 开启 WAF(Web 应用程序防火墙)
第 4 步: 将您的DNS记录添加至Cloudflare来获得最佳安全性
第 5 步: 在您的源站将来自Cloudflare IP地址的请求列入白名单
第 6 步: 拦截特定国家或地区的访问者,或者在Cloudflare开启速率限制

当您的网站重新上线之后

第 7 步:根据您的需求创建Page Rule
第 8 步: 自定义您的Challenge页面
第 9 步: 恢复日志中的访问者原始 IP 地址
第 10 步:对来自特定ASN请求进行Challenge
第 11 步:使用 Zone Lockdown来限制IP对指定URL的访问,或使用User-Agent访问规则来拦截可疑的User-Agent


如果在执行以上步骤后,您的网站服务仍然没有恢复:

第 12 步: 向您的服务器提供商请求新的服务器 IP
第 13 步: 将您的电子邮件服务迁移到另外的服务器上



第 1 步:注册 Cloudflare 来获得无限量 DDoS 防护

时间:2 分钟,难度:简单

Cloudflare 的无限量 DDoS 防护可以帮助您抵御所有攻击:这包括DNS 攻击、第 3/4 层攻击和第 7 层攻击,我们对攻击的规模、类型和持续时间不设防护上限。

这项服务包含在Cloudflare全部免费和付费计划当中。当您注册以后,我们会自动为您开通高级 DDOS 防护服务。Cloudflare 不按攻击的规模计费,也没有防护攻击量的上限。

您想成为Cloudflare新用户吗?请点击这里注册注意事项:在您注册的过程中,您需要修改DNS信息和名服务器,平均开通所需时间为 15 分钟,最多可能需要 3 天。

更多资源:


第 2 步:开启 I’m Under Attack 模式
所需时间:1 分钟,难度:简单

“I’m Under Attack”模式可以帮助您防护第 7 层 DDoS 攻击。I’m Under Attack 模式可以防止恶意 HTTP 请求传递到您的源服务器。您的合法访问者在首次进行访问时,会看到一个短暂展现的DDoS防护页面:



以上图片是您网站的访问者可能会看到页面的示例。

如果您不想使用我们的默认页面,您可以设置您的自定义页面(见第 7 步)。要开启“I’m Under Attack”功能,请转到您控制面板的Overview页面并单击“Quick Actions”,然后单击“I'm Under Attack”。




第 3 步:开启WAF(Web 应用程序防火墙)
时间:1 分钟,难度:简单

所有付费计划的用户都可以使用 Cloudflare的 Web 应用程序防火墙 (WAF)。这项功能可以在 Cloudflare 控制面板的 Firewall 页面开启。


 
除了WAF核心规则集外,Cloudflare 还提供了许多规则包和可以单独设置的规则。

有关 Cloudflare WAF 的更多信息


第 4 步:将您的DNS记录添加至Cloudflare来获得最佳安全性
所需时间:10 分钟,难度:中等

在 Cloudflare DNS 设置页面上,您可以按每条DNS记录来启用 Cloudflare 的安全和性能服务。当云为橙色时,Cloudflare服务为开启状态如果云为灰色,则Cloudflare服务对这条DNS记录关闭,这意味着攻击者将绕过Cloudflare服务直接访问您的服务器。

以下为如何设置您的 DNS 记录以获得最大限度的防护:

  1. 在所有适用的 DNS 记录上启用 Cloudflare 服务(橙色云) 
  2. 直接使用您的源站 IP 来执行 FTP 或 SSH 等操作,并删除关于 FTP/SSH 的任何 DNS 记录(这一类的DNS记录包括电子邮件记录,无法受橙色云的保护)
  3. 删除所有非必需的泛解析记录(Wildcard),泛解析记录将暴露您的源站 IP 地址(目前只有 Enterprise 计划可以保护泛解析 DNS 记录)
  4. 移除可能会暴露您源站IP地址的邮件服务DNS记录


将所有处理网站流量的记录标记为橙色云
默认情况下,邮件、ftp、ssh 和 cPanel 等协议都应该设置为灰色云。如果您为这些子域名启用 Cloudflare,则协议将无法运行。但是,在为一条记录启用灰色云的时候,攻击者则可以查询您的源站 IP,如果他们知道这些子域名的IP地址,就可以绕过 Cloudflare 的 DDoS 安全解决方案。要解决此问题,请为适用的子域名启用橙色云。

使用您的源站IP访问 FTP、SSH、ETC协议
如果您在所有 DNS 记录上启用了橙色云,您将需要使用直接 IP 来访问某些协议,如邮件、ftp、ssh 和 cPanel。例如,对于 FTP,您可以使用 ftp.example.com 或 ftp://yourserverIP(在此处使用您的服务器 IP 地址)。

注意事项:如果没有启用橙色云,Cloudflare则无法代理这一条记录,这条记录将直接指向您的目标地址,您无需担心使用上的问题。

注意事项:Cloudflare 为直接在官方网站开通的客户提供权威 DNS 解析服务;我们会为您的网站解析委托给 Cloudflare 的记录。如果您通过与我们合作的主机提供商或 CNAME 模式开通了 Cloudflare,那么您的 DNS 将在需要在其他DNS提供商处进行控制。如果攻击者直接攻击您的服务器,您可能需要直接通过 Cloudflare 注册并在重新从第 1 步开始进行配置。



第 5 步:在您的源站将来自Cloudflare IP地址的请求列入白名单
所需时间:10 分钟,难度:中等

Cloudflare 作为反向代理运行,因此在您源服务器,您会观察到请求来自Cloudflare的IP地址。因此确保您的服务器始终可以接受来自 Cloudflare 的请求是非常重要的。Cloudflare IP 范围列在 http://www.cloudflare.com/ips 此页面上,该页面还包含了一份可以用于在机器上配置的纯文本链接。一旦我们计划添加新的IP地址,我们会提前一个月将新IP加入公布的IP列表,并使用多种渠道通知这一消息。



第 6 步:拦截特定国家或地区的访问者,或者在Cloudflare开启速率限制

所需时间:10 分钟,难度:中等

Cloudflare 可以帮助您拦截单独的 IP 地址,也可以拦截整个国家或地区。在您添加需要拦截的 IP 或国家/地区后,安全规则将 2 分钟内生效。我们建议您通过检查日志文件来确定需要拦截的IP或者国家/地区。您也可以在下文中参考我们的进阶提示。您可以在 Cloudflare 控制面板的Firewall页面找到 IP Firewall。注意事项:只有 Enterprise 计划可以在IP Firewall拦截整个国家或地区。

您可以在Firewall > IP Firewall >Access Rules 来设置对于国家/地区的访问规则

Screen_Shot_2018-02-10_at_9.20.59_PM.png

您可以在Firewall > IP Firewall >Access Rules 来设置拦截IP地址

Screen_Shot_2018-02-10_at_10.38.48_AM.png

您可以在Firewall > IP Firewall >Access Rules 来设置拦截IP 地址范围

Screen_Shot_2018-02-10_at_10.40.49_AM.png

 

我们还提供 Rate Limiting,可以帮助控制对服务器的请求流量。这对于确保访问者不会发送过多请求而使服务器过载非常有用。关于 Cloudflare Rate Limiting 的更多信息,请访问此处

进阶提示:如果您想获取过去 48 小时内发送最多请求的访问者列表,请按照这些步骤操作。您可以使用这些信息来识别您可能想要手动添加到 Cloudflare 拦截列表中的 IP。



如果您的网站资源还可以照常工作,请继续执行第 7 步。如果您的网站资源由于攻击仍然处于脱机状态,请跳到第 10 步。



第 7 步:根据您的需求创建Page Rule
所需时间:10 分钟,难度:中等

如果您的网站服务恢复运转,您可以通过创建 Page Rule 减少到达您源站的流量。通过Page Rule您可以在Cloudflare对您的缓存进行精细控制。请您为适当的网页创建 Page Rule,并将缓存方式更改为“Cache Everything”。这意味着 Cloudflare 将为访问者缓存整个页面,我们将为访问者提供这个页面,这样可以避免请求到达源服务器。

示例:为此URL创建 Page Rule,并缓存全部内容:*example.com/name-of-a-specific-page 这个 * 将涵盖根和所有子域(如 www)。

Screen_Shot_2018-02-14_at_3.51.20_PM.png

Screen_Shot_2018-02-14_at_3.51.08_PM.png

注意事项:请您在您的服务器正常运转时创建 Page Rule,否则 Cloudflare 将缓存一个错误页面(新的请求将获得这个缓存后的页面)。您还应确保页面上没有基于访问者个性化信息,因为使用Cache Everything,HTML也会被缓存。如果您决定移除现存的 Page Rule,您的更改将在 2 分钟内生效。Page Rule 会按照页面上的顺序从高到低执行。

进阶内容:如果缓存了登录页面或后台管理页面,则可能会将其传输给与预期之外的访问者。要解决这个问题,可以选择为管理/登录 URL(即 example.com/admin/*)创建更高优先级的 Page Rule来不做缓存(bypass cache),并为网页/文件夹的其余部分启用“Cache Everything” 。

更多 Page Rule 教程



第 8 步:自定义您的Challenge页面
所需时间:30 分钟,难度:中等

付费版计划的用户可以自定义Challenge及 I'm Under Attack 模式所展示的页面。Challenge页面会根据您设置的Cloudflare安全性和访问规则,对潜在可疑访问者显示。如果 Cloudflare 服务认为您网站的访问者具有潜在恶意,则向访问者发送“Challenge”页面,要求被要求经过Captcha。如果访问者通过了 Captcha 测试,那么他们将继续访问您的网站。

要自定义您的Challenge页面,请转到 Cloudflare 控制面板的Custom Pages部分。

页面是否自定义并不会影响这些安全功能,但是自定义可以使您的页面反映您的品牌和您希望展现的错误信息。



第 9 步:恢复日志中的访问者原始原始 IP 地址
所需时间:15 分钟,难度:中等

Cloudflare作为反向代理,会使您的服务器收到来自我们全球网络数据中心的请求。由于代理的原因,这些请求会来自Cloudflare的IP地址,但Cloudflare始终在请求的HTTP报头中包含原始访问者 IP 地址。Cloudflare 提供了多种工具用于从HTTP报头提取IP,例如面向 Apache Web 服务器的 mod_cloudflare。您可以在此处查看完整列表:https://support.cloudflare.com/entries/22055137



如果您的网站仍处于脱机状态,或者您想添加其他安全措施


第 10 步:使用防火墙Challenge特定 ASN
所需时间:15 分钟,难度:中等

当特定 ASN 向站点发出过多请求时,您还可以Challenge或者拦截 ASN。

Screen_Shot_2018-03-07_at_3.15.21_PM.png

 

第 11 步:使用 Zone Lockdown 来限制IP对指定URL的访问,或使用User-Agent访问规则来拦截可疑的User-Agent                                  时间:15 分钟,难度:高

Zone Lockdown是设定一个或多个 IP 地址或网络列表,使您自定的URL只可以被列表内的IP访问。您可以在一条规则中指定多个目标,并且可以使用 IPv4 或 IPv6 地址来设置规则,也可以使用 IP的CIDR格式,不包含在规则列表里的 IP 将被拒绝访问该页面。更多详情可以在此处 Zone Lockdown说明找到。

User-Agent规则通过检测客户浏览器或应用程序发送的User-Agent HTTP 报头是否与规则匹配来实施。User-Agent规则适用于整个域名。更多详情可在此处User-Agent 规则找到。

 

第 12 步:向您的主机提供商请求新的服务器 IP
所需时间:15 分钟,难度:高

如果您已完成上述所有步骤,但您的服务器持续负载过重,则攻击者可能已经获取了您的源站 IP。您需要联系您的主机提供商并要求他们为您提供新的源 IP,然后在您的 Cloudflare DNS 设置页面中进行更新。

您可以告诉您的 web 主机提供商:“我遭受了DDOS 攻击,正在使用Cloudflare的DDOS防护服务。但是,由于攻击者拥有我的源服务器 IP,绕过了我的DDOS防护服务。请给我一个新的源站IP,以便攻击者不再能直接攻击我的服务器。“

一旦拥有了新的服务器 IP 地址,请确保在“Cloudflare DNS 设置”页面中更新 IP。

对所有DNS记录开启 Cloudflare 橙色云后,Cloudflare 会让外界攻击者无法获取您的源服务器 IP 地址。



第 13 步:将您的电子邮件服务迁移到另外的服务器上
所需时间:60 分钟,难度:高

如果您在与网站服务相同的服务器上运行邮件,则攻击者将可以找到您的源服务器 IP。要解决这种安全隐患,您可以在与您的网站服务不同的服务器上使用电子邮件服务,无论是通过您自己的主机提供商或是第三方服务。

对于 Mac 用户: 您可以在 Terminal 运行此命令来查看您的 MX 记录返回了哪些 IP:dig +short $(dig mx +short WEBSITE)

例如,如果想要查询 example.com,我会输入:dig + short $(dig mx + short example.com),输出则是一个 IP 地址。这个 IP 地址将有可能被恶意攻击者获取。我们建议您确保此 IP 地址与网站服务器的 IP 地址不同。否则,即使您为您的网站服务更换IP,如果您的电子邮件也位于同一服务器上,则攻击者始终可以找到新的 IP。

对于 PC 用户:您可以在命令提示符下运行此命令来查看您的 MX 记录返回l哪些 IP:nslookup -q=mx WEBSITE

例如,如果您想查询 example.com,可以输入:nslookup -q=mx example.com

输出便是一个 IP 地址。这个 IP 地址将有可能被恶意攻击者获取。我们建议您确保此 IP 地址与网站服务器的 IP 地址不同。否则,即使您为您的网站服务更换IP,如果您的电子邮件也位于同一服务器上,则攻击者始终可以找到新的 IP。



我们希望上述信息可以帮助您抵御 DDoS 攻击。如果您仍然遇到困难,并希望获得24/7的通话支持,您可以升级到我们的 Enterprise 计划 并与技术支持工程师通话。




更多资源:

 

Not finding what you need?

95% of questions can be answered using the search tool. This is the quickest way to get a response.

由 Zendesk 提供技术支持