基于CPCAR报文速率限制的CPU防护
基于CPCAR报文速率限制防攻击,是指通过对上送报文根据协议类型进行分类,用CPCAR控制转发平面送往CPU的报文的带宽、优先级和包长,同时控制总的上送带宽,以达到控制上送报文的数量,优先保证高优先级业务,防止单板CPU过载以及攻击产生时发出告警以达到防御的目的。
目前CPU被攻击时对业务的影响主要来自于三方面原因:
- 没有区分合法协议报文和非法协议报文,CPU忙于处理大量非法协议报文利用率大幅升高,影响了对正常协议报文的处理。
- 部分协议报文使用同一通道上送CPU处理,当其中一个协议由于网络发生环路,导致海量报文被“链式反应”复制堵塞了上送CPU的通道,影响了其他协议
协议报文的上送通道带宽不合理(要么太大,要么太小),发生流量冲击时影响其他上送通道的协议处理。
为了避免由于人因差错、IT管理导致的安全事故,要求做到:- 收集设备上运行的各种业务涉及的协议,并进行归类
- 用ACL对三层报文进行过滤,合法协议报文入白名单和用户自定义流,其他报文走黑名单
- 对黑名单、白名单和用户自定义流这三类名单的优先级,上送带宽,告警功能进行规划
- 非三层业务进行带宽限制,设备上不部署的业务有选择地关闭
本文档根据当前现网业务和被攻击情况,对目前常见的协议进行归类并制定了其处理建议。本文档下述的配置方案也以该处理建议进行介绍。
CPCAR的配置方法和步骤
下面通过一个CPCAR配置实例,讲解如何将信任网段加入到白名单。
- 执行命令system-view,进入系统视图。
- 执行命令acl { [ number ] acl-number | name acl-name [ number acl-number ] } [ match-order { auto | config } ],创建高级ACL。
- 执行命令rule [ rule-id ] peimit [ fragment-type fragment-type-name | source { source-ip-address source-wildcard | any } | time-range time-name | vpn-instance vpn-instance-name ] *,配置ACL规则明确的信任网段。
- 执行命令rule [ rule-id ] deny [ fragment-type fragment-type-name | source { source-ip-address source-wildcard | any } | time-range time-name | vpn-instance vpn-instance-name ] *,配置ACL规则明确的不信任网段。
- 执行命令commit,提交配置。
- 执行命令quit,返回到系统视图。
- 执行命令cpu-defend policy policy-number,创建防攻击策略。
执行命令whitelist acl acl-number,创建白名单。
缺省情况下,白名单功能是使能的。要去使能白名单功能,执行命令whitelist disable。
- 执行命令car whitelist { cir cir-value | cbs cbs-value } *,配置白名单上送带宽。
- 执行命令priority whitelist { high | middle | low },配置白名单上送优先级。
- 执行命令commit,提交配置。
- 执行命令quit,退出策略视图。
- 执行命令slot slotl-number,进入接口板视图。
- 执行命令cpu-defend-policy policy-number,将攻防策略和接口板绑定。
配置完成防攻击策略后,必须在接口板上应用防攻击策略,本机防攻击功能才能生效
- 执行命令commit,提交配置。
CPCAR配置示例
组网需求
对路由器安全性要求如下:
- 不能出现CPU资源占用率太高,尽可能节约系统资源。
- 防止攻击者通过管理报文管理路由器导致设备脱管。
- 能够记录攻击报文信息用于受攻击时分析定位。
- 丢弃报文时产生告警知会用户干预。
配置思路
采用如下的思路配置本机防攻击的基本功能:
- 收集设备上运行的各种业务涉及的协议,并进行归类,即识别正常要保护协议流量、明确的恶意流量。
- 配置CPU防攻击策略,对上送CPU的流量进行顺序匹配:
- 配置TCP/IP攻击防范检查(缺省使能),防止TCP/IP攻击。
- 配置应用层联动检查。对上送的报文流量进行应用层联动的带宽检查。
- 配置合法流量处理策略。即将正常协议流量和需要保护的流量加入白名单和用户自定义流,如果匹配,保证高优先级,分不同通道、不同带宽上送CPU处理。
- 配置非法报文和未知报文处理策略。即对明确的恶意流量或未知流量加入黑名单,如果匹配就直接丢弃,或者设置小带宽、低优先级上送CPU。
- 配置攻击溯源功能,当发现有丢弃报文时,攻击溯源功能就记录报文的丢弃情况,方便问题定位和分析。
- 打开报文丢弃告警功能。
缺省情况下,系统使能TCP SYN泛洪攻击防范功能,此功能优先级高于用户配置的黑名单功能。因此,TCP SYN报文会优先匹配TCP SYN泛洪攻击防范功能的ACL规则,不再匹配用户配置blacklist acl命令中指定的ACL规则。
如果用户需要将匹配指定ACL规则的TCP SYN报文匹配到黑名单中,需要先配置命令undo tcpsyn-flood enable,去使能对TCP SYN泛洪攻击的防范功能。
去使能TCP SYN泛洪攻击后,未匹配黑名单ACL规则的TCP SYN攻击报文将上送,请谨慎操作。
- 配置管理业务平面防护,保护管理接口(管理业务平面),防止非法用户从非管理接口控制设备或者发起管理报文攻击。
数据准备
分类 |
流量内容 |
优先级 |
动作策略(单位bps) |
备注说明 |
---|---|---|---|---|
信任网段 |
源IP |
高 |
自定义名单1限速1M |
允许访问本设备的信任网段,用ACL 3331过滤 |
路由协议 |
BGP |
高 |
自定义名单2限速512K |
用ACL 3332过滤 说明:
设备支持BGP协议的动态链路保护,对于已经生成链接的协议报文走动态白名单上送。这里限速的是还未生成链接的BGP协议报文。 |
LDP |
高 |
自定义名单3限速512K |
LDP协议对端的Peer和直连地址的源IP,用ACL 3333过滤 |
|
OSPF,RIP |
高 |
自定义名单4限速1M |
OSPF协议对端Peer的源IP,用ACL 3334过滤 |
|
ISIS |
NA |
NA |
ISIS是二层协议,这里不涉及ACL |
|
可靠性协议 |
VRRP |
高 |
自定义名单5限速1300K |
虚拟路由器协议,用ACL 3335过滤 |
组播协议 |
PIM |
高 |
自定义名单6限速1M |
用ACL 3336过滤 |
IGMP |
高 |
自定义名单7限速512K |
用ACL 3337过滤 |
|
MSDP |
低 |
自定义名单8限速512K |
用ACL 3338过滤 |
|
保留组播 |
高 |
自定义名单9限速512K |
保留组播地址范围段224.0.0.0~224.0.0.255,用ACL3339过滤 |
|
保留广播 |
低 |
自定义名单10限速512K |
广播地址255.255.255.255,用ACL3340过滤 | |
访问协议 |
SSH |
中 |
自定义名单11限速512K |
用ACL 33341过滤 |
TELNET 说明:
该协议不安全,建议使用STelnet。 |
||||
FTP 说明:
该协议不安全,建议使用SFTP。 |
低 |
自定义名单12限速512K |
用ACL 3342过滤 |
|
TFTP |
||||
网管协议 |
SNMP |
低 |
自定义名单13限速1M |
用ACL 3343过滤 |
服务协议 |
TACACS |
低 |
自定义名单14限速1M |
用ACL 3344过滤 |
NTP |
低 |
自定义名单15限速150K |
用ACL 3345过滤 |
|
工具协议 |
ICMP |
低 |
自定义名单16限速512K |
ICMP TTL越限报文、端口不可达报文、响应报文、响应回复报文,用ACL 3346过滤 |
LSPPING | 高 |
自定义名单17限速1M |
用ACL 3347过滤 |
|
其他 |
未知协议报文 |
低 |
预留512K逃生带宽 |
用ACL 3348过滤 |
攻击报文或非法协议报文(黑名单) | 低 |
黑名单带宽配置为0 | 用ACL 3330过滤 |
操作步骤
- 创建CPU防攻击策略
<HUAWEI> system-view [~HUAWEI] sysname DeviceA [*HUAWEI] commit [~DeviceA] cpu-defend policy 10 [*DeviceA-cpu-defend-policy-10] description slot10 [*DeviceA-cpu-defend-policy-10] commit
- 配置TCP/IP攻击防范
缺省情况下TCP/IP防攻击功能是使能的。如果曾经关闭,请执行如下命令。
[~DeviceA-cpu-defend-policy-10] tcpsyn-flood enable [*DeviceA-cpu-defend-policy-10] fragment-flood enable [*DeviceA-cpu-defend-policy-10] udp-packet-defend enable [*DeviceA-cpu-defend-policy-10] abnormal-packet-defend enable [*DeviceA-cpu-defend-policy-10] commit
- 配置上送CPU报文的匹配顺序
将上送CPU的报文匹配顺序设置为TCPSYN报文——〉分片报文——〉动态链路保护——〉管理协议ACL——〉白名单——〉用户自定义流——〉黑名单。
[~DeviceA-cpu-defend-policy-10] process-sequence tcpsyn-flood fragment-flood dynamic-link-protection management-acl whitelist user-defined-flow blacklist [*DeviceA-cpu-defend-policy-10] commit
- 配置黑名单的匹配规则
对于确定的非法用户报文、非法协议报文、攻击报文等设备需要拒绝上送处理的报文,建议将其加入黑名单,配置规则动作为丢弃。使用ACL3330来匹配上述报文。
[~DeviceA] acl number 3330 [*DeviceA-acl-adv-3330] rule deny ip source 10.1.1.0 0.0.0.255 [*DeviceA-acl-adv-3330] commit [~DeviceA-acl-adv-3330] quit
- 配置黑名单的动作
[~DeviceA-cpu-defend-policy-10] blacklist acl 3330 [*DeviceA-cpu-defend-policy-10] car blacklist cir 0 [*DeviceA-cpu-defend-policy-10] commit
- 配置用户自定义流
- 信任网段源IP地址加入ACL 3331
<DeviceA> system-view [~DeviceA] acl number 3331 [*DeviceA-acl-adv-3331] rule permit ip source 10.1.2.0 0.0.0.255 [*DeviceA-acl-adv-3331] rule permit ip source 10.1.3.0 0.0.0.255 [*DeviceA-acl-adv-3331] commit [~DeviceA-acl-adv-3331] quit
- BGP协议加入ACL 3332。
设备支持bgp协议的动态链路保护,对于已经生成的链接,协议报文走动态白名单上送。这里使用ACL对还未生成链接的bgp peer协议报文进行限速。
[~DeviceA] acl number 3332 [*DeviceA-acl-adv-3332] rule permit tcp source 12.12.1.0 0.0.0.255 destination-port eq bgp [*DeviceA-acl-adv-3332] rule permit tcp source 12.12.1.0 0.0.0.255 source-port eq bgp [*DeviceA-acl-adv-3332] commmit
- LDP协议加入ACL 3333
说明:
LDP协议较BGP协议的建立比较特殊,其不仅依赖于TCP连接,还要依赖UDP来维护邻居关系,不仅涉及建邻居的Peer地址,还涉及到直连端口的IP地址,要分为以下几步进行:
执行display mpls ldp peer获取对端信息。
[*DeviceA-acl-adv-3332] display mpls ldp peer LDP Peer Information in Public network ------------------------------------------------------------------------------ Peer-ID Transport-Address Discovery-Source ------------------------------------------------------------------------------ 1.1.1.32:0 1.1.1.32 GigabitEthernet0/4/4 ------------------------------------------------------------------------------ TOTAL: 1 Peer(s) Found.
查看本机直连接口的IP地址。
[*DeviceA-GigabitEthernet0/4/4]display this # interface GigabitEthernet0/4/4 undo shutdown ip address 11.11.11.2 255.255.255.0 mpls mpls ldp #
本地LDP通过双向Hello报文发现邻居,Hello报文为UDP报文,源地址为本地接口地址,目的地址为组播IP。远端LDP与此类似,只不过目的地址变更为配置的远端对等体地址。首先将邻居Hello报文加入ACL:
[~DeviceA] acl number 3333 [*DeviceA-acl-adv-3333] rule permit udp source 11.11.11.1 0 destination-port eq 646 [*DeviceA-acl-adv-3333] rule permit udp source 11.11.11.1 0 source-port eq 646 [*DeviceA-acl-adv-3333] commit
在Hello报文载荷中携带本端LDP传输地址,在使用LDP Hello报文发现邻居并获取对方的传输地址后,设备就开始尝试TCP建立LDP会话,用以传递notification等消息。在TCP交互中,传输地址大的一方发起TCP连接建立请求,目的端口号是646,源端口号随机。实际配置时可以忽略该比较步骤,可以直接添加两条对等ACL:
[*DeviceA-acl-adv-3333] rule permit tcp source 1.1.1.32 0 destination-port eq 646 [*DeviceA-acl-adv-3333] rule permit tcp source 1.1.1.32 0 source-port eq 646 [*DeviceA-acl-adv-3333] commit
说明:
- 如果设备上存在多个LDP邻居,则要按照上述操作对每个Peer地址添加四条ACL规则。
- 对于ACL规则的配置分为精确配置(基于源IP地址+端口号)和简化配置(基于端口号)两种。精确配置的安全程度高,但信息收集复杂。简化配置的安全程度较低,但配置过程简单。用户可以根据自己的实际情况选择配置方式。简化配置过程如下:
[~DeviceA-acl-adv-3332] acl number 3333 [*DeviceA-acl-adv-3333] rule permit tcp source-port eq 646 [*DeviceA-acl-adv-3333] rule permit tcp destination-port eq 646 [*DeviceA-acl-adv-3333] rule permit udp source-port eq 646 [*DeviceA-acl-adv-3333] rule permit udp destination-port eq 646 [*DeviceA-acl-adv-3333] commit
- OSPF和RIP协议加入ACL 3334
[~DeviceA] acl number 3334
说明:
设备支持OSPF协议的动态链路保护,对于已经生成的链接,协议报文走动态白名单上送。这里使用ACL对还未生成链接的OSPF协议报文进行限速。[*DeviceA-acl-adv-3334] rule 5 permit ospf [*DeviceA-acl-adv-3334] commit
RIP协议的ACL配置方法与OSPF一样,不再赘述。
- VRRP协议加入ACL 3335
说明:
VRRP基于IP协议,协议号为112,由于其以对端虚IP地址发送报文,因此以该虚IP地址+协议号加入到ACL中。在设备上通过命令display vrrp获取VRRP Peer信息。
[~DeviceA] acl number 3335 [*DeviceA-acl-adv-3335] rule permit 112 source 11.11.11.100 0 [*DeviceA-acl-adv-3335] quit
说明:
- 如果设备上存在多个VRRP邻居,则要按照上述操作对每个VRRP Peer地址添加一条ACL规则。
- 对于ACL规则的配置分为精确配置(基于源IP地址+端口号)和简化配置(基于端口号)两种。精确配置的安全程度高,但信息收集复杂。简化配置的安全程度较低,但配置过程简单。用户可以根据自己的实际情况选择配置方式。简化配置过程如下:
[~DeviceA-acl-adv-3335] rule 5 permit 112 [*DeviceA-acl-adv-3335] commit
- 组播相关协议
说明:
PIM是一种组播协议,其协议号为103。
[~DeviceA] acl number 3336 [*DeviceA-acl-adv-3336] rule permit 103 [*DeviceA-acl-adv-3336] quit [~DeviceA] acl number 3337 [*DeviceA-acl-adv-3337] rule permit igmp [*DeviceA-acl-adv-3337] commit [~DeviceA-acl-adv-3337] quit [~DeviceA] acl number 3338 [*DeviceA-acl-adv-3338] rule permit udp destination-port eq 639 [*DeviceA-acl-adv-3338] rule permit udp source-port eq 639 [*DeviceA-acl-adv-3338] rule permit tcp destination-port eq 639 [*DeviceA-acl-adv-3338] rule permit tcp source-port eq 639 [*DeviceA-acl-adv-3338] commit [~DeviceA-acl-adv-3338] quit
- 保留组播地址224.0.0.0~224.0.0.255加入ACL 3339。
[~DeviceA] acl number 3339 [*DeviceA-acl-adv-3339] rule permit ip destination 224.0.0.0 0.0.0.255 [*DeviceA-acl-adv-3339] commit [~DeviceA-acl-adv-3339] quit
- 保留广播地址255.255.255.255加入ACL3340。
[~DeviceA] acl number 3340 [*DeviceA-acl-adv-3340] rule permit ip destination 255.255.255.255 0 [*DeviceA-acl-adv-3340] commit [~DeviceA-acl-adv-3340] quit
- TELNET,SSH协议加入ACL 3341
说明:
Telnet和SSH协议都是基于TCP的协议,平常用于登录设备,或是研发登录定位,非常重要,因此放入一个单独的ACL中进行保护。设备支持TELNET和SSH协议的动态链路保护,对于已经生成的链接,协议报文走动态白名单上送。这里使用ACL对还未生成链接的TELNET、SSH协议报文进行限速。SSH的端口号为22。管理协议建议直接对未知源的访问流量进行过滤丢弃。
[~DeviceA] acl number 3341 [*DeviceA-acl-adv-3341] rule permit tcp source 192.168.1.0 0.0.0.255 source-port eq telnet [*DeviceA-acl-adv-3341] rule permit tcp source 192.168.1.0 0.0.0.255 destination-port eq telnet [*DeviceA-acl-adv-3341] rule permit tcp source 192.168.1.0 0.0.0.255 source-port eq 22 [*DeviceA-acl-adv-3341] rule permit tcp source 192.168.1.0 0.0.0.255 destination-port eq 22 [*DeviceA-acl-adv-3341] quit [*DeviceA-acl-adv-3341] rule deny tcp destination-port eq telnet [*DeviceA-acl-adv-3341] rule deny tcp destination-port eq 22 [*DeviceA-acl-adv-3341] commit
- FTP/TFTP协议加入ACL 3342
说明:
FTP基于TCP,而TFTP基于UDP协议,因此每个源地址需要配置三条规则。
[~DeviceA] acl number 3342 [*DeviceA-acl-adv-3342] rule permit udp source 192.168.1.0 0.0.0.255 destination-port eq tftp [*DeviceA-acl-adv-3342] rule permit tcp source 192.168.1.0 0.0.0.255 source-port eq ftp [*DeviceA-acl-adv-3342] rule permit tcp source 192.168.1.0 0.0.0.255 destination-port eq ftp [*DeviceA-acl-adv-3342] quit
说明:
- FTP和TFTP源地址段范围必须获取客户的确认。
- 对于ACL规则的配置分为精确配置(基于源IP地址+端口号)和简化配置(基于端口号)两种。精确配置的安全程度高,但信息收集复杂。简化配置的安全程度较低,但配置过程简单。用户可以根据自己的实际情况选择配置方式。简化配置过程如下:
[*DeviceA-acl-adv-3342] rule permit udp destination-port eq tftp [*DeviceA-acl-adv-3342] rule permit tcp source-port eq ftp [*DeviceA-acl-adv-3342] rule permit tcp destination-port eq ftp [*DeviceA-acl-adv-3342] commit
- SNMP协议加入ACL 3343
说明:
现网一般都会部署网管功能,网管服务器会发送大量UDP请求报文,设备则以SNMP协议端口号进行回应,由于信息量较大,因此要把这些网管主机加入到一个单独的ACL中加以保护。
加入ACL的网管源地址段必须得到用户的确认,否则会导致漏掉的源IP对应的网管服务器无法管理该设备。SNMP协议为系统管理协议,建议在增加配置直接对未知源的协议报文进行丢弃。
[~DeviceA] acl number 3343 [*DeviceA-acl-adv-3343] rule permit udp source 20.20.20.0 0.0.0.255 source-port eq snmp [*DeviceA-acl-adv-3343] rule permit udp source 20.20.20.0 0.0.0.255 destination-port eq snmp [*DeviceA-acl-adv-3343] rule deny udp destination-port eq snmp [*DeviceA-acl-adv-3343] commit
- Tacacs协议加入ACL 3344
说明:
Tacacs归属于服务类型协议,要注意其包含两种:一种是基于TCP的华为加强Tacacs,另一种是基于UDP的标准Tacacs,建议全部添加。
[~DeviceA] acl number 3344 [*DeviceA-acl-adv-3344] rule permit tcp source 5.5.5.5 0 source-port eq tacacs [*DeviceA-acl-adv-3344] rule permit tcp source 6.6.6.6 0 destination-port eq tacacs [*DeviceA-acl-adv-3344] rule permit udp source 5.5.5.5 0 source-port eq tacacs-ds [*DeviceA-acl-adv-3344] rule permit udp source 6.6.6.6 0 destination-port eq tacacs-ds [*DeviceA-acl-adv-3344] quit
说明:
- TACACS的源地址段必须获取客户的确认。
- 对于ACL规则的配置分为精确配置(基于源IP地址+端口号)和简化配置(基于端口号)两种。精确配置的安全程度高,但信息收集复杂。简化配置的安全程度较低,但配置过程简单。用户可以根据自己的实际情况选择配置方式。简化配置过程如下:
acl number 3344 rule permit tcp source-port eq tacacs rule permit tcp destination-port eq tacacs rule permit udp source-port eq tacacs-ds rule permit udp destination-port eq tacacs-ds
- NTP协议加入ACL 3345
说明:
NTP归属于服务类型协议,端口号为123。
[~DeviceA] acl number 3345 [*DeviceA-acl-adv-3345] rule permit udp source 172.16.0.0 0.0.255.255 source-port eq 123 [*DeviceA-acl-adv-3345] rule permit udp source 172.16.0.0 0.0.255.255 destination-port eq 123 [*DeviceA-acl-adv-3345] commit [~DeviceA-acl-adv-3345] quit
说明:
- NTP的源地址段必须获取客户的确认。
- 对于ACL规则的配置分为精确配置(基于源IP地址+端口号)和简化配置(基于端口号)两种。精确配置的安全程度高,但信息收集复杂。简化配置的安全程度较低,但配置过程简单。用户可以根据自己的实际情况选择配置方式。简化配置过程如下:
acl number 3345 rule permit udp source- port eq 123 rule permit udp destination- port eq 123
- ICMP,Tracert加入ACL 3346
[~DeviceA] acl number 3346 [*DeviceA-acl-adv-3346] rule permit icmp icmp-type echo [*DeviceA-acl-adv-3346] rule permit icmp icmp-type echo-reply [*DeviceA-acl-adv-3346] rule permit icmp icmp-type ttl-exceeded [*DeviceA-acl-adv-3346] rule permit icmp icmp-type port-unreachable [*DeviceA-acl-adv-3346] rule permit icmp icmp-type Fragmentneed-DFset [*DeviceA-acl-adv-3346] rule permit icmp [*DeviceA-acl-adv-3346] rule permit udp destination-port range 33434 33678 [*DeviceA-acl-adv-3346] quit
- Ping-LSP加入ACL 3347
[~DeviceA] acl number 3347 [*DeviceA-acl-adv-3347] rule permit udp destination-port eq 3503 [*DeviceA-acl-adv-3347] commit [~DeviceA-acl-adv-3347] quit
- 未知协议加入ACL 3348
说明:
如果确认非法协议报文和攻击报文归到了黑名单绑定的ACL3330,并且正常的协议报文及信任网段全部归到了ACL 3331~ACL 3347,其它的协议报文可以认其未知,这些报文用ACL 3348来过滤。对应的用户自定义流将为这些报文配置一定的逃生带宽,以低优先级上送CPU处理。
这部分配置属于可选项,如果不配置ACL过滤未知报文,这些报文会从ME设备默认为其指定的上送通道上送CPU处理。必须确认前述的配置已经能够识别所有已知的业务和协议报文,否则不推荐配置此ACL及对应的用户自定义流。
[~DeviceA] acl number 3348 [*DeviceA-acl-adv-3348] rule permit udp [*DeviceA-acl-adv-3348] rule permit tcp [*DeviceA-acl-adv-3348] rule permit ip [*DeviceA-acl-adv-3348] commit [~DeviceA-acl-adv-3348] quit
- 信任网段源IP地址加入ACL 3331
- 配置用户自定义流及动作
使用ACL对协议报文归类后,要建立用户自定义流把ACL指定给用户自定义流,让不同的协议报文走不同的上送通道。
- 配置自定义名单1的动作
自定义名单1对应的acl为3331,它用来保护允许访问本设备的信任网段;优先级设置为高,处理带宽限速为1M,对于访问来说已经足够。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 1 acl 3331 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 1 cir 1000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 1 high
- 配置自定义名单2的动作
自定义名单2对应的acl为3332,用来保护BGP协议;因为是路由协议所以优先级要设置为高;带宽也要得到相应保障,这里设置为512K;并且部署防攻击告警功能。报文丢弃告警阈值和告警时间间隔需要根据实际网络情况进行调整。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 2 acl 3332 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 2 cir 512 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 2 high [*DeviceA-cpu-defend-policy-10] alarm drop-rate user-defined-flow 2 enable [*DeviceA-cpu-defend-policy-10] alarm drop-rate user-defined-flow 2 threshold 100 interval 60
- 配置自定义名单3的动作
自定义名单3对应的acl为3333,用来保护LDP协议;优先级设置为高,带宽设置为512K,并且部署防攻击告警功能。报文丢弃告警阈值和告警时间间隔需要根据实际网络情况进行调整。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 3 acl 3333 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 3 cir 512 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 3 high [*DeviceA-cpu-defend-policy-10] alarm drop-rate user-defined-flow 3 enable [*DeviceA-cpu-defend-policy-10] alarm drop-rate user-defined-flow 3 threshold 100 interval 60
说明:
LDP协议是最容易发生震荡的协议之一,一般情况下LDP丢包超过3个就有可能发生DOWN,因此配置防攻击告警功能十分有必要。
- 配置自定义名单4的动作
自定义名单4对应的acl为3334,用来保护OSPF和RIP协议;优先级设置为高,带宽设置为1M,并且部署防攻击告警功能。报文丢弃告警阈值和告警时间间隔需要根据实际网络情况进行调整
[*DeviceA-cpu-defend-policy-10] user-defined-flow 4 acl 3334 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 4 cir 1000 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 4 high [*DeviceA-cpu-defend-policy-10] alarm drop-rate user-defined-flow 4 enable [*DeviceA-cpu-defend-policy-10] alarm drop-rate user-defined-flow 4 threshold 100 interval 60
- 配置自定义名单5的动作
自定义名单5对应的acl为3335,用来保护VRRP协议;因为VRRP是一种可靠性协议,优先级设置为高即可,,带宽设置为1.3M。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 5 acl 3335 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 5 cir 1300 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 5 high
- 配置自定义名单6的动作
自定义名单6对应的acl为3336,用来限制PIM协议的上送带宽。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 6 acl 3336 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 6 cir 1000 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 6 high
- 配置自定义名单7的动作
自定义名单7对应的acl为3337,用来限制IGMP协议的上送带宽。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 7 acl 3337 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 7 cir 512 cbs 512000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 7 high
- 配置自定义名单8的动作
自定义名单8对应的acl为3338,用来限制MSDP协议的上送带宽。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 8 acl 3338 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 8 cir 512 cbs 512000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 8 low
- 配置自定义名单9的动作
自定义名单9对应的acl为3339。因为现网比较容易遭受到利用缺省保留组播地址的攻击,因此这些保留组播单独放到一个ACL中,限制处理带宽为512K,以保护其他协议。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 9 acl 3339 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 9 cir 512 cbs 40000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 9 high
- 配置自定义名单10的动作
自定义名单10对应的acl为3340。用来限制目的IP地址为广播地址255.255.255.255的报文上送带宽。限制处理带宽为512Kbps,优先级设置为低,以保护其他协议。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 10 acl 3339 [*DeviceA-cpu-defend-policy-10] car user-defined-flow cir 512 cbs 20000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 10 low
- 配置自定义名单11的动作
自定义名单11对应的acl为3341,用来保护SSH和Telnet,因为是访问协议类,所需处理带宽较少,不需要实时性,因此一般把这类协议报文设置的优先级为中即可。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 11 acl 3341 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 11 cir 512 cbs 300000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 11 middle
- 配置自定义名单12的动作
自定义名单12对应的acl为3342,用来保护FTP和TFTP。优先级设置为低,带宽限为512K即可甚至更小都可以。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 12 acl 3342 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 12 cir 512 cbs 5120 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 12 low
- 配置自定义名单13的动作
自定义名单13对应的acl为3343,用来保护SNMP协议。SNMP协议报文量较大,但实时性要求不高,因此优先级设置为低,带宽设为1M。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 13 acl 3343 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 13 cir 1000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 13 low
- 配置自定义名单14的动作
自定义名单14对应的acl为3341,用来保护TACACS协议。TACACS协议对实时性要求不高, 因此优先级设置为低,处理带宽设为1M。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 14 acl 3344 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 14 cir 1000 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 14 low
- 配置自定义名单15的动作
自定义名单15对应的acl为3345,用来限制NTP协议的上送带宽。带宽设为150Kbps,优先级设置为低。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 15 acl 3345 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 15 cir 150 cbs 15000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 15 low
- 配置自定义名单16的动作
自定义名单16对应的acl为3346,用来保护ICMP协议。ICMP网上使用非常频繁,因此带宽设为512K,优先级设置为低。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 16 acl 3346 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 16 cir 512 cbs 256000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 16 low
- 配置自定义名单17的动作
自定义名单17对应的acl为3347,用来保护LSP PING协议。上送带宽和优先级设置成ME设备默认为其指定的上送通道一样,带宽设为1M,优先级设置为高。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 17 acl 3347 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 17 cir 1000 cbs 40000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 17 high
- 配置自定义名单18的动作
自定义名单18对应的acl为3348,用来限制未知协议报文的上送带宽。配置此自定义名单之前,务必确认当前设备必须的业务和协议都已全部通过前面的自定义名单进行匹配。否则,不能配置该自定义名单,让未知协议报文走设备默认为其指定的上送通道。
[*DeviceA-cpu-defend-policy-10] user-defined-flow 18 acl 3348 [*DeviceA-cpu-defend-policy-10] car user-defined-flow 18 cir 512 cbs 1000000 [*DeviceA-cpu-defend-policy-10] priority user-defined-flow 18 low [*DeviceA-cpu-defend-policy-10] commit
- 配置自定义名单1的动作
- 应用防攻击策略
[~DeviceA] slot 1 [*DeviceA-slot-1] cpu-defend-policy 10 [*DeviceA-slot-1] commit [~DeviceA-slot-1] quit
- 验证配置结果
执行命令display cpu-defend policy policy-number可以查看配置上送CPU报文的过滤规则。
执行命令display cpu-defend car { blacklist | index index | protocol | user-defined-flow flow-id | whitelist } statistics [ slot slot-id ]可以查看CAR功能丢弃报文的统计信息。
配置文件
# sysname DeviceA # cpu-defend policy 10 blacklist acl 3330 user-defined-flow 1 acl 3331 user-defined-flow 2 acl 3332 user-defined-flow 3 acl 3333 user-defined-flow 4 acl 3334 user-defined-flow 5 acl 3335 user-defined-flow 6 acl 3336 user-defined-flow 7 acl 3337 user-defined-flow 8 acl 3338 user-defined-flow 9 acl 3339 user-defined-flow 10 acl 3340 user-defined-flow 11 acl 3341 user-defined-flow 12 acl 3342 user-defined-flow 13 acl 3343 user-defined-flow 14 acl 3344 user-defined-flow 15 acl 3345 user-defined-flow 16 acl 3346 user-defined-flow 17 acl 3347 user-defined-flow 18 acl 3348 alarm drop-rate user-defined-flow 2 threshold 100 interval 60 alarm drop-rate user-defined-flow 3 threshold 100 interval 60 alarm drop-rate user-defined-flow 4 threshold 100 interval 60 car blacklist cir 0 car user-defined-flow 1 cir 1000 car user-defined-flow 2 cir 512 cbs 1000000 car user-defined-flow 3 cir 512 cbs 1000000 car user-defined-flow 4 cir 1000 cbs 1000000 car user-defined-flow 5 cir 1300 cbs 1000000 car user-defined-flow 6 cir 1000 cbs 1000000 car user-defined-flow 7 cir 512 cbs 512000 car user-defined-flow 8 cir 512 cbs 5120 car user-defined-flow 9 cir 512 cbs 40000 car user-defined-flow 10 cir 512 car user-defined-flow 11 cir 512 cbs 300000 car user-defined-flow 12 cir 512 cbs 5120 car user-defined-flow 13 cir 1000 car user-defined-flow 14 cir 1000 cbs 1000000 car user-defined-flow 15 cir 150 cbs 15000 car user-defined-flow 16 cir 512 cbs 256000 car user-defined-flow 17 cir 1000 cbs 40000 car user-defined-flow 18 cir 512 cbs 1000000 priority user-defined-flow 1 high priority user-defined-flow 2 high priority user-defined-flow 3 high priority user-defined-flow 4 high priority user-defined-flow 5 high priority user-defined-flow 6 high priority user-defined-flow 7 high priority user-defined-flow 8 low priority user-defined-flow 9 high priority user-defined-flow 10 low priority user-defined-flow 11 middle priority user-defined-flow 12 low priority user-defined-flow 13 low priority user-defined-flow 14 low priority user-defined-flow 15 low priority user-defined-flow 16 low priority user-defined-flow 17 high priority user-defined-flow 18 low process-sequence tcpsyn-flood fragment-flood dynamic-link-protection management-acl whitelist user-defined-flow blacklist # # acl number 3330 rule 5 deny ip source 10.1.1.0 0.0.0.255 # acl number 3331 rule 5 permit ip source 10.1.2.0 0.0.0.255 rule 10 permit ip source 10.1.3.0 0.0.0.255 # acl number 3332 rule 5 permit tcp source 12.12.1.0 0.0.0.255 destination-port eq bgp rule 10 permit tcp source 12.12.1.0 0.0.0.255 source-port eq bgp # acl number 3333 rule 5 permit udp source 11.11.11.1 0 destination-port eq 646 rule 10 permit udp source 11.11.11.1 0 source-port eq 646 rule 15 permit tcp source 1.1.1.32 0 destination-port eq 646 rule 20 permit tcp source 1.1.1.32 0 source-port eq 646 # acl number 3334 rule 5 permit ospf # acl number 3335 rule 5 permit 112 source 11.11.11.100 0 # acl number 3336 rule 5 permit 103 # acl number 3337 rule 5 permit igmp # acl number 3338 rule 5 permit udp destination-port eq 639 rule 10 permit udp source-port eq 639 rule 15 permit tcp destination-port eq 639 rule 20 permit tcp source-port eq 639 # acl number 3339 rule 5 permit ip destination 224.0.0.0 0.0.0.255 # acl number 3340 rule 5 permit ip destination 255.255.255.255 0 # acl number 3341 rule 5 permit tcp source 192.168.1.0 0.0.0.255 source-port eq telnet rule 10 permit tcp source 192.168.1.0 0.0.0.255 destination-port eq telnet rule 15 permit tcp source 192.168.1.0 0.0.0.255 source-port eq 22 rule 20 permit tcp source 192.168.1.0 0.0.0.255 destination-port eq 22 rule 100 deny tcp destination-port eq telnet rule 105 deny tcp destination-port eq 22 # acl number 3342 rule 5 permit udp source 192.168.1.0 0.0.0.255 destination-port eq tftp rule 10 permit tcp source 192.168.1.0 0.0.0.255 source-port eq ftp rule 15 permit tcp source 192.168.1.0 0.0.0.255 destination-port eq ftp # acl number 3343 rule 5 permit udp source 20.20.20.0 0.0.0.255 source-port eq snmp rule 10 permit udp source 20.20.20.0 0.0.0.255 destination-port eq snmp rule 100 deny udp destination-port eq snmp # acl number 3344 rule 5 permit tcp source 5.5.5.5 0 source-port eq tacacs rule 10 permit tcp source 6.6.6.6 0 destination-port eq tacacs rule 15 permit udp source 5.5.5.5 0 source-port eq tacacs-ds rule 20 permit udp source 6.6.6.6 0 destination-port eq tacacs-ds # acl number 3345 rule 5 permit udp source 172.16.0.0 0.0.255.255 source-port eq ntp rule 10 permit udp source 172.16.0.0 0.0.255.255 destination-port eq ntp # acl number 3346 rule 5 permit icmp icmp-type echo rule 10 permit icmp icmp-type echo-reply rule 15 permit icmp icmp-type ttl-exceeded rule 20 permit icmp icmp-type port-unreachable rule 25 permit icmp icmp-type fragmentneed-DFset rule 30 permit icmp rule 35 permit udp destination-port range 33434 33678 # acl number 3347 rule 5 permit udp destination-port eq 3503 # acl number 3348 rule 5 permit udp rule 10 permit tcp rule 15 permit ip # slot 10 cpu-defend-policy 10 # return