H3C-S5800及S6800 受异常包攻击导致CPU高
排查思路如下:
多台设备出现CPU跑满的情况,经查看为SOCK进程和bRX1进程占用高,查看文档是IP报文调度和CPU收包使用的进程。
dis cpu-usage task
进一步排查,发现CPU丢弃的包中,telnet和http非常多,大致可以判断设备接收相应协议的包过高导致cpu跑满。
en_diag
debug rxtx softcar show 1
随后进行了抓包排查,在多台设备中均抓取到异常的访问包,主要有两种:
1.外部使用80端口访问设备的23号端口
2.外部使用80端口访问设备的7547号端口
根据抓包情况可以看到,外部攻击的地址会随时发生变化,且访问网络设备的ip也不是固定的,所有公网可通的地址,包括客户的vrrp网关地址均有可能被访问,通过限制源地址或目的地址的方法很难全部阻隔。
经与H3C厂商沟通,给出解决方案如下:
方法一: 限制控制平面上 CPU TCP 访问23、7547 包数量,不影响业务平面转发业务
acl number 3998
rule 0 permit tcp destination-port eq telnet
rule 10 permit tcp destination-port eq 7547
traffic classifier copp operator and
if-match acl 3998
traffic behavior copp
car cir 8 cbs 512 ebs 512 green pass red discard yellow pass
qos policy copp
classifier copp behavior copp
control-plane slot 1
qos apply policy copp inbound
方法二: 限制TELNET SSH 访问源地址,会限制登陆原地址,注意配置
acl number 3999
rule 0 permit ip source x.x.x.x 0
rule 10 permit ip source x.x.x.x x.x.x.x
telnet server acl 3999
ssh server acl 3999
真实网络中的配置脚本:
根据H3C提供的解决方案,在S5800的配置上进行了一些改造,由于我们大多数设备均需要通过telnet连接,如果将所有目的协议为23端口的包限速,就会导致正常登陆设备也受影响,所以分为两组限速。
由于之前的策略出现了所有穿越设备的流量均会被限速的问题,经过再次与华三沟通,需要再class处匹配出来相应的上CPU流量才可以实现,所以对脚本进行了一些修改。
1.常用telnet的源地址写成一个acl,qos策略限速1M
2.所有7547协议的包写成一组acl,qos限速策略8K
3.除白名单外ip所有telnet、ssh协议上CPU的包写成另一组acl,qos限速策略8K
acl number 3043
rule 0 permit tcp source X.X.X.X 0.0.0.255 destination-port eq telnet
rule 5 permit tcp source X.X.X.X 0 destination-port eq telnet
rule 10 permit tcp source X.X.X.X 0 destination-port eq telnet
rule 15 permit tcp source X.X.X.X 0 destination-port eq telnet
rule 20 permit tcp source X.X.X.X 0 destination-port eq telnet
rule 25 permit tcp source X.X.X.X 0 destination-port eq telnet
acl number 3044
rule 10 permit tcp destination-port eq 7547
traffic classifier 207-tcp-qos operator and
if-match acl 3043
traffic behavior 207-tcp-qos
car cir 1000 cbs 62500 ebs 512 green pass red discard yellow pass
traffic classifier tcp-qos operator and
if-match acl 3044
traffic classifier conp-index operator and
if-match system-index 61
traffic behavior tcp-qos
car cir 8 cbs 512 ebs 512 green pass red discard yellow pass
qos policy tcp-qos
classifier 207-tcp-qos behavior 207-tcp-qos
classifier tcp-qos behavior tcp-qos
classifier conp-index behavior tcp-qos
control-plane slot 1
qos apply policy tcp-qos inbound
S6800由于我们初配已经有了telnet限制,仅需要核查是否都配置了acl,这种方式的acl配置可以保护上到CPU的包,所以可以不再做其他加固。
acl basic 2044
description telnet-acl
rule 0 permit source X.X.X.X 0
rule 5 permit source X.X.X.X 0
rule 10 permit source X.X.X.X 0
rule 15 permit source X.X.X.X 0
rule 20 permit source X.X.X.X 0
rule 25 permit source X.X.X.X 0.0.0.255
telnet server enable
telnet server acl 2044