配置ARP安全综合功能示例
组网需求
- 攻击者向Switch发送伪造的ARP报文、伪造的免费ARP报文进行ARP欺骗攻击,恶意修改Switch的ARP表项,造成其他用户无法正常接收数据报文。
- 攻击者发出大量目的IP地址不可达的IP报文进行ARP泛洪攻击,造成Switch的CPU负荷过重。
- 用户User1构造大量源IP地址变化MAC地址固定的ARP报文进行ARP泛洪攻击,造成Switch的ARP表资源被耗尽以及CPU进程繁忙,影响到正常业务的处理。
- 用户User3构造大量源IP地址固定的ARP报文进行ARP泛洪攻击,造成Switch的CPU进程繁忙,影响到正常业务的处理。
配置思路
- 配置ARP表项严格学习功能以及ARP表项固化功能,实现防止伪造的ARP报文错误地更新Switch的ARP表项。
- 配置免费ARP报文主动丢弃功能,实现防止伪造的免费ARP报文错误地更新设备ARP表项。
- 配置根据源IP地址进行ARP Miss消息限速,实现防止用户侧存在攻击者发出大量目的IP地址不可达的IP报文触发大量ARP Miss消息,形成ARP泛洪攻击。同时需要保证Switch可以正常处理服务器发出的大量此类报文,避免因丢弃服务器发出的大量此类报文而造成网络无法正常通信。
- 配置基于接口的ARP表项限制以及根据源MAC地址进行ARP限速,实现防止User1发送的大量源IP地址变化MAC地址固定的ARP报文形成的ARP泛洪攻击,避免Switch的ARP表资源被耗尽,并避免CPU进程繁忙。
- 配置根据源IP地址进行ARP限速,实现防止User3发送的大量源IP地址固定的ARP报文形成的ARP泛洪攻击,避免CPU进程繁忙。
操作步骤
- 创建VLAN,将接口加入到VLAN中,并配置VLANIF接口
# 创建VLAN10、VLAN20和VLAN30,并将接口10GE1/0/1加入VLAN10中,接口10GE1/0/2加入VLAN20中,接口10GE1/0/3加入VLAN30中。
<HUAWEI> system-view [~HUAWEI] sysname Switch [*HUAWEI] commit [~Switch] vlan batch 10 20 30 [*Switch] interface 10ge 1/0/1 [*Switch-10GE1/0/1] port link-type trunk [*Switch-10GE1/0/1] port trunk allow-pass vlan 10 [*Switch-10GE1/0/1] quit [*Switch] interface 10ge 1/0/2 [*Switch-10GE1/0/2] port link-type trunk [*Switch-10GE1/0/2] port trunk allow-pass vlan 20 [*Switch-10GE1/0/2] quit [*Switch] interface 10ge 1/0/3 [*Switch-10GE1/0/3] port link-type trunk [*Switch-10GE1/0/3] port trunk allow-pass vlan 30 [*Switch-10GE1/0/3] quit
# 创建接口VLANIF10、VLANIF20、VLANIF30,配置各VLANIF接口的IP地址。
[*Switch] interface vlanif 10 [*Switch-Vlanif10] ip address 10.8.8.4 24 [*Switch-Vlanif10] quit [*Switch] interface vlanif 20 [*Switch-Vlanif20] ip address 10.9.9.4 24 [*Switch-Vlanif20] quit [*Switch] interface vlanif 30 [*Switch-Vlanif30] ip address 10.10.10.3 24 [*Switch-Vlanif30] quit
- 配置ARP表项严格学习功能
[*Switch] arp learning strict
- 配置ARP表项固化功能
# 配置ARP表项固化模式为fixed-mac方式。
[*Switch] arp anti-attack entry-check fixed-mac enable
- 配置免费ARP报文主动丢弃功能
[*Switch] arp anti-attack gratuitous-arp drop
- 配置根据源IP地址进行ARP Miss消息限速
# 配置对Server(IP地址为10.10.10.2)的ARP Miss消息进行限速,允许Switch每秒最多处理该IP地址触发的40个ARP Miss消息;对于其他用户,允许Switch每秒最多处理同一个源IP地址触发的20个ARP Miss消息。
[*Switch] arp miss anti-attack rate-limit source-ip maximum 20 [*Switch] arp miss anti-attack rate-limit source-ip 10.10.10.2 maximum 40
- 配置基于接口的ARP表项限制
# 配置接口10GE1/0/1最多可以学习到20个动态ARP表项。
[*Switch] interface 10ge 1/0/1 [*Switch-10GE1/0/1] arp limit vlan 10 20 [*Switch-10GE1/0/1] quit
- 配置根据源MAC地址进行ARP限速
# 配置对用户User1(MAC地址为1–1–1)进行ARP报文限速,每秒最多只允许10个该MAC地址的ARP报文通过。
[*Switch] arp anti-attack rate-limit source-mac 1-1-1 maximum 10
- 配置根据源IP地址进行ARP限速
# 配置对用户User3(IP地址为10.9.9.2)进行ARP报文限速,每秒最多只允许10个该IP地址的ARP报文通过。
[*Switch] arp anti-attack rate-limit source-ip 10.9.9.2 maximum 10 [*Switch] commit [~Switch] quit
- 验证配置结果
# 执行命令display arp learning strict,可以看到全局已经配置ARP表项严格学习功能。
<Switch> display arp learning strict The global arp learning strict state:enable Interface LearningStrictState ------------------------------------------------------------ ------------------------------------------------------------ Total:0 Force-enable:0 Force-disable:0
# 执行命令display arp limit,查看接口可以学习到的动态ARP表项数目的最大值。
<Switch> display arp limit interface 10ge 1/0/1 Interface VLAN Limit Learnt --------------------------------------------------------------------------- 10GE1/0/1 10 20 0 --------------------------------------------------------------------------- Total:1
# 执行命令display arp anti-attack rate-limit,查看ARP报文限速的配置情况。
<Switch> display arp anti-attack rate-limit Global ARP packet rate limit (pps) : -- Suppress Rate of each destination IP (pps): 500 Total number of rate-limit configuration for source IP Address : 1 Source IP Suppress Rate(pps) ------------------------------------------------------------------------------- 10.9.9.2 10 ------------------------------------------------------------------------------- Total number of rate-limit configuration for MAC Address : 1 Source MAC Suppress Rate(pps) ------------------------------------------------------------------------------- 0001-0001-0001 10 Other 30 ----------------------------------------------------------------------------
# 执行命令display arp anti-attack entry-check,查看ARP表项固化模式的配置情况。
<Switch> display arp anti-attack entry-check Interface Mode ------------------------------------------------------------------------------- All fix-mac -------------------------------------------------------------------------------
# 执行命令display arp miss anti-attack rate-limit,查看ARP Miss消息限速的配置情况。
<Switch> display arp miss anti-attack rate-limit Global ARP miss rate limit (pps) : 3000 Total number of rate-limit configuration for source IP Address : 1 Source IP Suppress Rate(pps) ------------------------------------------------------------------------------- 10.10.10.2/32 40 Other 20 -------------------------------------------------------------------------------
# 执行命令display arp packet statistics,查看ARP处理的报文统计数据。
<Switch> display arp packet statistics ARP Packets Received Total: 90402 Learnt Count: 37 Discard For Entry Limit: 146 Discard For Speed Limit: 40529 Discard For Proxy Suppress: 0 Discard For Other: 8367601 ARP Packets Sent Total: 6447 Request: 6341 Reply: 106 Gratuitous ARP: 0 ARP-Miss Message Received Total: 12 Discard For Speed Limit: 194 Discard For Other: 238
由显示信息可知,Switch上产生了ARP报文和ARP Miss消息丢弃计数,表明ARP安全功能已经生效。
配置文件
# Switch的配置文件
# sysname Switch # vlan batch 10 20 30 # arp miss anti-attack rate-limit source-ip maximum 20 arp anti-attack rate-limit source-ip 10.9.9.2 maximum 10 arp miss anti-attack rate-limit source-ip 10.10.10.2 maximum 40 arp anti-attack rate-limit source-mac 0001-0001-0001 maximum 10 arp learning strict arp anti-attack entry-check fixed-mac enable arp anti-attack gratuitous-arp drop # interface Vlanif10 ip address 10.8.8.4 255.255.255.0 # interface Vlanif20 ip address 10.9.9.4 255.255.255.0 # interface Vlanif30 ip address 10.10.10.3 255.255.255.0 # interface 10GE1/0/1 port link-type trunk port trunk allow-pass vlan 10 arp limit vlan 10 20 # interface 10GE1/0/2 port link-type trunk port trunk allow-pass vlan 20 # interface 10GE1/0/3 port link-type trunk port trunk allow-pass vlan 30 # return