2.1 组网需求

1)     使用支持防攻击的网关设备能够监控所有下联的办公区域的网络会话使用防攻击功能并阻断典型的网络攻击

2)     下联到办公区域的网段为路由口

3)     使用限速功能实现每IP或基于网段的限速和会话数限制

 

2.2 组网拓扑

      

2.3 配置要点

1)     防攻击功能默认不开启

2)     Cli开启防攻击功能需要同步开启流平台三条命令(见配置步骤)

3)     NAT模式与非NAT模式切换后需要进行设备重启

4)     NAT模式下不存在tcp-unauth命令需要防护tcp syn flood攻击可以通过全局域策略tcp xx命令进行防护

5)     策略学习前需要清空防御策略

 

2.4 配置步骤

2.4.1 防攻击开关

默认防攻击功能不开启,有需要的时候有选择的进行开启。

开启方式:

Cli命令:

Ruijie(config)#net-defend enable

同时cli命令模式下需要开启流平台命令:

配置做流状态报文水线检测: Ruijie(config)#ip session track-state-strictly

流状态检测: Ruijie(config)#ip session tcp-state-inspection-enable fw

去除宽松tcp状态变迁检查:Ruijie(config)#no ip session tcp-loose

 

Web页面:防火墙=》防攻击配置=》防攻击开关=》开启=》保存

 

EG防火墙的防攻击存在两种防御模式:NAT模式与非NAT模式。默认为非NAT模式。

NAT模式不支持TCP SYN Flood防御策略(非NAT模式支持),切换防攻击模式需要进行设备重启,否则不生效

NAT模式:Ruijie(config)#net-defend mode nat

NAT模式:Ruijie(config)#net-defend mode no-nat

 

2.4.2 全局防护

Web页面:防火墙=》防攻击配置=》全局防护

 

全局防攻击是针对所有防火墙流量实施防御,全局使用固定防攻击域:defend-zone global

主要防御TCP SYN Flood攻击,及限制防火墙的会话建立速率:

防TCP syn Flood攻击:

Cli命令:

Ruijie(config)#defend-zone global

Ruijie(config-defend-global)#tcp syns-in global threshold 300000 action anti-spoofing

Ruijie(config-defend-global)#session-limit tcp 4000000

Tcp syn flood

 

设置全局防攻击中针对所有防火墙流量实施防御TCP SYN Flood攻击。

tcp { syns-in | half-conn-in } global  threshold threshold-num action anti-spoofing

 

 

 

取消全局防攻击中针对所有防火墙流量实施防御TCP SYN Flood攻击。

no tcp { syns-in | half-conn-in } global 

 

 

 

恢复缺省配置。

default tcp { syns-in | half-conn-in } global

 

 

【参数说明】

参数

描述

 

syns-in

进入网络防攻击域的TCP SYN报文速率。

 

half-conn-in

向网络防攻击域发起的未完成的TCP握手的连接数量。

 

threshold threshold-num

当配置syns时,单位pps,范围1800,000

当配置half-conn时,单位是半连接数,范围110,000,000

 

anti-spoofing

对超过阈值部分的流量实施TCP SYN cookie防伪

 

 

【缺省配置】

syn-in策略的缺省阈值为300000half-conn-in策略的缺省阈值为4000000

【使用指导】

针对所有防火墙流量实施防御TCP SYN Flood攻击。

当经过防火墙的syn报文速率超过阈值或者TCP半连接数超过阈值时,启动防攻击。

全局防护缺省启用。测试防火墙性能与容量的时候需要关闭全局防护。

    全局防护不产生日志记录

session-limit

全局防护

 

设置会话的建立速度限制

session-limit { unauth-src-new-session | tcp | udp | icmp | other-protocol } new-session-per-second

 

 

 

取消会话的建立速度限制

no session-limit { unauth-src-new-session | tcp | udp | icmp | other-protocol }

 

 

 

恢复缺省配置

default session-limit { unauth-src-new-session | tcp | udp | icmp | other-protocol }

防攻击域

 

