锐捷网关EG系列_新建会话数限制配置

技术

一、组网需求

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对象也可以使防新建会话功能生效;