当前位置: 首页 > 面试题库 >

如何启用DDoS保护?

班言
2023-03-14
问题内容

通常在服务器级别阻止DDoS(分布式拒绝服务攻击),对吗?

有没有办法在PHP级别上阻止它,或者至少减少它?

如果没有,阻止DDoS攻击的最快,最常见的方法是什么?


问题答案:

DDOS是一系列攻击,它们淹没了数据中心的关键系统,其中包括:

  • 托管中心与互联网的网络连接
  • 托管中心的内部网络和路由器
  • 您的防火墙和负载平衡器
  • 您的Web服务器,应用程序服务器和数据库。

在开始构建DDOS防御之前,请考虑一下最坏情况下的风险价值是什么。对于小型社区的非关键,免费使用的服务,总的风险价值可能是花生。对于已建立的数十亿美元业务的付费,面向公众的,关键任务系统,其价值可能就是公司的价值。在后一种情况下,您不应该使用StackExchange
:)无论如何,要防御DDOS,您需要一种深度防御方法:

  1. 与您的托管中心合作, 以了解他们提供的服务,包括他们与Internet的网络连接处的IP和端口过滤以及他们提供的防火墙服务。这很关键: 托管公司 将许多站点从Internet撤出,因为托管公司要处理DDOS对一个客户造成的整个数据中心范围的中断。另外,在DDOS攻击期间,您将与托管中心的工作人员非常紧密地合作,因此请了解他们的紧急电话号码并与他们保持良好的关系:)他们应该能够阻止整个国际区域,完全阻止特定的服务或网络协议和其他广谱防御措施,或者仅允许列入白名单的IP(取决于您的业务模型
  2. 在托管中心上时-使用 内容交付网络 在最终用户附近分发(主要是静态的)服务,并向DDOS架构师隐藏真正的服务器。完整的CDN太大了,DDOS无法提取所有国家/地区的所有节点。如果DDOS集中在一个国家,则至少其他用户仍然可以。
  3. 使用最新的安全补丁更新 所有系统和软件包-我的意思是所有它们:

    • 托管交换机-是的,有时需要更新
    • 路由器
    • 防火墙
    • 负载均衡器
    • 操作系统
    • 网络服务器
    • 语言及其库
    • 确保你有一个 好的防火墙或安全设备 设置 ,并定期由合格的安全专家审查 。防火墙上的严格规则可以很好地抵御许多简单的攻击。能够管理每个开放服务可用的带宽也很有用。
  4. 拥有良好的 网络监控工具 -这可以帮助您了解:

    • 遭受攻击,而不只是承受沉重的负担
    • 攻击的来源(可能包括您通常不与之开展业务的国家)和
    • 攻击实际上是什么(端口,服务,协议,IP和数据包内容)
    • 攻击可能只是大量使用合法的网站服务(例如,击中运行查询的“合法” URI或插入/更新/删除数据)-来自成千上万个不同IP地址的成千上万个请求会将网站带到其膝盖 另外,某些服务可能运行起来非常昂贵,以至于只有很少的请求会导致DOS-想想一个非常昂贵的报告。因此,您需要对正在发生的事情进行良好的 应用程序级别监视

    • 调用了哪些服务以及发送了哪些参数/数据(即,登录应用程序)

    • 哪些用户正在执行调用以及从哪个IP(即登录您的应用程序)
    • 数据库正在执行哪些查询和插入/更新/删除操作
    • 系统中所有计算机(和VM)上的平均负载,CPU利用率,磁盘I / O,网络流量
    • 确保所有这些信息都易于检索,并且您可以关联来自不同计算机和服务的日志(即,确保所有计算机都使用ntp进行时间同步)。
    • 您的应用程序中的合理约束和限制 。例如,您可能会:

    • 使用负载平衡器中的QoS功能,将所有匿名会话发送到群集中的单独应用程序服务器,而已登录用户则使用另一组。这样可以防止应用程序级匿名DDOS吸引有价值的客户

    • 使用强大的CAPCHA保护匿名服务
    • 会话超时
    • 对某些类型的请求(例如报告)设置会话限制或速率限制。确保必要时可以关闭匿名访问
    • 确保用户对并发会话数有限制(以防止被黑客入侵的帐户登录一百万次)
    • 为不同的服务(例如,交易用途和报告用途)使用不同的数据库应用程序用户,并使用数据库资源管理来防止一种Web请求压倒所有其他请求
    • 如果可能的话,使这些约束成为动态的,或者至少是可配置的。这样,在遭受攻击时,您可以设置积极的临时限制(“限制”攻击),例如每个用户仅一个会话,而没有匿名访问。对于您的客户来说,这当然不是很好,但是比根本没有服务要好得多。
    • 最后但并非最不重要的一点是,编写 DOS响应计划 文档,并由所有相关方进行内部审查:业务,管理,软件开发团队,IT团队和安全专家。编写文档的过程将使您和您的团队仔细考虑问题,并帮助您准备好在一天假的凌晨3点发生最坏的情况。该文件应涵盖(除其他事项外):

    • 有什么风险以及业务成本

    • 为保护资产采取的措施
    • 如何检测到攻击
    • 计划的响应和升级程序
    • 使系统和本文档保持最新的过程

因此,撇开序言,这里有一些具体答案:

DDOS通常在服务器级别被阻止,对吗?

并非如此-大多数最严重的DDOS攻击都是低级(在IP数据包级别),并由为处理DDOS攻击而开发的路由规则,防火墙和安全设备来处理。

有没有办法在PHP级别上阻止它,或者至少减少它?

一些DDOS攻击针对应用程序本身,发送有效的URI和HTTP请求。当请求率上升时,您的服务器开始出现问题,并且SLA中断。在这种情况下,您可以在PHP级别上执行以下操作:

  • 应用程序级别监视:确保每个服务/页面都以可以查看正在发生的方式记录请求(以便您可以采取措施减轻攻击)。一些想法:

    • 具有一种日志格式,您可以轻松地将其加载到日志工具(或Excel或类似工具)中,并使用命令行工具(grep,sed,awk)进行解析。请记住,DDOS将生成数百万行的日志。您可能需要对日志进行切片(尤其是关于URI,时间,IP和用户),以弄清正在发生的事情,并需要生成如下数据:

    • 正在访问哪些URI

    • 哪些URI失败率很高(可能是攻击者正在攻击的特定URI的指标)
    • 哪些用户正在访问服务
    • 每个用户从多少个IP访问服务
    • 匿名用户正在访问哪些URI
    • 给定服务使用了哪些参数
    • 审核特定用户的操作
    • 记录每个请求的IP地址。请勿反向DNS-具有讽刺意味的是,这样做的成本使攻击者更容易使用DDOS

    • 记录整个URI和HTTP方法,例如“ GET http://example.com/path/to/service?arg1=ddos ”

    • 记录用户ID(如果有)
    • 记录重要的HTTP参数
    • 合理的速率限制:您可以对给定IP或用户在给定时间内可以发出的请求数量实施限制。合法客户每秒可以发出10个以上的请求吗?匿名用户可以访问所有昂贵的报告吗?
  • 用于匿名访问的验证码:对所有匿名请求实施验证码,以验证用户是个人,而不是DDOS僵尸程序。

阻止DDOS攻击最快,最常见的方法是什么?

最快的可能是屈服于勒索,尽管这可能是不希望的。

否则,您要做的第一件事就是联系您的托管和/或CDN提供商并与他们合作(如果他们还没有联系您,则已经在问这到底是怎么回事…)。发生DDOS时,可能会附带影响托管服务提供商的其他客户,并且提供商可能会承受相当大的压力,仅出于保护他们的资源的目的而关闭您的站点。准备与提供者共享您的日志(任何和所有信息);这些日志及其网络监视器可以共同提供足够的信息来阻止/缓解攻击。

如果您期望使用DDOS,则最好让您的主机提供商在其提供的保护级别上合格。他们应该具有DDOS经验和减轻它的工具-
了解他们的工具,过程和升级程序。还询问托管服务提供商 从其 上游提供商那里 获得
了哪些支持。这些服务可能意味着更多的前期或每月费用,但是将其视为保险单。

在受到攻击时,您将需要获取日志并进行挖掘-尝试找出攻击的模式。您应该考虑关闭匿名访问并在受到攻击的情况下限制服务(即降低应用程序对服务的速率限制)。

如果幸运的话,您有一个固定的小型客户群,则可以确定有效的客户IP地址。如果是这种情况,您可能会在短时间内切换到白名单方法。确保所有客户都知道这种情况在继续,以便他们在需要从新IP访问时可以打电话:)



 类似资料:
  • 问题内容: 我以前偶尔会抓取电子商务网页以获取产品价格信息。我有一段时间没有使用过使用Scrapy构建的刮板,而昨天却试图使用它-我遇到了机器人防护问题。 它使用的是CloudFlare的DDOS保护,基本上是使用JavaScript评估来过滤掉禁用了JS的浏览器(因此是抓取器)。评估功能后,将生成带有计算数字的响应。作为回报,服务会发回两个身份验证Cookie,这些身份验证Cookie附加在每个

  • 最近,我一直在使用AWS API gateway,在那里我创建了一个API,并用API key和Cognito(OAuth)保护它。 有一天,我发现我的API被访问了10K次,但失败了,因为攻击者没有访问它的权限。 任何帮助都很感激...

  • Anti DDOS | BASH SCRIPT Programming Languages : BASH System : Linux Explanation : Anti-DDOS project is an open source software project developed to protect against DOS and DDoS attacks. The project wa

  • DoS Deflate 是一个轻量级的 bash shell 脚本,旨在协助阻止拒绝服务攻击的过程。它使用以下命令创建连接到服务器的 IP 地址列表及其总连接数。在软件层面,它是最简单、最容易的安装解决方案之一。 netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n 具有超过预先配置连接数量的 IP 地址会

  • 启用触摸保护 把 Yubikey-manager 安装在一个绝对路径:【译者注:homebrew 是 macOS 平台的包管理软件】 ❯ brew install libu2f-host libusb swig ykpers ❯ git clone git@github.com:Yubico/Yubikey-manager.git ❯ git submodule update --init --r