设置出入网络防攻击域的会话建立速度限制

session-limit { in | out } [src-ip | dst-ip] session-rate new-session-per-second

 

取消会话的建立速度限制

no session-limit { in | out } [src-ip | dst-ip]

 

恢复缺省配置

default session-limit { in | out } [src-ip | dst-ip]

 

【参数说明】

参数

描述

 

new-session-per-second

每秒新建会话数量,取值范围1~1,000,000

 

unauth-src-new-session

限制所有未验证源的会话新建速率

 

tcp

限制所有tcp会话的新建速率

 

udp

限制所有udp会话的新建速率

 

icmp

限制所有icmp会话的新建速率

 

other-protocol

限制所有除了tcp/udp/icmp之外的ip报文的会话新建速率

 

in

针对进入网络防攻击域的会话建立速度实施限制,出口网关不支持

 

out

针对外出网络防攻击域的会话建立速度实施限制,出口网关不支持

 

src-ip

针对每个源IP实施限制,出口网关不支持

 

dst-ip

针对每个目的IP实施限制 ,出口网关不支持

 

 

【缺省配置】

全局防护的session-limit命令缺省值如下:

 unauth-src-new-session: 300000

 tcp: 300000

 udp: 300000

 icmp: 100000

 other-protocol: 100000

 

【使用指导】

限制各类会话建立速率。

全局防护缺省不启用。测试防火墙性能与容量的时候需要关闭全局防护。

 

2.4.3 协议类防护

协议类攻击通常指攻击者向攻击目标发送一些特定的,不符合RFC协议标准的异常报文,此类报文可能会导致网络设备或终端设备的协议�T诖�理报文时出现异常,严重者或导致系统崩溃。因此,典型的协议类异常报文会直接被防火墙拦截,这部分功能不需要单独配置,默认打开且无法关闭。

已开启且不能关闭的防攻击类型:防ACK Flood攻击,防FIN/RST Flood攻击,防Teardrop 攻击,防Smurf 攻击,防异常TCP Flag 攻击,防Ping of Death 攻击。

以下几种协议类攻击,影响较小,且并不多见,因此EG防火墙设备上支持独立进行配置,默认不打开,用户可以根据需要打开:

cli命令配置:

·防ICMP重定向攻击:Ruijie(config)# defend icmp-redirect

·防Winnuke攻击:Ruijie(config)# defend winnuke

·带源路由选项IP报文禁止:Ruijie(config)# defend source-route

·带路由记录选项IP报文禁止:Ruijie(config)# defend route-record

·防ICMP不可达攻击:Ruijie(config)# defend icmp-unreachable

·防Fraggle攻击:Ruijie(config)# defend fraggle

·防Land攻击:Ruijie(config)# defend land

上述攻击的原理和介绍参见《网络层防攻击配置手册》,因为协议类攻击而被防攻击模块丢弃的报文,防攻击模块都会进行统计,可以在web界面或cli界面上,查看统计信息。cli界面上查看统计信息的命令为:

Ruijie(config)#show defend drop

 

web配置:

web的配置页面为主页中防火墙=》防攻击配置=》协议类策略

 

2.4.4  防攻击域防护(域策略配置)

防攻击域防火主要是防护DDOS攻击范DDoS攻击的典型方法就是限制对目标服务器发起的连接数量,配置的原则:需要对指定的服务器或地址段进行防攻击保护或者是发现某些攻击采取策略进行保护。配置过程如下:

1)     通过ACL,定义防护目标

2)     对防护目标配置限制阈值(分syn flood、 udp flood、 icmp flood 3种攻击配置)

3)     配置日志(支持npe的设备需要非npe模式+有硬盘才可以记录日志,不支持npe的设备只需要有硬盘才可以记录日志)

以服务器网段为101.1.1.0/24网段为例,对该服务器内每个IP收到syn报文的速率限制为1000个,UDP报文限制为10000个,icmp报文限制为100个,并打开对应的log,配置模板如下:

Cli命令:

