注册
登录
DDoS分布式拒绝服务
如何启用DDoS保护?
返回
如何启用DDoS保护?
作者:
春风助手
发布时间:
2025-05-11 02:38:34 (11小时前)
通常在服务器级别阻止DDoS(分布式拒绝服务攻击),对吗?
有没有办法在PHP级别上阻止它,或者至少减少它?
如果没有,阻止DDoS攻击的最快,最常见的方法是什么?
收藏
举报
2 条回复
1#
回复此人
只怕再见是故人
|
2020-07-30 09-48
DDOS是一系列攻击,它们淹没了数据中心的关键系统,其中包括: 托管中心与互联网的网络连接 托管中心的内部网络和路由器 您的防火墙和负载平衡器 您的Web服务器,应用程序服务器和数据库。 在开始构建DDOS防御之前,请考虑一下最坏情况下的风险价值是什么。对于小型社区的非关键,免费使用的服务,总的风险价值可能是花生。对于已建立的数十亿美元业务的付费,面向公众的,关键任务系统,其价值可能是公司的价值。在后一种情况下,您不应该使用StackExchange :)无论如何,要防御DDOS,您需要一种深度防御方法: 与您的托管中心合作,以了解他们提供的服务,包括他们与Internet的网络连接处的IP和端口过滤以及他们提供的防火墙服务。这很关键:托管公司将许多站点从Internet撤出,因为托管公司处理DDOS对一个客户造成的整个数据中心范围的中断。另外,在DDOS攻击期间,您将与托管中心的工作人员非常紧密地合作,因此请了解他们的紧急电话号码并与他们保持良好的关系:)他们应该能够阻止整个国际区域,完全阻止特定的服务或网络协议和其他广谱防御措施,或者仅允许列入白名单的IP(取决于您的业务模型) 在托管中心上时-使用内容交付网络在最终用户附近分发(主要是静态的)服务,并向DDOS架构师隐藏真正的服务器。完整的CDN太大了,DDOS无法提取所有国家/地区的所有节点。如果DDOS集中在一个国家,则至少其他用户仍然可以。 使用最新的安全补丁更新所有系统和软件包-我的意思是全部: 管理型交换机-是的,有时需要更新 路由器 防火墙 负载均衡器 操作系统 网络服务器 语言及其库 确保你有一个好的防火墙或安全设备设置,并定期由合格的安全专家审查。防火墙上的严格规则可以很好地抵御许多简单的攻击。能够管理每个开放服务可用的带宽也很有用。 拥有良好的网络监控工具 -这可以帮助您了解: 遭受攻击,而不只是承受沉重的负担 攻击的来源(可能包括您通常不与之开展业务的国家)和 攻击实际上是什么(端口,服务,协议,IP和数据包内容) 攻击可能只是大量使用合法的网站服务(例如,击中运行查询的“合法” URI或插入/更新/删除数据)-成千上万个来自数十万个不同IP地址的请求会将网站带到其膝盖 另外,某些服务可能运行起来非常昂贵,以至于只有很少的请求会导致DOS-请考虑一份非常昂贵的报告。因此,您需要对正在发生的事情进行良好的应用程序级别监视: 调用了哪些服务以及发送了哪些参数/数据(即登录您的应用程序) 哪些用户正在执行调用以及从哪个IP(即登录您的应用程序) 数据库正在执行哪些查询和插入/更新/删除操作 系统中所有计算机(和VM)上的平均负载,CPU利用率,磁盘I / O,网络流量 确保所有这些信息都易于检索,并且您可以关联来自不同计算机和服务的日志(即,确保所有计算机都使用ntp进行时间同步)。 DDOS是一系列攻击,它们淹没了数据中心的关键系统,其中包括: 托管中心与互联网的网络连接 托管中心的内部网络和路由器 您的防火墙和负载平衡器 您的Web服务器,应用程序服务器和数据库。 在开始构建DDOS防御之前,请考虑一下最坏情况下的风险价值是什么。对于小型社区的非关键,免费使用的服务,总的风险价值可能是花生。对于已建立的数十亿美元业务的付费,面向公众的,关键任务系统,其价值可能是公司的价值。在后一种情况下,您不应该使用StackExchange :)无论如何,要防御DDOS,您需要一种深度防御方法: 与您的托管中心合作,以了解他们提供的服务,包括他们与Internet的网络连接处的IP和端口过滤以及他们提供的防火墙服务。这很关键:托管公司将许多站点从Internet撤出,因为托管公司处理DDOS对一个客户造成的整个数据中心范围的中断。另外,在DDOS攻击期间,您将与托管中心的工作人员非常紧密地合作,因此请了解他们的紧急电话号码并与他们保持良好的关系:)他们应该能够阻止整个国际区域,完全阻止特定的服务或网络协议和其他广谱防御措施,或者仅允许列入白名单的IP(取决于您的业务模型) 在托管中心上时-使用内容交付网络在最终用户附近分发(主要是静态的)服务,并向DDOS架构师隐藏真正的服务器。完整的CDN太大了,DDOS无法提取所有国家/地区的所有节点。如果DDOS集中在一个国家,则至少其他用户仍然可以。 使用最新的安全补丁更新所有系统和软件包-我的意思是全部: 管理型交换机-是的,有时需要更新 路由器 防火墙 负载均衡器 操作系统 网络服务器 语言及其库 确保你有一个好的防火墙或安全设备设置,并定期由合格的安全专家审查。防火墙上的严格规则可以很好地抵御许多简单的攻击。能够管理每个开放服务可用的带宽也很有用。 拥有良好的网络监控工具 -这可以帮助您了解: 遭受攻击,而不只是承受沉重的负担 攻击的来源(可能包括您通常不与之开展业务的国家)和 攻击实际上是什么(端口,服务,协议,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个以上的请求吗?匿名用户可以访问所有昂贵的报告吗? 用于匿名访问的CAPTCHA:对所有匿名请求实施CAPTCHA,以验证用户是个人,而不是DDOS机器人。 阻止DDOS攻击的最快,最常见的方法是什么? 最快的方法可能是屈服于勒索,尽管这可能并不理想。 否则,您要做的第一件事就是联系您的托管和/或CDN提供商并与他们合作(如果他们还没有联系您,则已经在问这到底是怎么回事...)。发生DDOS时,可能会附带影响托管提供商的其他客户,并且提供商可能会承受巨大的压力,仅出于保护他们的资源的目的而关闭您的站点。准备与提供者共享您的日志(所有信息);这些日志及其网络监视器可以一起提供足够的信息来阻止/缓解攻击。 如果您期望使用DDOS,则最好让您的主机提供商在其提供的保护级别上合格。他们应该具有DDOS经验和减轻它的工具-了解他们的工具,过程和升级程序。还询问托管服务提供商从其上游提供商那里获得了哪些支持。这些服务可能意味着更多的前期或每月费用,但请将其视为保险单。 在受到攻击时,您将需要获取日志并进行挖掘-尝试找出攻击方式。您应该考虑关闭匿名访问并在受到攻击的情况下限制服务(即降低应用程序对服务的速率限制)。 如果幸运的话,您有一个固定的小型客户群,则可以确定有效的客户IP地址。如果是这种情况,您可能会在短时间内切换到白名单方法。确保所有客户都知道这种情况在继续,以便他们在需要从新IP访问时可以打电话:)
编辑
登录
后才能参与评论