19-ARP攻击防御配置
本章节下载: 19-ARP攻击防御配置 (334.05 KB)
ARP协议有简单、易用的优点,但是也因为其没有任何安全机制而容易被攻击发起者利用。
· 攻击者可以仿冒用户、仿冒网关发送伪造的ARP报文,使网关或主机的ARP表项不正确,从而对网络进行攻击。
· 攻击者通过向设备发送大量目标IP地址不能解析的IP报文,使得设备试图反复地对目标IP地址进行解析,导致CPU负荷过重及网络流量过大。
· 攻击者向设备发送大量ARP报文,对设备的CPU形成冲击。
目前ARP攻击和ARP病毒已经成为局域网安全的一大威胁,为了避免各种攻击带来的危害,设备提供了多种技术对攻击进行防范、检测和解决。
下面将详细介绍一下这些技术的原理以及配置。
表1-1 ARP攻击防御配置任务简介
配置任务 |
说明 |
详细配置 |
||
防止泛洪攻击 |
配置ARP防止IP报文攻击功能 |
配置ARP源抑制功能 |
可选 建议在网关设备上配置本功能 |
|
配置ARP黑洞路由功能 |
可选 建议在网关设备上配置本功能 |
|||
配置源MAC地址固定的ARP攻击检测功能 |
可选 建议在网关设备上配置本功能 |
|||
防止仿冒用户、仿冒网关攻击 |
配置ARP报文源MAC地址一致性检查功能 |
可选 建议在网关设备上配置本功能 |
||
配置ARP主动确认功能 |
可选 建议在网关设备上配置本功能 |
|||
配置授权ARP功能 |
可选 建议在网关设备上配置本功能 |
|||
配置ARP自动扫描、固化功能 |
可选 建议在网关设备上配置本功能 |
|||
配置ARP网关保护功能 |
可选 建议在接入设备上配置本功能 |
|||
配置ARP过滤保护功能 |
可选 建议在接入设备上配置本功能 |
如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:
· 设备向目的网段发送大量ARP请求报文,加重目的网段的负载。
· 设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。
为避免这种IP报文攻击所带来的危害,设备提供了下列两个功能:
· ARP源抑制功能:如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中每5秒内从某IP地址向设备某接口发送目的IP地址不能解析的IP报文超过了设置的阈值,则设备将不再处理由此IP地址发出的IP报文直至该5秒结束,从而避免了恶意攻击所造成的危害。
· ARP黑洞路由功能:无论发送攻击报文的源是否固定,都可以采用ARP黑洞路由功能。开启该功能后,一旦接收到目标IP地址不能解析的IP报文,设备立即产生一个黑洞路由,并同时发起ARP主动探测,如果在黑洞路由老化时间内ARP解析成功,则设备马上删除此黑洞路由并开始转发去往该地址的报文,否则设备直接丢弃该报文。在删除黑洞路由之前,后续去往该地址的IP报文都将被直接丢弃。用户可以通过命令配置ARP请求报文的发送次数和发送时间间隔。等待黑洞路由老化时间过后,如有报文触发则再次发起解析,如果解析成功则进行转发,否则仍然产生一个黑洞路由将去往该地址的报文丢弃。这种方式能够有效地防止IP报文的攻击,减轻CPU的负担。
表1-2 配置ARP源抑制功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启ARP源抑制功能 |
arp source-suppression enable |
缺省情况下,ARP源抑制功能处于关闭状态 |
配置ARP源抑制的阈值 |
arp source-suppression limit limit-value |
缺省情况下,ARP源抑制的阈值为10 |
表1-3 配置ARP黑洞路由功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
配置ARP黑洞路由功能 |
arp resolving-route enable |
缺省情况下,ARP黑洞路由功能处于开启状态 |
(可选)配置发送ARP请求报文的次数 |
arp resolving-route probe-count count |
缺省情况下,发送ARP请求报文的次数为3次 |
(可选)配置发送ARP请求报文的时间间隔 |
arp resolving-route probe-interval interval |
缺省情况下,发送ARP请求报文的时间间隔为1秒 |
· 当用户配置的ARP主动探测总时长(发送次数×发送时间间隔)大于黑洞路由老化时间时,系统只会取小于等于该老化时间的最大值作为真正的探测总时长。
· 当发起ARP主动探测过程结束且生成的黑洞路由还未老化时,设备无法主动对黑洞路由对应的设备进行ARP解析,为了缓解该问题,用户可以配置较大的发送ARP请求报文次数
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP源抑制的运行情况,通过查看显示信息验证配置的效果。
表1-4 ARP防止IP报文攻击显示和维护
操作 |
命令 |
显示ARP源抑制的配置信息 |
display arp source-suppression |
某局域网内存在两个区域:研发区和办公区,分别属于VLAN 10和VLAN 20,通过接入交换机连接到网关Device,如图1-1所示。
网络管理员在监控网络时发现办公区存在大量ARP请求报文,通过分析认为存在IP泛洪攻击,为避免这种IP报文攻击所带来的危害,可采用ARP源抑制功能和ARP黑洞路由功能。
图1-1 ARP防止IP报文攻击配置组网图
对攻击报文进行分析,如果发送攻击报文的源地址是固定的,采用ARP源抑制功能。在Device上做如下配置:
· 使能ARP源抑制功能;
· 配置ARP源抑制的阈值为100,即当每5秒内的ARP请求报文的流量超过100后,对于由此IP地址发出的IP报文,设备不允许其触发ARP请求,直至5秒后再处理。
如果发送攻击报文的源地址是不固定的,则采用ARP黑洞路由功能,在Device上配置ARP黑洞路由功能。
· 配置ARP源抑制功能
# 开启ARP源抑制功能,并配置ARP源抑制的阈值为100。
<Device> system-view
[Device] arp source-suppression enable
[Device] arp source-suppression limit 100
· 配置ARP黑洞路由功能
# 使能ARP黑洞路由功能。
[Device] arp resolving-route enable
本特性根据ARP报文的源MAC地址对上送CPU的ARP报文进行统计,在5秒内,如果收到同一源MAC地址(源MAC地址固定)的ARP报文超过一定的阈值,则认为存在攻击,系统会将此MAC地址添加到攻击检测表项中。在该攻击检测表项老化之前,如果设置的检查模式为过滤模式,则会打印日志信息并且将该源MAC地址发送的ARP报文过滤掉;如果设置的检查模式为监控模式,则只打印日志信息,不会将该源MAC地址发送的ARP报文过滤掉。
切换源MAC地址固定的ARP攻击检查模式时,如果从监控模式切换到过滤模式,过滤模式马上生效;如果从过滤模式切换到监控模式,已生成的攻击检测表项,到表项老化前还会继续按照过滤模式处理。
对于网关或一些重要的服务器,可能会发送大量ARP报文,为了使这些ARP报文不被过滤掉,可以将这类设备的MAC地址配置成保护MAC地址,这样,即使该设备存在攻击也不会被检测或过滤。
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启源MAC地址固定的ARP攻击检测功能,并选择检查模式 |
arp source-mac { filter | monitor } |
缺省情况下,源MAC地址固定的ARP攻击检测功能处于关闭状态 |
配置源MAC地址固定的ARP报文攻击检测的阈值 |
arp source-mac threshold threshold-value |
缺省情况下,源MAC地址固定的ARP报文攻击检测阈值为30 |
配置源MAC地址固定的ARP攻击检测表项的老化时间 |
arp source-mac aging-time time |
缺省情况下,源MAC地址固定的ARP攻击检测表项的老化时间为300秒,即5分钟 |
(可选)配置保护MAC地址 |
arp source-mac exclude-mac mac-address&<1-10> |
缺省情况下,没有配置任何保护MAC地址 |
对于已添加到源MAC地址固定的ARP攻击检测表项中的MAC地址,在等待设置的老化时间后,会重新恢复成普通MAC地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后源MAC地址固定的ARP攻击检测的运行情况,通过查看显示信息验证配置的效果。
表1-6 源MAC地址固定的ARP攻击检测显示和维护
操作 |
命令 |
显示检测到的源MAC地址固定的ARP攻击检测表项 |
display arp source-mac [ interface interface-type interface-number ] |
某局域网内客户端通过网关与外部网络通信,网络环境如图1-2所示。
网络管理员希望能够防止因恶意用户对网关发送大量ARP报文,造成设备瘫痪,并导致其它用户无法正常地访问外部网络;同时,对于正常的大量ARP报文仍然会进行处理。
图1-2 源MAC地址固定的ARP攻击检测功能配置组网图
如果恶意用户发送大量报文的源MAC地址是使用客户端合法的MAC地址,并且源MAC是固定的,可以在网关上进行如下配置:
· 使能源MAC固定ARP攻击检测功能,并选择过滤模式;
· 配置源MAC固定ARP报文攻击检测的阈值;
· 配置源MAC固定的ARP攻击检测表项的老化时间;
· 配置服务器的MAC为保护MAC,使服务器可以发送大量ARP报文。
# 使能源MAC固定ARP攻击检测功能,并选择过滤模式。
<Device> system-view
[Device] arp source-mac filter
# 配置源MAC固定ARP报文攻击检测阈值为30个。
[Device] arp source-mac threshold 30
# 配置源MAC地址固定的ARP攻击检测表项的老化时间为60秒。
[Device] arp source-mac aging-time 60
# 配置源MAC固定攻击检查的保护MAC地址为0012-3f86-e94c。
[Device] arp source-mac exclude-mac 0012-3f86-e94c
ARP报文源MAC地址一致性检查功能主要应用于网关设备上,防御以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同的ARP攻击。
配置本特性后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。
表1-7 配置ARP报文源MAC地址一致性检查功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启ARP报文源MAC地址一致性检查功能 |
arp valid-check enable |
缺省情况下,ARP报文源MAC地址一致性检查功能处于关闭状态 |
ARP的主动确认功能主要应用于网关设备上,防止攻击者仿冒用户欺骗网关设备。
启用ARP主动确认功能后,设备在新建或更新ARP表项前需进行主动确认,防止产生错误的ARP表项。
使能严格模式后,新建ARP表项前,ARP主动确认功能会执行更严格的检查:
· 收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但不建立ARP表项;
· 收到ARP应答报文时,需要确认本设备是否对该报文中的源IP地址发起过ARP解析:若发起过解析,解析成功后则设备启动主动确认功能,主动确认流程成功完成后,设备可以建立该表项;若未发起过解析,则设备丢弃该报文。
表1-8 配置ARP主动确认功能
配置步骤 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
开启ARP主动确认功能 |
arp active-ack [ strict ] enable |
缺省情况下,ARP主动确认功能处于关闭状态 |
所谓授权ARP(Authorized ARP),就是动态学习ARP的过程中,只有和DHCP服务器生成的租约或DHCP中继生成的安全表项一致的ARP报文才能够被学习。关于DHCP服务器和DHCP中继的介绍,请参见“三层技术-IP业务配置指导”中的“DHCP服务器”和“DHCP中继”。
使能接口的授权ARP功能后,可以防止用户仿冒其他用户的IP地址或MAC地址对网络进行攻击,保证只有合法的用户才能使用网络资源,增加了网络的安全性。
表1-9 配置授权ARP功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
开启授权ARP功能 |
arp authorized enable |
缺省情况下,接口下的授权ARP功能处于关闭状态 |
· Device A是DHCP服务器,为同一网段中的客户端动态分配IP地址,地址池网段为10.1.1.0/24。通过在接口GigabitEthernet0/1上启用授权ARP功能来保证客户端的合法性。
· Device B是DHCP客户端,通过DHCP协议从DHCP服务器获取IP地址。
图1-3 授权ARP功能典型配置组网图
(1) 配置Device A
# 配置接口的IP地址。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 0/1
[DeviceA-GigabitEthernet0/1] ip address 10.1.1.1 24
[DeviceA-GigabitEthernet0/1] quit
# 使能DHCP服务。
[DeviceA] dhcp enable
[DeviceA] dhcp server ip-pool 1
[DeviceA-dhcp-pool-1] network 10.1.1.0 mask 255.255.255.0
[DeviceA-dhcp-pool-1] quit
# 进入三层以太网接口视图。
[DeviceA] interface gigabitethernet 0/1
# 开启接口授权ARP功能。
[DeviceA-GigabitEthernet0/1] arp authorized enable
[DeviceA-GigabitEthernet0/1] quit
(2) 配置Device B
<DeviceB> system-view
[DeviceB] interface gigabitethernet 0/1
[DeviceB-GigabitEthernet0/1] ip address dhcp-alloc
[DeviceB-GigabitEthernet0/1] quit
(3) Device B获得Device A分配的IP后,在Device A查看授权ARP信息。
[DeviceA] display arp all
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP Address MAC Address SVLAN/VSI Interface/Link ID Aging Type
10.1.1.2 0012-3f86-e94c -- GE0/1 20 D
从以上信息可以获知Device A为Device B动态分配的IP地址为10.1.1.2。
此后,Device B与Device A通信时采用的IP地址、MAC地址等信息必须和授权ARP表项中的一致,否则将无法通信,保证了客户端的合法性。
· Device A是DHCP服务器,为不同网段中的客户端动态分配IP地址,地址池网段为10.10.1.0/24。
· Device B是DHCP中继,通过在接口GigabitEthernet0/2上启用授权ARP功能来保证客户端的合法性。
· Device C是DHCP客户端,通过DHCP中继从DHCP服务器获取IP地址。
图1-4 授权ARP功能典型配置组网图
(1) 配置Device A
# 配置接口的IP地址。
<DeviceA> system-view
[DeviceA] interface gigabitethernet 0/1
[DeviceA-GigabitEthernet0/1] ip address 10.1.1.1 24
[DeviceA-GigabitEthernet0/1] quit
# 启用DHCP服务。
[DeviceA] dhcp enable
[DeviceA] dhcp server ip-pool 1
[DeviceA-dhcp-pool-1] network 10.10.1.0 mask 255.255.255.0
[DeviceA-dhcp-pool-1] gateway-list 10.10.1.1
[DeviceA-dhcp-pool-1] quit
[DeviceA] ip route-static 10.10.1.0 24 10.1.1.2
(2) 配置Device B
# 启用DHCP服务。
<DeviceB> system-view
[DeviceB] dhcp enable
# 配置接口的IP地址。
[DeviceB] interface gigabitethernet 0/1
[DeviceB-GigabitEthernet0/1] ip address 10.1.1.2 24
[DeviceB-GigabitEthernet0/1] quit
[DeviceB] interface gigabitethernet 0/2
[DeviceB-GigabitEthernet0/2] ip address 10.10.1.1 24
# 配置GigabitEthernet0/2接口工作在DHCP中继模式。
[DeviceB-GigabitEthernet0/2] dhcp select relay
# 配置DHCP服务器的地址。
[DeviceB-GigabitEthernet0/2] dhcp relay server-address 10.1.1.1
# 开启接口授权ARP功能。
[DeviceB-GigabitEthernet0/2] arp authorized enable
[DeviceB-GigabitEthernet0/2] quit
# 开启DHCP中继用户地址表项记录功能。
[DeviceB] dhcp relay client-information record
(3) 配置Device C
<DeviceC> system-view
[DeviceC] ip route-static 10.1.1.0 24 10.10.1.1
[DeviceC] interface gigabitethernet 0/2
[DeviceC-GigabitEthernet0/2] ip address dhcp-alloc
[DeviceC-GigabitEthernet0/2] quit
(1) Device C获得Device A分配的IP后,在Device B查看授权ARP信息。
[DeviceB] display arp all
Type: S-Static D-Dynamic O-Openflow R-Rule M-Multiport I-Invalid
IP Address MAC Address SVLAN/VSI Interface/Link ID Aging Type
10.10.1.2 0012-3f86-e94c -- GE0/2 20 D
从以上信息可以获知Device A为Device C动态分配的IP地址为10.10.1.2。
此后,Device C与Device B通信时采用的IP地址、MAC地址等信息必须和授权ARP表项中的一致,否则将无法通信,保证了客户端的合法性。
ARP自动扫描功能一般与ARP固化功能配合使用:
· 启用ARP自动扫描功能后,设备会对局域网内的邻居自动进行扫描(向邻居发送ARP请求报文,获取邻居的MAC地址,从而建立动态ARP表项)。
· ARP固化功能用来将当前的ARP动态表项(包括ARP自动扫描生成的动态ARP表项)转换为静态ARP表项。通过对动态ARP表项的固化,可以有效防止攻击者修改ARP表项。
建议在网吧这种环境稳定的小型网络中使用这两个功能。
配置ARP自动扫描、固化功能时,需要注意:
· 对于已存在ARP表项的IP地址不进行扫描。
· 扫描操作可能比较耗时,用户可以通过<Ctrl_C>来终止扫描(在终止扫描时,对于已经收到的邻居应答,会建立该邻居的动态ARP表项)。
· 固化后的静态ARP表项与配置产生的静态ARP表项相同。
· 固化生成的静态ARP表项数量同样受到设备可以支持的静态ARP表项数目的限制,由于静态ARP表项数量的限制可能导致只有部分动态ARP表项被固化。
表1-10 配置ARP自动扫描、固化功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入接口视图 |
interface interface-type interface-number |
- |
启动ARP自动扫描功能 |
arp scan [ start-ip-address to end-ip-address ] |
- |
退回系统视图 |
quit |
- |
配置ARP固化功能 |
arp fixup |
- |
· 通过arp fixup命令将当前的动态ARP表项转换为静态ARP表项后,后续学习到的动态ARP表项可以通过再次执行arp fixup命令进行固化。
· 通过固化生成的静态ARP表项,可以通过命令行undo arp ip-address [ vpn-instance-name ]逐条删除,也可以通过命令行reset arp all或reset arp static全部删除。
在设备上不与网关相连的接口上配置此功能,可以防止伪造网关攻击。
在接口上配置此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同。如果相同,则认为此报文非法,将其丢弃;否则,认为此报文合法,继续进行后续处理。
配置ARP网关保护功能,需要注意:
· 每个接口最多支持配置8个被保护的网关IP地址。
· 不能在同一接口下同时配置命令arp filter source和arp filter binding。
· 本功能与ARP Detection、ARP Snooping和ARP快速应答功能配合使用时,先进行本功能检查,本功能检查通过后才会进行其他配合功能的处理。
表1-11 配置ARP网关保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口/二层聚合接口视图 |
interface interface-type interface-number |
- |
开启ARP网关保护功能,配置被保护的网关IP地址 |
arp filter source ip-address |
缺省情况下,ARP网关保护功能处于关闭状态 |
与Router B相连的Host B进行了仿造网关Router A(IP地址为10.1.1.1)的ARP攻击,导致与Router B相连的设备与网关Router A通信时错误发往了Host B。
要求:通过配置防止这种仿造网关攻击。
图1-5 配置ARP网关保护功能组网图
# 在Router B上配置ARP网关保护功能。
<RouterB> system-view
[RouterB] interface gigabitethernet 0/1
[RouterB-GigabitEthernet0/1] arp filter source 10.1.1.1
[RouterB-GigabitEthernet0/1] quit
[RouterB] interface gigabitethernet 0/2
[RouterB-GigabitEthernet0/2] arp filter source 10.1.1.1
完成上述配置后,对于Host B发送的伪造的源IP地址为网关IP地址的ARP报文将会被丢弃,不会再被转发。
本功能用来限制接口下允许通过的ARP报文,可以防止仿冒网关和仿冒用户的攻击。
在接口上配置此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址和源MAC地址是否和允许通过的IP地址和MAC地址相同:
· 如果相同,则认为此报文合法,继续进行后续处理;
· 如果不相同,则认为此报文非法,将其丢弃。
配置ARP过滤保护功能,需要注意:
· 每个接口最多支持配置8组允许通过的ARP报文的源IP地址和源MAC地址。
· 不能在同一接口下同时配置命令arp filter source和arp filter binding。
· 本功能与ARP Detection、ARP Snooping和ARP快速应答功能配合使用时,先进行本功能检查,本功能检查通过后才会进行其他配合功能的处理。
表1-12 配置ARP过滤保护功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入二层以太网接口/二层聚合接口视图 |
interface interface-type interface-number |
- |
开启ARP过滤保护功能,配置允许通过的ARP报文的源IP地址和源MAC地址 |
arp filter binding ip-address mac-address |
缺省情况下,ARP过滤保护功能处于关闭状态 |
· Host A的IP地址为10.1.1.2,MAC地址为000f-e349-1233。
· Host B的IP地址为10.1.1.3,MAC地址为000f-e349-1234。
· 限制Router B的GigabitEthernet0/1、GigabitEthernet0/2接口只允许指定用户接入,不允许其他用户接入。
图1-6 配置ARP过滤保护功能组网图
# 配置Router B的ARP过滤保护功能。
<RouterB> system-view
[RouterB] interface gigabitethernet 0/1
[RouterB-GigabitEthernet0/1] arp filter binding 10.1.1.2 000f-e349-1233
[RouterB-GigabitEthernet0/1] quit
[RouterB] interface gigabitethernet 0/2
[RouterB-GigabitEthernet0/2] arp filter binding 10.1.1.3 000f-e349-1234
完成上述配置后,接口GigabitEthernet0/1收到Host A发出的源IP地址为10.1.1.2、源MAC地址为000f-e349-1233的ARP报文将被允许通过,其他ARP报文将被丢弃;接口GigabitEthernet0/2收到Host B发出的源IP地址为10.1.1.3、源MAC地址为000f-e349-1234的ARP报文将被允许通过,其他ARP报文将被丢弃。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!