服务器被ddos攻击?分析如何防止DDOS攻击?

上周知名博主阮一峰的博客被DDOS攻击,导致网站无法访问而*迁移服务器的事情,引起了广大网友的关注及愤慨,包括小编的个人博客也曾接受过DDOS的“洗礼”,对此感同身受。所以,本文我们一起来了解下DDOS攻击并分享一些在一定程度范围内的应对方案。

关于DDOS攻击

分布式拒绝服务(DDoS:Distributed Denial of Service)攻击指借助于客户/服务器技术,将多个计算机联合起来作为攻击平台,对一个或多个目标发动DDoS攻击,从而成倍地提高拒绝服务攻击的威力。

通常,攻击者将攻击程序通过代理程序安装在网络上的各个“肉鸡”上,代理程序收到指令时就发动攻击。

服务器被ddos攻击?分析如何防止DDOS攻击?

(DDOS攻击示意图)

随着网络技术发展,DDOS攻击也在不断进化,攻击成本越来越低,而攻击力度却成倍加大,使得DDOS更加难以防范。比如反射型DDoS攻击就是相对高阶的攻击方式。攻击者并不直接攻击目标服务IP,而是通过伪造被攻击者的IP向全球特殊的服务器发请求报文,这些特殊的服务器会将数倍于请求报文的数据包发送到那个被攻击的IP(目标服务IP)。

DDOS攻击让人望而生畏,它可以直接导致网站宕机、服务器瘫痪,对网站乃至企业造成严重损失。而且DDOS很难防范,可以说目前没有根治之法,只能尽量提升自身“抗压能力”来缓解攻击,比如购买高防服务。

DDoS攻击简介

分布式拒绝服务攻击(DDoS攻击)是一种针对目标系统的恶意网络攻击行为,DDoS攻击经常会导致被攻击者的业务无法正常访问,也就是所谓的拒绝服务。

常见的DDoS攻击包括以下几类:

  • 网络层攻击:比较典型的攻击类型是UDP反射攻击,例如:NTP Flood攻击,这类攻击主要利用大流量拥塞被攻击者的网络带宽,导致被攻击者的业务无法正常响应客户访问。

  • 传输层攻击:比较典型的攻击类型包括SYN Flood攻击、连接数攻击等,这类攻击通过占用服务器的连接池资源从而达到拒绝服务的目的。

  • 会话层攻击:比较典型的攻击类型是SSL连接攻击,这类攻击占用服务器的SSL会话资源从而达到拒绝服务的目的。

  • 应用层攻击:比较典型的攻击类型包括DNS flood攻击、HTTP flood攻击、游戏假人攻击等,这类攻击占用服务器的应用处理资源极大的消耗服务器处理性能从而达到拒绝服务的目的。

DDoS攻击缓解最佳实践

建议阿里云用户从以下几个方面着手缓解DDoS攻击的威胁:

  1. 缩小暴露面,隔离资源和不相关的业务,降低被攻击的风险。

  2. 优化业务架构,利用公共云的特性设计弹性伸缩和灾备切换的系统。

  3. 服务器安全加固,提升服务器自身的连接数等性能。

  4. 做好业务监控和应急响应。

DDOS攻击应对策略

这里我们分享一些在一定程度范围内,能够应对缓解DDOS攻击的策略方法,以供大家借鉴。

1.定期检查服务器漏洞

定期检查服务器软件安全漏洞,是确保服务器安全的最基本措施。无论是操作系统(Windows或linux),还是网站常用应用软件(mysql、Apache、nginx、FTP等),服务器运维人员要特别关注这些软件的最新漏洞动态,出现高危漏洞要及时打补丁修补。

2.隐藏服务器真实IP

通过CDN节点中转加速服务,可以有效的隐藏网站服务器的真实IP地址。CDN服务根据网站具体情况进行选择,对于普通的中小企业站点或个人站点可以先使用免费的CDN服务,比如百度云加速、七牛CDN等,待网站流量提升了,需求高了之后,再考虑付费的CDN服务。

其次,防止服务器对外传送信息泄漏IP地址,最常见的情况是,服务器不要使用发送邮件功能,因为邮件头会泄漏服务器的IP地址。如果非要发送邮件,可以通过第三方代理(例如sendcloud)发送,这样对外显示的IP是代理的IP地址。

3.关闭不必要的服务或端口

这也是服务器运维人员最常用的做法。在服务器防火墙中,只开启使用的端口,比如网站web服务的80端口、数据库的3306端口、SSH服务的22端口等。关闭不必要的服务或端口,在路由器上过滤假IP。

4.购买高防提高承受能力

该措施是通过购买高防的盾机,提高服务器的带宽等资源,来提升自身的承受攻击能力。一些知名IDC服务商都有相应的服务提供,比如阿里云、腾讯云等。但该方案成本预算较高,对于普通中小企业甚至个人站长并不合适,且不被攻击时造成服务器资源闲置,所以这里不过多阐述。

