一.什么是DDoS攻击
恶意流量攻击通常指的是DDOS攻击。DDOS攻击: (Distributed Denial of Service) 简称DDOS,中文意思是分布式拒绝服务攻击。简单的来说就是一种针对目标系统的恶意攻击行为,会导致被攻击者的业务无法正常访问,甚至服务器瘫痪。
举个“栗子”:
我坐上一辆公交车,正常情况下,最多可以容纳24个人。你可以轻轻松松的找个位置坐下,安安静静的欣赏车外的车来车往,听着车里的到站播报,等待到达自己的目的地,快速下车。
很不幸,来了一群刚刚跳完广场舞的大妈,导致上车的乘客远大于公交车最大载客量,这些人看上去跟正常的顾客一样,每个都说”赶快开车,要赶回去做某某事”。但是,公交车的座位只有24个人,根本不可能同时满足这么多的坐车需求,加上他们把门口都堵死了,里三层外三层,还大嗓门的吵吵嚷嚷,要求让座,把过道挤得满满当当,不管是下一站要上车的还是要下车的都不方便 车子也开不动了
这就是 DDoS 攻击,它在短时间内发起大量请求,耗尽服务器的资源,无法响应正常的访问,造成网站实质下线。
DDoS 里面的 DoS 是 denial of service(停止服务)的缩写,表示这种攻击的目的,就是使得服务中断。最前面的那个 D 是 distributed (分布式),表示攻击不是来自一个地方,而是来自四面八方,因此更难防。你关了前门,他从后门进来;你关了后门,他从窗口跳起来。
二.如何预防DDoS
1.采用高性能的网络设备
首先要保证网络设备不能成为瓶颈,因此选择路由器、交换机、硬件防火墙等设备的时候要尽量选用知名度高、口碑好的产品。再就是假如和网络提供商有特殊关系或协议的话就更好了,当大量攻击发生的时候请他们在网络接点处做一下流量限制来对抗某种类的DDOS攻击是非常有效的。
2.尽量避免NAT的使用
无论是路由器还是硬件防护墙设备要尽量避免采用网络地址转换NAT的使用,因为采用此技术会较大降低网络通信能力,其实原因很简单,因为NAT需要对地址来回转换,转换过程中需要对网络包的校验和进行计算,因此浪费了很多CPU的时间,但有些时候必须使用NAT,那就没有好办法了。
3.充足的网络带宽保证
网络带宽直接决定了能抗受攻击的能力,假若仅仅有10M带宽的话,无论采取什么措施都很难对抗现在的SYNFlood攻击,当前至少要选择100M的共享带宽,最好的当然是挂在1000M的主干上了。但需要注意的是,主机上的网卡是1000M的并不意味着它的网络带宽就是千兆的,若把它接在100M的交换机上,它的实际带宽不会超过100M,再就是接在100M的带宽上也不等于就有了百兆的带宽,因为网络服务商很可能会在交换机上限制实际带宽为10M,这点一定要搞清楚。
4.升级主机服务器硬件
在有网络带宽保证的前提下,请尽量提升硬件配置,要有效对抗每秒10万个SYN攻击包,服务器的配置至少应该为:P42.4G/DDR512M/SCSI-HD,起关键作用的主要是CPU和内存,若有志强双CPU的话就用它,内存一定要选择DDR的高速内存,硬盘要尽量选择SCSI的,别贪图IDE价格不贵量还足的便宜,否则会付出高昂的性能代价,再就是网卡一定要选用3COM或Intel等名牌的,若是Realtek的还是用在自己的PC上吧。
5.将网站做成静态页面或者伪静态
事实证明,将网站做成静态页面,不仅能大大提高抗攻击能力,而且还能给**入侵带来不少麻烦,至少到现在为止关于HTML的溢出还没出现。现在很多门户网站主要都是静态页面,若你非要动态脚本调用,那就把它弄到另外一个单独主机,免得遭受攻击时连累主服务器。当然,适当放一些不做数据库调用的脚本还是可以的,此外,最好在需要调用数据库的脚本中拒绝使用代理的访问,因为经验表明使用代理访问你网站的80%属于恶意行为。
6.增强操作系统的TCP/IP栈
win2000和win2003作为服务器操作系统,本身就具备一定的抵抗DDOS攻击的能力,只是默认状态下没有开启而已,若开启的话可抵抗约10000个SYN攻击包,若没有开启则仅能抵抗数百个。
7.安装专业抗DDOS防火墙
8.HTTP请求拦截
如果恶意请求有特征,对付起来很简单,直接拦截就可以。HTTP请求的特征一般有两种:IP地址和User Agent字段。
9.备份网站
你要有一个备份网站,或者最低限度有一个临时主页。生产服务器万一下线了,可以立刻切换到备份网站,不至于毫无办法。
备份网站不一定是全功能的,如果能做到全静态浏览,就能满足需求,最低限度应该可以显示公告,告诉用户,网站出了问题,正在抢修。这种临时主页建议放到Github Pages或者Netlify,它们的带宽大,可以应对攻击,而且都支持绑定域名,还能从源码自动构建。
10.部署CDN
网站内容存放在源服务器,CDN上面是内容的缓存。用户只允许访问CDN,如果内容不在CDN上,CDN再向源服务器发出请求。这样的话,只要CDN够大,就可以抵御很大的攻击。不过,这种方法有一个前提,网站的大部分内容必须可以静态缓存。对于动态内容为主的网站,就要想别的办法,尽量减少用户对动态数据的请求;本质就是自己搭建一个微型CDN。各大云服务商提供的高防IP,背后也是这样做的:网站域名指向高防IP,它提供了一个缓冲层,清洗流量,并对源服务器的内容进行缓存。
这里有一个关键点,一旦上了CDN,千万不要泄露源服务器的IP地址,否则攻击者可以绕过CDN直接攻击源服务器,前面的努力都白费了。
11.定期扫描漏洞,时打上补丁
要确保服务器软件没有任何漏洞,防止攻击者入侵。确保服务器采用最新系统,并打上安全补丁。
12.过滤不必要的服务和端口
过滤不必要的服务和端口,即过滤路由器上的假IP…只打开服务端口已经成为许多服务器的一种流行做法,例如WWW服务器,它只打开80个端口,关闭所有其他端口或在防火墙上阻止它们。
13.检查访客来源
使用单播反向路径转发等方法,通过反向路由器查询,检查访客IP地址是否为真,如果为假,则屏蔽。许多**经常使用假IP地址来迷惑用户,很难找到它的来源。因此,使用单播反向路径转发可以减少假IP地址的发生,有助于提高网络安全性。
14.采用高防服务器,保证服务器系统的安全
DDOS高防服务器主要是指独立单个硬防防御应对DDOS攻击和CC攻击100G以上的服务器,可以为单个客户提供安全维护,根据各个IDC机房的环境不同,有的提供有硬防,有使用软防。简单来说,就是能够帮助网站拒绝服务攻击,并且定时扫描现有的网络主节点,查找可能存在的安全漏洞的服务器。
三.在已经被攻击的状态如何解决并恢复访问
- 屏蔽海外的访问(如果没有海外业务的话),因为目前来说大部分ddos攻击额流量都来自于海外,所以通过服务器的防火墙,或者是其它的软件设置,完全屏蔽海外的ip请求,是有一定几率恢复访问的。
2.假如有数据的备份,请立刻购买新的服务器,在备用服务器上恢复数据后,就可以立刻恢复业务。等待主服务器恢复或者攻击结束,请及时更换主服务器ip,并且设置cdn等安全服务。
3.假如没有数据备份?请立刻将域名解析取消,然后联系服务商更换服务器IP,一般情况下,ddos导致的无法访问是ip的空路由,所以更换ip就会恢复服务器的运行。等待完成IP更换后,就将CDN服务和一些针对网络攻击的防护业务使用起来,将域名重新解析后,就可以开始抵御DDOS攻击了。这一步同样的,如果没有条件购买CDN或者清洗业务,请参考第一条。
4.要注意的是,一定要分清楚是CC攻击还是DDOS,CC攻击标准的特征就是流量消耗巨大,服务器性能被拉满导致业务无法进行,但是CC攻击很容易通过软件层面防御的,根本不需要做太多的举措。而DDOS则是一种网络连接层面的大规模占用,相应的肯定要进行更加复杂的应对措施。
5.及时收集攻击者的流量来源和尽可能多的信息,并报警处理。
6.参考攻击前应对措施,做好最基础的安全加固。
7.一定要记住,要及时备份数据,数据最重要!只要数据还在,就可以快速恢复业务。如果是大型的平台,数据海量的话,那更要注意数据的备份和保护。