Ruijie (config)#ip access-list standard server-a

Ruijie (config-std-nacl)#permit 101.1.1.0 0.0.0.255   

Ruijie (config-std-nacl)#exit

Ruijie (config)#defend-zone DDOS

Ruijie (config-defend-zone)# tcp-unauth syns-in dst-ip threshold 1000 action anti-spoofing

Ruijie (config-defend-zone)# udp unauth-src-in global threshold 10000 action limit

Ruijie (config-defend-zone)# icmp unauth-src-in global threshold 100 action rate-limit

Ruijie (config-defend-zone)# log all

web配置:

web的配置页面为主页中防火墙=》防攻击配置=》域策略配置

 

tcp-auth

 

启用针对来自真实源的TCP流量的防御策略

tcp-auth { conn-in | half-conn-in | syns-in } src-ip threshold threshold-num [ timeout seconds ] action { limit | blocking | notify }

 

 

 

取消针对来自真实源的TCP流量的防御策略

no tcp-auth { conn-in | half-conn-in | syns-in } src-ip

 

 

 

恢复缺省配置。

default tcp-auth { conn-in | half-conn-in | syns-in } src-ip

 

 

【参数说明】

参数

描述

 

conn-in

向网络防攻击域发起的TCP连接数量。

 

syns-in

进入网络防攻击域的TCP SYN报文速率。

 

half-conn-in

向网络防攻击域发起的未完成的TCP握手的连接数量。

 

threshold threshold-num

当配置conn-in/half-conn-in时,单位是连接数, 范围110,000,000

当配置syns-in时表示pps, 范围 1~800,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

src-ip

该策略针对每个源主机进行识别

 

limit

限制对应的流量在threshold-num以下

 

blocking

阻塞该主机进出防攻击域的双向流量

 

notify

仅记录此次攻击

 

 

【使用指导】

若任何一个真实的源(src-ip)主机,对网络防攻击域发起的TCP并发连接数(conn-in)超过阈值或者未完成握手的TCP半连接数(half-conn-in)超过阈值或者发起的TCP SYN报文速率超过阈值,设备将启动防御机制----限制并发连接数/限制速率(按照阈值进行限制)或者是阻塞该源主机对网络防攻击域的所有进出流量(按照策略执行时间进行阻塞)。策略执行时间不少于seconds.

tcp-unauth(NAT模式不支持)

 

启用TCP SYN Flood防御策略。

tcp-unauth { syns-in | half-conn-in } { dst-ip | global } threshold threshold-num [ timeout seconds ] action { anti-spoofing | notify }

 

 

 

取消启用TCP SYN Flood防御策略。

no tcp-unauth {syns-in | half-conn-in } {dst-ip | global }

 

 

 

恢复缺省配置。

default tcp-unauth {syns-in | half-conn-in } {dst-ip | global }

 

 

【参数说明】

参数

描述

 

syns-in

进入网络防攻击域的TCP SYN报文速率。

 

half-conn-in

向网络防攻击域发起的未完成的TCP握手的连接数量。

 

threshold threshold-num

当配置syns时,单位pps,范围1800,000

当配置half-conn时,单位是半连接数,范围110,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

dst-ip

针对每个目的主机进行识别,出口网关不支持

 

global

针对整个域进行识别

 

anti-spoofing

TCPsyn报文实施TCP SYN cookie防伪

 

notify

仅记录此次攻击

 

 

【使用指导】

当进入网络防攻击域的SYN报文速率(syns-in)超过阈值或者未完成的TCP握手的连接数(half-conn-in)超过阈值时,启动防御机制--即针对进入网络防攻击域的SYN报文实施抗伪造技术(anti-spoofing),执行时间不少于seconds

当针对网络防攻击域内任何一台目的主机(dst-ip)SYN报文速率超过阈值或者该目的主机的未完成TCP握手的连接数超过阈值时,启动防御机制--即针对发往该目的主机的所有SYN报文实施抗伪造技术(anti-spoofing),执行时间不少于seconds

udp auth-src-in

 

