我们知道,服务器对外提供服务,基本上都放置在公网上的。所以说服务器放置在公网上会面临许多攻击,如果不做好必要的防护措施,服务器被攻击只是时间上的问题。
而面临的众多攻击中,DDos攻击是最常见的同时也是影响较大的攻击。DDos是分布式拒绝服务攻击,发起攻击者会将许多台电脑连在一起对同一台服务器进行请求。因为每一台服务器其实都是有资源,带宽和计算瓶颈的,特别是一些带宽小,内存小,CPU计算能力低的服务器在面临较多请求时,服务器负载瞬间上涨,带宽被占满,导致其他服务器无法处理其他合法用户的正常请求。
从本质上说,DDos带来的请求也是正常的请求,所以DDos防护较为困难。但是,如果我们把真实服务器的IP隐藏起来,那就可以很大程度减小DDOS攻击的可能性。
有哪些手段可以隐藏真实服务器的IP呢,我觉得主要有以下几种方案:
1.禁用服务器ICMP回显响应
互联网上的服务器众多,一般情况下我们在公网上的服务器要被人发现是要一段时间的,攻击者会通过IP段来扫描存活的机器,一旦扫描到某个IP有回显,说明此IP是存活的,就会被攻击者记录下来,所以我们要关闭回显功能,这样别人扫描服务器没有响应,可以避免被人发现。
不管是Windows还是Linux都可以通过防火墙来关闭ICMP回显功能
*Windows server的操作方法
控制面板》查看方式大图标》window防火墙》左侧 ‘高级设置 ’》入站规则》找到“文件和打印机共享(回显请求ICMP-in)”和文件打印机共享(回显请求-ICMPv6-in)双击选中“已启用”和“阻止链接”
如下图所示
*Linux系统则需要打出如下指令
2.也可以通过如下方法
实际上隐藏真实服务器地址也是阻挡不了ddos,ddos攻击也是正常请求访问服务器,只是访问量比较大导致系统压力暴增,严重导致宕机,实际生产环境项目部署都会使用nginx等反向代理服务器做负载均衡,也就是说客户访问的是负载均衡服务器的ip而不是真实的服务器ip,即nginx隐藏真实服务器ip。防御ddos的方法有很多种,常见的有ip限流,例如:监控ip请求访问量,若访问暴增超过指定阈值,可限制该IP访问,拉入访问黑名单,并进行相关提示,黑名单可按业务设定有效期解禁。限制措施还可以是验证码。例如访问量比较大的接口可通过短信,图形验证码等形式格挡,可减少接口的并发访问量,最常见的例如12306的变态验证码,可缓解登录、提交订单相关接口的访问压力
3.增加服务器的带宽,增强服务器的性能
'''当然这些方法可能是不全面的,欢迎大家批评指正'''