gpt4 book ai didi

php - 如何启用 DDoS 保护?

转载 作者:行者123 更新时间:2023-12-01 17:59:28 27 4
gpt4 key购买 nike

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

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

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

最佳答案

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

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

  • 在开始构建 DDOS 防御之前,请考虑最坏情况下的风险值(value)是什么。对于小型社区的非关键、免费使用的服务,风险的总值(value)可能是花生。对于已建立的数十亿美元业务的付费、面向公众、任务关键型系统,其值(value)可能就是公司的值(value)。在后一种情况下,您不应该使用 StackExchange :) 无论如何,要防御 DDOS,您需要一种深度防御方法:
  • 与您的托管中心 合作以了解他们提供的服务,包括其与互联网的网络连接的 IP 和端口过滤以及他们提供的防火墙服务。这一点很重要:托管公司会从互联网上撤下许多站点,因为托管公司要处理由 DDOS 对一位客户造成的数据中心范围的中断。此外,在 DDOS 攻击期间,您将与托管中心的工作人员密切合作,因此了解他们的紧急电话号码并与他们保持良好关系:) 他们应该能够阻止整个国际区域,完全阻止特定服务或网络协议(protocol)和其他广谱防御措施,或者仅允许列入白名单的 IP(取决于您的业务模式)
  • 在托管中心时 - 使用 Content Delivery Network 将(主要是静态的)服务分发到您的最终用户附近,并向 DDOS 架构师隐藏您的真实服务器。完整的 CDN 太大,DDOS 无法删除所有国家/地区的所有节点;如果 DDOS 集中在一个国家,至少其他用户还可以。
  • 使用最新的安全补丁 更新您的所有系统和软件包 - 我的意思是所有这些:
  • 托管交换机 - 是的,这些有时需要更新
  • 路由器
  • 防火墙
  • 负载均衡器
  • 操作系统
  • Web 服务器
  • 语言及其库
  • 确保您拥有 良好的防火墙或安全设备 并由合格的安全专家定期检查。防火墙上的强规则可以很好地防御许多简单的攻击。能够管理每个开放服务的可用带宽也很有用。
  • 有好 network monitoring tools 就位 - 这可以帮助您理解:
  • 您正受到攻击,而不仅仅是承受重负载
  • 攻击来自何处(可能包括您通常不与之开展业务的国家/地区)和
  • 实际攻击是什么(端口、服务、协议(protocol)、IP 和数据包内容)
  • 攻击可能只是大量使用合法的网站服务(例如点击运行查询或插入/更新/删除数据的“合法”URI) - 来自数千万到数百万个不同 IP 地址的数千或数百万个请求将使站点它的膝盖。或者,某些服务的运行成本可能非常高,以至于只有少数请求会导致 DOS - 想想一个非常昂贵的报告。所以你需要很好的 应用级监控 正在发生的事情:
  • 调用了哪些服务以及发送了哪些参数/数据(即登录您的应用程序)
  • 哪些用户正在调用以及来自哪些 IP(即登录您的应用程序)
  • 什么查询和插入/更新/删除数据库正在执行
  • 系统中所有计算机(和 VM)上的平均负载、CPU 利用率、磁盘 I/O、网络流量
  • 确保所有这些信息都可以轻松检索,并且您可以关联来自不同计算机和服务的日志(即确保所有计算机都使用 ntp 进行时间同步)。
  • 应用程序中的合理约束和限制 。例如,您可能会:
  • 使用负载均衡器中的 QoS 功能将所有匿名 session 发送到集群中单独的应用程序服务器,而登录用户使用另一组。这可以防止应用程序级匿名 DDOS 带走有值(value)的客户
  • 使用强大的 CAPCHA 保护匿名服务
  • session 超时
  • 对某些类型的请求(如报告)设置 session 限制或速率限制。确保您可以在必要时关闭匿名访问
  • 确保用户对并发 session 数有限制(防止被黑账户登录百万次)
  • 为不同的服务(例如事务使用与报告使用)提供不同的数据库应用程序用户,并使用数据库资源管理来防止一种类型的 Web 请求压倒所有其他类型
  • 如果可能,使这些约束成为动态的,或者至少是可配置的。这样,当您受到攻击时,您可以设置激进的临时限制(“限制”攻击),例如每个用户只有一个 session ,并且没有匿名访问。这对您的客户来说当然不是很好,但比根本没有服务要好得多。
  • 最后但并非最不重要的是,编写 DOS 响应计划 文档,并让所有相关方进行内部审核:业务、管理、软件开发团队、IT 团队和安全专家。编写文档的过程将使您和您的团队仔细考虑问题,并帮助您做好准备,以防最坏的情况发生在您休息日的凌晨 3 点。该文件应包括(除其他外):
  • 有什么风险,以及给企业带来的成本
  • Assets 保护措施
  • 如何检测到攻击
  • 计划的响应和升级程序
  • 使系统和本文档保持最新的过程

  • 所以,除了序言,这里有一些具体的答案:

    DDOS are generally blocked on a server level, right?



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

    Is there a way to block it on a PHP level, or at least reduce it?



    一些 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 个以上的请求吗?匿名用户可以访问昂贵的报告吗?
  • 用于匿名访问的 CAPTCHA:为所有匿名请求实现 CAPTCHA,以验证用户是个人,而不是 DDOS 机器人。

  • What's the fastest and most common way to stop DDOS attacks?



    最快的可能是向勒索让步,尽管这可能是不可取的。

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

    如果您期待 DDOS,最好根据您的托管服务提供商可以提供的保护级别对其进行认证。他们应该拥有 DDOS 经验和缓解它的工具——了解他们的工具、流程和升级程序。还要询问托管服务提供商从其上游提供商那里获得了哪些支持。这些服务可能意味着更多的预付费用或每月费用,但请将其视为保险单。

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

    如果幸运并且您有一个固定的小客户群,您也许能够确定您的有效客户 IP 地址。如果是这种情况,您可能会暂时切换到白名单方法。确保您的所有客户都知道这是怎么回事,这样他们就可以在需要从新 IP 访问时致电 :)

    Doug McClean 有一些很好的建议:https://stackoverflow.com/a/1029613/1395668

    关于php - 如何启用 DDoS 保护?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14477942/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com