5.限制SYN/ICMP流量

用户应在路由器上配置SYN/ICMP的最大流量来限制SYN/ICMP封包所能占有的最高频宽,这样,当出现大量的超过所限定的SYN/ICMP流量时,说明不是正常的网络访问,而是有黑客入侵。早期通过限制SYN/ICMP流量是最好的防范DOS的方法,虽然目前该方法对于DdoS效果不太明显了,不过仍然能够起到一定的作用。

6.网站请求IP过滤

除了服务器之外,网站程序本身安全性能也需要提升。以小编自己的个人博客为例,使用cms做的。系统安全机制里的过滤功能,通过限制单位时间内的POST请求、404页面等访问操作,来过滤掉次数过多的异常行为。虽然这对DDOS攻击没有明显的改善效果,但也在一定程度上减轻小带宽的恶意攻击。

2.3 部署DNS智能解析

通过智能解析的方式优化DNS解析,可以有效避免DNS流量攻击产生的风险。同时,建议您将业务托管至多家DNS服务商。

  • 屏蔽未经请求发送的DNS响应信息
  • 丢弃快速重传数据包
  • 启用TTL
  • 丢弃未知来源的DNS查询请求和响应数据
  • 丢弃未经请求或突发的DNS请求
  • 启动DNS客户端验证
  • 对响应信息进行缓存处理
  • 使用ACL的权限
  • 利用ACL,BCP38及IP信誉功能

2.4 提供余量带宽

通过服务器性能测试,评估正常业务环境下所能承受的带宽和请求数。在购买带宽时确保有一定的余量带宽,可以避免遭受攻击时带宽大于正常使用量而影响正常用户的情况。

3. 服务安全加固

对服务器上的操作系统、软件服务进行安全加固,减少可被攻击的点,增大攻击方的攻击成本:

  • 确保服务器的系统文件是最新的版本,并及时更新系统补丁。
  • 对所有服务器主机进行检查,清楚访问者的来源。
  • 过滤不必要的服务和端口。例如,对于WWW服务器,只开放80端口,将其他所有端口关闭,或在防火墙上设置阻止策略。
  • 限制同时打开的SYN半连接数目,缩短SYN半连接的timeout时间,限制SYN/ICMP流量。
  • 仔细检查网络设备和服务器系统的日志。一旦出现漏洞或是时间变更,则说明服务器可能遭到了攻击。
  • 限制在防火墙外进行网络文件共享。降低黑客截取系统文件的机会,若黑客以特洛伊木马替换它,文件传输功能将会陷入瘫痪。
  • 充分利用网络设备保护网络资源。在配置路由器时应考虑针对流控、包过滤、半连接超时、垃圾包丢弃、来源伪造的数据包丢弃、SYN阀值、禁用ICMP和UDP广播的策略配置。
  • 通过iptable之类的软件防火墙限制疑似恶意IP的TCP新建连接,限制疑似恶意IP的连接、传输速率。

4. 业务监控和应急响应

4.1 关注基础DDoS防护监控

当您的业务遭受DDoS攻击时,基础DDoS默认会通过短信和邮件方式发出告警信息,针对大流量攻击基础DDoS防护也支持电话报警,建议您在接受到告警的第一时间进行应急处理。

5.1 Web应用防火墙(WAF)

针对网站类应用,例如常见的http Flood(CC攻击)攻击,可以使用WAF可以提供针对连接层攻击、会话层攻击和应用层攻击进行有效防御。

5.2 DDoS防护包

5.3 DDoS高级防护

针对大流量DDoS攻击,建议使用阿里云高防IP服务。

应当避免的事项

DDoS攻击是业内公认的行业公敌,DDoS攻击不仅影响被攻击者,同时也会对服务商网络的稳定性造成影响,从而对处于同一网络下的其他用户业务也会造成损失。

计算机网络是一个共享环境,需要多方共同维护稳定,部分行为可能会给整体网络和其他租户的网络带来影响,需要您注意:

  • 避免使用阿里云产品机制搭建DDoS防护平台
  • 避免释放处于黑洞状态的实例
  • 避免为处于黑洞状态的服务器连续更换、解绑、增加SLB IP、弹性公网IP、NAT网关等IP类产品
  • 避免通过搭建IP池进行防御,避免通过分摊攻击流量到大量IP上进行防御
  • 避免利用阿里云非网络安全防御产品(包括但不限于CDN、OSS),前置自身有攻击的业务
  • 避免使用多个账号的方式绕过上述规则

小结

目前而言,DDOS攻击并没有最好的根治之法,做不到彻底防御,只能采取各种手段在一定程度上减缓攻击伤害。所以平时服务器的运维工作还是要做好基本的保障,并借鉴本文分享的方案,将DDOS攻击带来的损失尽量降低到最小。

上一篇:angular todo


下一篇:Python的一个解释凯撒密码的程序