设置针对来自真实源主机的UDP流量的策略

udp auth-src-in src-ip threshold threshold-num [ timeout seconds ] action { limit | blocking | notify }

 

 

 

取消针对来自真实源主机的UDP流量的策略

No udp auth-src-in src-ip

 

 

 

恢复缺省配置。

default udp auth-src-in src-ip

 

 

【参数说明】

参数

描述

 

auth-src-in

进入网络防攻击域的来自真实性源主机的报文。

 

src-ip

该策略针对每个源主机进行识别

 

threshold threshold-num

pps, 取值1~100,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

limit

限制对应的流量在threshold-num以下

 

blocking

阻塞该主机进出防攻击域的双向流量

 

notify

仅记录此次攻击

 

 

【使用指导】

当任何真实源主机发出的进入网络防攻击域的UDP流量速率超过阈值,设备将启动防御机制---限制该源主机此类报文进入网络防攻击域的速率(速率不超过阈值)或者阻塞该源主机对网络防攻击域的所有进出流量(按照策略执行时间进行阻塞)。策略执行时间不少于seconds.

 
udp pkt-in

 

设置进入网络防攻击域的UDP流量限制。

udp pkt-in { dst-ip | global } threshold threshold-num [ timeoutseconds ] action { limit | notify }

 

 

 

取消进入网络防攻击域的UDP流量限制。

no udp pkt-in { dst-ip | global }

 

 

 

恢复缺省配置。

default udp pkt-in { dst-ip | global }

 

 

【参数说明】

参数

描述

 

pkt-in

进入网络防攻击域的所有类型的报文。

 

threshold threshold-num

pps, 取值1~100,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

dst-ip

针对每个目的主机进行识别,出口网关不支持

 

global

针对整个域进行识别

 

limit

限制对应的流量在threshold-num以下

 

notify

仅记录此次攻击

 

 

【使用指导】

当进入网络防攻击域的UDP流量速率超过阈值,设备将限制这些流量的速率不超过阈值设定。策略执行时间不少于seconds.

当进入网络防攻击域任何目的主机的UDP流量速率超过阈值,设备将限制进入该主机的此类流量的速率不超过阈值设定。策略执行时间不少于seconds

udp unauth-src-in

 

启用针对未通过真实源验证的UDP流量的策略。

udp unauth-src-in { dst-ip | global } threshold threshold-num [ timeout seconds ] action {limit | drop | notify }

 

 

 

取消针对未通过真实源验证的UDP流量的策略

no udp unauth-src-in {dst-ip | global }

 

 

 

恢复缺省配置。

default udp unauth-src-in {dst-ip | global }

 

 

【参数说明】

参数

描述

 

unauth-src-in

进入网络防攻击域的未通过真实源验证的报文。

 

threshold threshold-num

pps, 取值1~100,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

dst-ip

针对每个目的主机进行识别,出口网关不支持

 

global

针对整个域进行识别

 

limit

限制对应的流量在threshold-num以下

 

drop

丢弃对应的流量

 

notify

仅记录此次攻击

 

 

【使用指导】

当进入网络防攻击域的未通过真实源验证的UDP报文速率超过阈值,设备将启动防御机制---限制这些报文进入网络防攻击域的速率(速率不超过阈值)或者全部丢弃此类报文。

当进入网络防攻击域任何一台目的主机的未通过真实源验证的UDP报文速率超过水线,设备将启动防御机制---限制这些报文进入该主机的速率(速率不超过阈值)或者全部丢弃针对该主机的此类报文。

icmp auth-src-in

 

针对来自真实源主机的ICMP流量的策略

icmp auth-src-in src-ip threshold threshold-num [ timeout seconds ] action { limit | blocking | notify }

 

 

 

删除针对来自真实源主机的ICMP流量的策略

no icmp auth-src-in src-ip

 

 

 

恢复缺省配置。

default icmp auth-src-in src-ip

 

 

【参数说明】

参数

描述

 

auth-src-in

进入网络防攻击域的来自真实性源主机的报文。

 

