今天凌晨和往常一样正做不可描述的梦呢,突然被连续两条告警短信吵醒,全身抖了一下,好气呀,顿时索然无味,为什么关键时刻总是这样呢 。
告警显示AF上的并发连接数已经超过7W了,凌晨业务量比较少得情况下连接数超过预期,估计又是被攻击了。开启我的固态笔记本,20S就开机上线了。 说下AF版本,8.0.6的,上去发现并发连接数已经达到了12W左右。 会话排行里面的内网主机确实正在承受巨大的TCP会话连接。 查看具体的内网IP会话情况,发现来自很多国外的会话,并且大量IP存在就建立1到2个会话的情况,非常不正常。
具体可以看到多达700多页,有3W多个IP,这还是其中一个内网主机承受的,其他主机也是一样的情况。 我们应该是遭到DDOS攻击了,问了下系统运维那边,keepalived+LVS+NGINX架构的web对于12W的连接数并没有收到影响,所以系统运维的同学可以继续睡觉了。我还得继续处理,看来我得梦不能继续了。 抓取这段时间的流量进行分析,确实大量来自的IP进入。 具体分析数据包发现,每个IP都是只发送SYN就没有下一步了,遇到了典型的SYNflood。
。
对于这种数万个源IP发起的synflood,AF确实是没有办法组织,因为每个IP都基本上只连续发送不超过5个的syn。很难达到我在AF上设置的阈值。 于是我准备地域封锁,由于我们有国外业务,但是国外业务是提供的443端口,攻击几乎都是针对的80。所以我想通过地域控制不允许国外访问80。但是很遗憾,如果地域封锁的话,针对地域IP的流量会全部丢弃的,无法只封堵80。 然后我又想到另外一个方法,那就通过访问控制来吧,我这边有比较新的ISP地址库。然后有遇到问题了,倒入地址的时候,一个IP组只能添加不超过200个。
所以没办法实现我的想法,攻击持续稳定在14W左右的并发。业务系统,AF都正常。所以这次攻击没有造成影响,观察了一会儿就睡觉了。
后续,针对这种大量分布式的低数据包的syn攻击,确实目前不太好防御,只能硬抗了。数十万个IP进行SYNflood,应该攻击者没有那么多的肉鸡吧,估计是利用源地址伪造来实现的,这种估计只有运营商在源头进行封堵在有效了。最后攻击一致持续到我发贴前一个小时。 对于AF,我有两个小建议:1、地域封锁可以加一个端口的维度2、IP地址组是否能够扩大(其实这两个需求也并不常用~) 大家周末愉快,祝各位生产系统一切稳定。 |