一、组网需求
1、会话攻击,具体的表现是某台电脑或服务器中毒,发大量的目标IP和端口随机的报文,每秒新建会话数会有数万,并发会话数会达到几十甚至上百万,大量的瞬间新建会话会导致设备新建会话资源耗尽,导致正常用户无法上网或丢包;
2、前期的版本已经有了限制每IP并发会话数据功能,针对高端设备在做了并发会话数限制,ip session filter ,CPU 保护功能后在不开启应用识别的情况下,基本可以解决90%以上的攻击故障;
3、目前发现有个别场景在开启以上防护后还是不能彻底的解决问题,所以开发防新建会话攻击功能;
4、以下场景可以开启此功能
1)、配置了并发会话数限制,ip session filter ,CPU 保护功能后在攻击依然会出现丢包;
2)、用户不愿意做并发会话限制;
3)、需要做更好防护和需要找到攻击源
二、功能原理
1、虚拟IP一般是攻击源模拟出来的不存在的IP,真实主机就内网真正的主机,刚开机的时候,所有内网IP都是当成虚拟IP来限制的,然后根据这个IP有没有建立起来的TCP流来判断这个IP是不是真实主机;一般只要是正常的的电脑,连上网后肯定会发送TCP流量,会被为识别为真实IP,受全局真实主机新建会话数配置限制;
2、为保证如DNS服务器可能只有UDP流,增加了信任IP的概念,就只要有建流就会识别为信任IP,且可以例外允许较大的新建会话数;
三、配置要点
1.确认内网是否有DNS服务器,需要针对DNS服务器例外信任配置;
2.确认是否有需要主动从内网向外网发送大量请的服务器,针对这种服务器例外信任配置不同的新建会话数;
四、配置步骤
1.限制设备启机后3分钟内所有IP的新建会话数
ip new-session-limit start-up limit 15000 #10.x版本命令
flow-pre-mgr new-session-limit start-up limit 15000 #11.x版本命令
设备启机三分钟内,所有虚拟IP每秒新建的连接数加起来不能超过15000,此功能只在刚开机前3分钟有用,适用于受到攻击时重启设备时使用,以免设备刚重启就被攻死了;
2.限制虚拟IP的总新建会话数
ip new-session-limit virtual-host limit 15000 #10.x版本命令
flow-pre-mgr new-session-limit virtual-host limit 15000 #11.x版本命令
开机三分钟后,所有虚拟IP每秒新建的连接数加起来不能超过15000,此配置建议配合ip session filter功能使用,防止内网有伪源ip攻击时占用了大量虚IP会话,导致刚开机的正常用户可能出现短时间不能上网;在10.X版本OSPF,SNMP使用的是UDP协议,默认也会被识为虚拟IP限制,建议把OSPF的邻居地址(与EG互联的对端接口IP)配置为例外信任IP;11.X正式版本系统已排除OSPF/RIP/VRRP协议不受新建会话功能限制,所以这三个协议在11.X正式版本开始(20150226版本)不用额外配置为信任IP;
3.限制整网真实IP的每秒新会话数
ip new-session-limit real-host limit 300 #10.x版本命令
flow-pre-mgr new-session-limit real-host limit 300 #11.x版本命令
整网每个真实主机的每秒新建连接数不超过300,限制值也可以根据实际情况调整,一般情况主机和括服务器上网有每秒新300个会话数已经完全足够了,因为在真实环境中,10000人同时在线的情况下,所有用户加起的新建会话也只有2000左右;
4.配置例外信任主机的新会话
ip new-session-limit specify-host 192.168.1.199 limit 1000 #10.x版本命令
flow-pre-mgr new-session-limit specify-host 192.168.1.199 limit 1000 #11.x版本命令
指定某个真实主机的每秒新建连接数限制,0是不限制,优先级比全局整网限制规则高,匹配了这个条就不会去匹整网每IP的限制的规则,目前只支持指定单个IP,不支持网段,该命令可以配置多条,一般针对DNS服务器配置例外或确实有发大量请求到外网的服务器,此命令指定的IP只要有流(不一定要是TCP流)即被识别为真实IP;在10.X版本OSPF,SNMP使用的是UDP协议,默认也会被识为虚拟IP限制,建议把OSPF的邻居地址(与EG互联的对端接口IP)配置为例外信任IP;11.X正式版本系统已排除OSPF/RIP/VRRP协议不受新建会话功能限制,所以这三个协议在11.X正式版本开始(20150226版本)不用额外配置为信任IP;
五、配置验证
1、查看新建会话数限制的配置
show ip new-session-limit #10.x版本命令
show flow-pre-mgr new-session-limit #11.x版本命令
2、查看新建会话攻击IP
show ip new-session-limit attack #10.x版本命令
Show flow-pre-mgr new-session-limit attack #11.x版本命令
查看最近一次的攻击,只记录100个攻击IP,可以通过此命令来查看内网攻击;
实例:
EG2000XE-1#show ip new-session-limit attack
HOST-TYPE HOST-IP TIME
============================================================
real-host 209.129.128.14 2014-11-10 15:46:44
EG2000XE-1#show ip fpm flows | include 209.129.128.14
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 62336 80 0 69690 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 46812 80 0 73730 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 5040 80 0 67670 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 51838 80 0 61610 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 36091 80 0 64640 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 64094 80 0 73730 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 53274 80 0 66660 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 38012 80 0 61610 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 15700 80 0 65650 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 61170 80 0 81810 0 TCP_SYN_SENT
TCP 209.129.128.14 (58.57.172.246) 60.190.216.223 52328 80 0 64640 0 TCP_SYN_SENT
可以看到IP 209.129.128.14 发送了大量的syn报文攻击IP 60.190.216.223,一般这种情况是服务器或电脑中毒了,建议用户针对这台机器杀毒;
3、查看防攻击丢包情况
Ruijie# show flow-pre-mgr drop-count #11.x版本命令
DROP-TYPE DROP-PKT
==============================================
Filter-acl 59138452
Real-host 2168
Virtual-host 0
六、注意问题
1.防新建会话攻击只针对从内网接口(LAN属性接口)来的新建数据流生效;
2.针对DNS服务器,需要配置为例外信任IP,把新会话配置大一些1000-3000,及只要有建流及识别为真实IP,不需要一定要有建TCP流才识别为真实IP,配置方法:flow-pre-mgr new-session-limit specify-host 192.168.1.199 limit 1000 #11.x版本命令
3.在10.X 由于OSPF使用的是UDP协议,默认也会被识为虚拟IP限制,需要把OSPF的邻居地址也配置为例外信任IP(11.x正式版本使用flow-pre-mgr protocol-enable对ospf、rip、vrrp协议默认进行放行,不受并发会话限制、新建会话限制、防上行攻击的限制,10.x无此功能)
如:通过show ip ospf neighbor 可以看OSPF的邻居地址为51.70.224.190
Ruijie#show ip ospf neighbor
OSPF process 10, 2 Neighbors, 1 is Full:
Neighbor ID Pri State Dead Time Address Interface
10.10.10.5 1 Full/BDR 00:00:39 51.70.224.190 TenGigabitEthernet 0/0
配置例外:
ip new-session-limit specify-host 51.70.224.190 limit 1000
4.由于SNMP是UDP协议,默认也会被识为虚拟IP限制,如网管服务器受到影响也需要把网管服务器配置例外信任服务器;
如网管服务器为192.168.1.199,排除方法如下:
ip new-session-limit specify-host 192.168.1.199 limit 1000 #10.x版本命令
flow-pre-mgr new-session-limit specify-host 192.168.1.199 limit 1000 #11.x版本命令
5.防新建会话功能生效的前提条件
1)、全局会话数模块生效
flow-pre-mgr enable
2)、至少配置一条全局会话数规则
flow-pre-mgr 1 subscriber server action trust total-limit 500000(不为零) per-ip-limit 1500(不为零) #基于用户对象的会话限制,server代表用户对象,使用any代理server对象也可以使防新建会话功能生效;