src-ip

该策略针对每个源主机进行识别

 

threshold threshold-num

pps, 取值1~100,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400秒。

 

limit

限制对应的流量在threshold-num以下

 

blocking

阻塞该主机进出防攻击域的双向流量

 

notify

仅记录此次攻击

 

 

【使用指导】

当任何真实源主机发出的进入网络防攻击域的ICMP流量速率超过阈值,设备将启动防御机制---限制该源主机此类报文进入网络防攻击域的速率(速率不超过阈值)或者阻塞该源主机对网络防攻击域的所有进出流量(按照策略执行时间进行阻塞)。策略执行时间不少于seconds.

icmp pkt-in

 

限制进入网络防攻击域的ICMP流量。

icmp pkt-in { dst-ip | global } threshold threshold-num [ timeoutseconds ] action { limit | notify }

 

 

 

删除限制进入网络防攻击域的ICMP流量策略

no icmp pkt-in { dst-ip |global }

 

 

 

恢复缺省配置。

default icmp pkt-in { dst-ip |global }

 

 

【参数说明】

参数

描述

 

pkt-in

进入网络防攻击域的所有类型的报文。

 

threshold threshold-num

pps, 取值1~100,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

dst-ip

针对每个目的主机进行识别,出口网关不支持

 

global

针对整个域进行识别

 

limit

限制对应的流量在threshold-num以下

 

notify

仅记录此次攻击

 

 

【使用指导】

当进入网络防攻击域的ICMP流量速率超过阈值,设备将限制这些流量的速率不超过阈值设定。策略执行时间不少于seconds

当进入网络防攻击域任何目的主机的ICMP流量速率超过阈值,设备将限制进入该主机的此类流量的速率不超过阈值设定。策略执行时间不少于seconds

icmp unauth-src-in

 

启用针对未通过真实源验证的ICMP流量的策略。

icmp unauth-src-in { dst-ip | global } threshold threshold-num [ timeout seconds ] action {limitdrop | notify }

 

 

 

删除针对未通过真实源验证的ICMP流量的策略

no icmp unauth-src-in { dst-ip | global }

 

 

 

恢复缺省配置

default icmp unauth-src-in { dst-ip | global }

 

 

【参数说明】

参数

描述

 

unauth-src-in

进入网络防攻击域的未通过真实源验证的报文。

 

threshold threshold-num

pps, 取值1~100,000,000

 

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

 

dst-ip

针对每个目的主机进行识别,出口网关不支持

 

global

针对整个域进行识别

 

limit

限制对应的流量在threshold-num以下

 

drop

丢弃对应的流量

 

notify

仅记录此次攻击

 

 

【使用指导】

当进入网络防攻击域的未通过真实源验证的ICMP报文速率超过阈值,设备将启动防御机制---限制这些报文进入网络防攻击域的速率(速率不超过阈值)或者全部丢弃此类报文。

当进入网络防攻击域任何一台目的主机的未通过真实源验证的ICMP报文速率超过水线,设备将启动防御机制---限制这些报文进入该主机的速率(速率不超过阈值)或者全部丢弃针对该主机的此类报文

 

2.4.5 防扫描攻击防范

有两种情况,会发生扫描攻击:

1)攻击者在发起攻击前,通常会对目标网络/主机进行扫描,以获取网络的基础信息;

2)内网用户有设备中毒,在内网随机检测开放有漏洞端口的机器,尝试传播病毒。

这两种场景,可以通过配置扫描攻击防范来解决。

扫描攻击防范的配置流程如下:

1、通过ACL,定义要检测的可能产生扫描攻击的IP源(注意,扫描是对可疑的源进行)

2、对可疑源,配置扫描检测策略

3、配置日志记录

以办公室网络为101.1.1.0/24网段为例,对该办公室内的每个IP都进行扫描行为监控,配置监控敏感度为low等级,并打开对应的log,配置模板如下:

Cli命令:

Ruijie (config)#ip access-list standard test

Ruijie (config-std-nacl)#permit 101.1.1.0 0.0.0.255  

Ruijie (config-std-nacl)#exit

Ruijie(config-defend-zone)#ip access-group test

Ruijie(config-defend-zone)#scan in src-ip threshold low action notify

Ruijie(config-defend-zone)#scan out src-ip threshold low action notify

Ruijie(config-defend-zone)#log scan

web配置:

web的配置页面为主页中防火墙=》防攻击配置=》域策略=》防扫描

 

命令解析:

scan { in | out } src-ip threshold { low | medium | high } [ timeout seconds ] action { blocking | notify }

【参数说明】

参数

描述

in

针对进入网络防攻击域方向的流量进行检测

out

针对外出网络防攻击域方向的流量进行检测

low

使用低敏感度进行检测

medium

使用中等敏感度进行检测

high

使用高敏感度进行检测

timeout seconds

策略的最小执行时间,单位秒,缺省值为60。可配置范围1086400

notify

仅记录攻击

blocking

发现攻击后阻塞该攻击的所有流量

注意:路由模式下,如果保护的接口直连网段较大,例如掩码为16位左右,则需要在路由模式防攻击域中配置防扫描策略,避免扫描攻击导致交换机异常

 

2.4.6 策略自学习

在配置防御策略之前,用户可以启动策略自动学习功能,通过一段时间的流量监视,给出针对此网络防攻击域较为合理的策略配置建议。(启动学习前,域必须存在,且不能有防御策略的配置,默认学习的天数为7天

Cli配置:

Global域学习:

Ruijie(config)#defend-zone global

Ruijie(config-defend-global)#show this

Building configuration...

!

 no session-limit unauth-src-new-session

 no session-limit tcp

 no session-limit udp

 no session-limit icmp

 no session-limit other-protocol

!

end

Ruijie(config-defend-global)#exit

Ruijie#net-defend learning global

 

单个域学习:

Ruijie(config)#defend-zone test1

Ruijie(config-defend-zone)#ip access-group test1

Ruijie(config-defend-zone)#show this

Building configuration...

!

 ip access-group test1

!

end

Ruijie(config-defend-zone)# end

Ruijie#net-defend learning test1

 

net-defend learning

 

启动针对网络防攻击域的防御策略自学习功能

net-defend learning vfw-name net-defend-zone-name [ days days ]

 

 

启动全局防护的防御策略自学习功能

net-defend learning { vfw-name | route-mode-vfw } global [ days days ]

 

【参数说明】

参数

描述

 

vfw-name

虚拟防火墙名称

 

route-mode-vfw

路由模式对应的特殊虚墙名称

 

net-defend-zone-name

网络防攻击对象名称

 

global

网络防攻击的全局防护

 

days

策略学习的天数

 

 

【使用指导】

在配置防御策略之前,用户可以启动策略自动学习功能,通过一段时间的流量监视,给出针对此网络防攻击域较为合理的策略配置建议。在策略的学习期间,系统会为启动策略学习的网络防攻击域默认启用基于会话的TCP SYN flooding攻击防御策略,防止网络防攻击域在策略学习期间遭受此类攻击。用户无法在策略学习期间同时启用手工配置的防御策略,因此在策略学习期内,如果遭受了攻击(例如感觉到网络防攻击域遭受攻击而出现异常等),系统学习的策略水线会不准确,建议用户重新学习策略。策略学习的时间建议不低于7

策略学习是根据监控期间对应网络防攻击域的各类流量峰值得出的,用户可以选择直接使用这些阈值,也可以选择对这些阈值进行调整,例如将水线适当上浮一定百分比。

 

 

【提示信息】

1. 正常配置成功

Ruijie# net-defend learning vfw1 web

Net defend policies learning for defend-zone web begin. (Period:  7 days)

 

2. 已经有防御策略时,无法启动策略学习

Ruijie#net-defend learning vfw1 web

Learning policy for 'web' fail: policies have been configured.

 

web配置:

web的配置页面为主页中防火墙=》防攻击配置=》全局防护