21-ARP攻击防御配置
本章节下载: 21-ARP攻击防御配置 (304.16 KB)
目 录
设备提供了多种ARP攻击防御技术对局域网中的ARP攻击和ARP病毒进行防范、检测和解决。常见的ARP攻击方式包括:
· 攻击者通过向设备发送大量目标IP地址不能解析的IP报文,使得设备试图反复地对目标IP地址进行解析,导致CPU负荷过重及网络流量过大。
· 攻击者向设备发送大量ARP报文,对设备的CPU形成冲击。
· 攻击者可以仿冒用户、仿冒网关发送伪造的ARP报文,使网关或主机的ARP表项不正确,从而对网络进行攻击。
如下所有配置均为可选,请根据实际情况选择配置。
· 防止泛洪攻击
· 防止仿冒用户、仿冒网关攻击
如果网络中有主机通过向设备发送大量目标IP地址不能解析的IP报文来攻击设备,则会造成下面的危害:
· 设备向目的网段发送大量ARP请求报文,加重目的网段的负载。
· 设备会试图反复地对目标IP地址进行解析,增加了CPU的负担。
为避免这种IP报文攻击所带来的危害,设备提供ARP源抑制功能。如果发送攻击报文的源是固定的,可以采用ARP源抑制功能。开启该功能后,如果网络中每5秒内从某IP地址向设备某接口发送目的IP地址不能解析的IP报文超过了设置的阈值,则设备将不再处理由此IP地址发出的IP报文直至该5秒结束,从而避免了恶意攻击所造成的危害。
(1) 进入系统视图。
system-view
(2) 开启ARP源抑制功能。
arp source-suppression enable
缺省情况下,ARP源抑制功能处于关闭状态。
(3) 配置ARP源抑制的阈值。
arp source-suppression limit limit-value
缺省情况下,ARP源抑制的阈值为10。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP源抑制的运行情况,通过查看显示信息验证配置的效果。
表1-1 ARP防止IP报文攻击显示和维护
操作 |
命令 |
显示ARP源抑制的配置信息 |
display arp source-suppression |
本特性根据ARP报文的源MAC地址对上送CPU的ARP报文进行统计,在5秒内,如果收到同一源MAC地址(源MAC地址固定)的ARP报文超过一定的阈值,则认为存在攻击,系统会将此MAC地址添加到攻击检测表项中。当开启了ARP日志信息功能(配置arp check log enable命令),且在该攻击检测表项老化之前,如果设置的检查模式为过滤模式,则会打印日志信息并且将该源MAC地址发送的ARP报文过滤掉;如果设置的检查模式为监控模式,则只打印日志信息,不会将该源MAC地址发送的ARP报文过滤掉。
对于已添加到源MAC地址固定的ARP攻击检测表项中的MAC地址,在等待设置的老化时间后,会重新恢复成普通MAC地址。
关于ARP日志信息功能的详细描述,请参见“三层技术-IP业务配置指导”中的“ARP”。
切换源MAC地址固定的ARP攻击检查模式时,如果从监控模式切换到过滤模式,过滤模式马上生效;如果从过滤模式切换到监控模式,已生成的攻击检测表项,到表项老化前还会继续按照过滤模式处理。
对于网关或一些重要的服务器,可能会发送大量ARP报文,为了使这些ARP报文不被过滤掉,可以将这类设备的MAC地址配置成保护MAC地址,这样,即使该设备存在攻击也不会被检测或过滤。
(1) 进入系统视图。
system-view
(2) 开启源MAC地址固定的ARP攻击检测功能,并选择检查模式。
arp source-mac { filter | monitor }
缺省情况下,源MAC地址固定的ARP攻击检测功能处于关闭状态。
(3) 配置源MAC地址固定的ARP报文攻击检测的阈值。
arp source-mac threshold threshold-value
缺省情况下,源MAC地址固定的ARP报文攻击检测阈值为30。
(4) 配置源MAC地址固定的ARP攻击检测表项的老化时间。
arp source-mac aging-time time
缺省情况下,源MAC地址固定的ARP攻击检测表项的老化时间为300秒,即5分钟。
(5) (可选)配置保护MAC地址。
arp source-mac exclude-mac mac-address&<1-n>
缺省情况下,未配置任何保护MAC地址。
在完成上述配置后,在任意视图下执行display命令可以显示配置后源MAC地址固定的ARP攻击检测的运行情况,通过查看显示信息验证配置的效果。
表1-2 源MAC地址固定的ARP攻击检测显示和维护
操作 |
命令 |
显示检测到的源MAC地址固定的ARP攻击检测表项 |
(独立运行模式) display arp source-mac { interface interface-type interface-number | slot slot-number [ cpu cpu-number ] } (IRF模式) display arp source-mac { chassis chassis-number slot slot-number [ cpu cpu-number ] | interface interface-type interface-number } |
ARP报文源MAC地址一致性检查功能主要应用于网关设备上,防御以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同的ARP攻击。
配置本特性后,网关设备在进行ARP学习前将对ARP报文进行检查。如果以太网数据帧首部中的源MAC地址和ARP报文中的源MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。
(1) 进入系统视图。
system-view
(2) 开启ARP报文源MAC地址一致性检查功能。
arp valid-check enable
缺省情况下,ARP报文源MAC地址一致性检查功能处于关闭状态。
ARP的主动确认功能主要应用于网关设备上,防止攻击者仿冒用户欺骗网关设备。ARP主动确认功能分为非严格模式和严格模式,这两种模式的实现如下:
· 配置非严格模式的ARP主动确认功能时,处理方式如下:
¡ 收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但先不建立对应的表项。同时,设备立即向ARP请求报文的发送端IP地址发送ARP请求,在一个探测周期内如果收到发送端IP地址对应的设备回复的ARP应答报文,则建立ARP表项。
¡ 收到ARP应答报文时,需要确认本设备是否在当前探测时间周期内对该报文中的源IP地址发起过ARP请求:
- 若发起过请求,则设备建立该ARP表项;
- 若未发起过请求,则不建立ARP表项。同时,设备立即向ARP应答报文的发送端IP地址发送ARP请求,在一个探测周期内如果收到发送端IP地址对应的设备回复的ARP应答报文,则建立ARP表项。
· 配置严格模式的ARP主动确认功能时,处理方式如下:
¡ 收到目标IP地址为自己的ARP请求报文时,设备会发送ARP应答报文,但不建立ARP表项;
¡ 收到ARP应答报文时,需要确认本设备是否在当前探测时间周期内对该报文中的源IP地址发起过ARP请求:若发起过请求,则设备建立该ARP表项;若未发起过请求,则设备丢弃该报文,不建立表项。
(1) 进入系统视图。
system-view
(2) 开启ARP主动确认功能。
arp active-ack enable
缺省情况下,ARP主动确认功能处于关闭状态。
所谓授权ARP(Authorized ARP),就是动态学习ARP的过程中,只有和DHCP服务器生成的租约或DHCP中继生成的安全表项一致的ARP报文才能够被学习。关于DHCP服务器和DHCP中继的介绍,请参见“三层技术-IP业务配置指导”中的“DHCP服务器”和“DHCP中继”。
配置接口的授权ARP功能后,可以防止用户仿冒其他用户的IP地址或MAC地址对网络进行攻击,保证只有合法的用户才能使用网络资源,增加了网络的安全性。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括三层以太网接口、三层以太网子接口、三层聚合接口、三层聚合子接口和VLAN接口视图。
(3) 开启授权ARP功能。
arp authorized enable
缺省情况下,接口下的授权ARP功能处于关闭状态。
ARP Detection功能主要应用于接入设备上,通过检测并丢弃非法用户的ARP报文来防止仿冒用户、仿冒网关的攻击,具体包括以下几个功能:
· 用户合法性检查;
· ARP报文有效性检查;
· ARP报文强制转发;
· ARP Detection日志功能。
如果既配置了报文有效性检查功能,又配置了用户合法性检查功能,那么先进行报文有效性检查,然后进行用户合法性检查。
ARP Detection功能与ARP Snooping功能不能同时配置,否则会导致ARP Snooping表项无法生成。
对于ARP信任接口,不进行用户合法性检查;对于ARP非信任接口,需要进行用户合法性检查,以防止仿冒用户的攻击。
用户合法性检查是根据ARP报文中源IP地址和源MAC地址检查用户是否是所属VLAN所在接口上的合法用户。
设备收到ARP报文后,首先进行基于用户合法性规则检查,如果找到与报文匹配的规则,则按照该规则对报文进行处理;如果未找到与报文匹配的规则,则认为是非法报文,直接丢弃。
配置用户合法性检查功能时,必须配置用户合法性规则,否则所有从ARP非信任接口收到的ARP报文都将被丢弃。
(1) 进入系统视图。
system-view
(2) (可选)配置用户合法性检查规则。
arp detection rule rule-id { deny | permit } ip { ip-address [ mask ] | any } mac { mac-address [ mask ] | any } [ vlan vlan-id ]
缺省情况下,未配置用户合法性检查规则。
(3) 进入VLAN视图。
vlan vlan-id
(4) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行用户合法性检查。
(5) (可选)将不需要进行用户合法性检查的接口配置为ARP信任接口。
a. 退回系统视图。
quit
b. 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口视图。
c. 将不需要进行用户合法性检查的接口配置为ARP信任接口。
arp detection trust
缺省情况下,接口为ARP非信任接口。
对于ARP信任接口,不进行报文有效性检查;对于ARP非信任接口,需要根据配置对MAC地址和IP地址不合法的报文进行过滤。可以选择配置源MAC地址、目的MAC地址或IP地址检查模式。
· 源MAC地址的检查模式:会检查ARP报文中的源MAC地址和以太网报文头中的源MAC地址是否一致,一致则认为有效,否则丢弃报文;
· 目的MAC地址的检查模式(只针对ARP应答报文):会检查ARP应答报文中的目的MAC地址是否为全0或者全1,是否和以太网报文头中的目的MAC地址一致。全0、全1、不一致的报文都是无效的,需要被丢弃;
· IP地址检查模式:会检查ARP报文中的源IP或目的IP地址,如全1、或者组播IP地址都是不合法的,需要被丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。
配置本功能前需保证已经配置了“1.8.2 用户合法性检查”。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP Detection功能。
arp detection enable
缺省情况下,ARP Detection功能处于关闭状态,即不进行报文有效性检查。
(4) 开启ARP报文有效性检查功能。
a. 退回系统视图。
quit
b. 开启ARP报文有效性检查功能。
arp detection validate { dst-mac | ip | src-mac } *
缺省情况下,ARP报文有效性检查功能处于关闭状态。
(5) (可选)将不需要进行ARP报文有效性检查的接口配置为ARP信任接口。
a. 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
b. 将不需要进行ARP报文有效性检查的接口配置为ARP信任接口。
arp detection trust
缺省情况下,接口为ARP非信任接口。
对于从ARP信任接口接收到的ARP报文不受此功能影响,按照正常流程进行转发;对于从ARP非信任接口接收到的并且已经通过用户合法性检查的ARP报文的处理过程如下:
· 对于ARP请求报文,通过信任接口进行转发;
· 对于ARP应答报文,首先按照报文中的以太网目的MAC地址进行转发,若在MAC地址表中没有查到目的MAC地址对应的表项,则将此ARP应答报文通过信任接口进行转发。
ARP报文强制转发功能不支持目的MAC地址为多端口MAC的情况。
配置本功能前需保证已经配置了“1.8.2 用户合法性检查”。
(1) 进入系统视图。
system-view
(2) 进入VLAN视图。
vlan vlan-id
(3) 开启ARP报文强制转发功能。
arp restricted-forwarding enable
缺省情况下,ARP报文强制转发功能处于关闭状态。
在完成上述配置后,在任意视图下执行display命令可以显示配置后ARP Detection的运行情况,通过查看显示信息验证配置的效果。
在用户视图下,用户可以执行reset命令清除ARP Detection的统计信息。
表1-3 ARP Detection显示和维护
操作 |
命令 |
显示开启了ARP Detection功能的VLAN |
display arp detection |
显示ARP Detection丢弃报文的统计信息 |
display arp detection statistics [ interface interface-type interface-number ] |
清除ARP DetectionARP Detection的报文丢弃统计信息 |
reset arp detection statistics [ interface interface-type interface-number ] |
建议在网吧这种环境稳定的小型网络中使用ARP自动扫描、固化功能。ARP自动扫描功能一般与ARP固化功能配合使用:
· 配置ARP自动扫描功能后,设备会对局域网内的邻居自动进行扫描(向邻居发送ARP请求报文,获取邻居的MAC地址,从而建立动态ARP表项)。
· ARP固化用来将当前的ARP动态表项(包括ARP自动扫描生成的动态ARP表项)转换为静态ARP表项。通过对动态ARP表项的固化,可以有效防止攻击者修改ARP表项。
固化后的静态ARP表项与配置产生的静态ARP表项相同。
· 对于已存在ARP表项的IP地址不进行扫描。
· 固化生成的静态ARP表项数量同样受到设备可以支持的静态ARP表项数目的限制,由于静态ARP表项数量的限制可能导致只有部分动态ARP表项被固化。
· 通过arp fixup命令将当前的动态ARP表项转换为静态ARP表项后,后续学习到的动态ARP表项可以通过再次执行arp fixup命令进行固化。
· 通过固化生成的静态ARP表项,可以通过命令行undo arp ip-address [ vpn-instance-name ]逐条删除,也可以通过命令行reset arp all或reset arp static全部删除。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
(3) 开启ARP自动扫描功能。
arp scan [ start-ip-address to end-ip-address ]
扫描操作可能比较耗时,且会占用较大的设备资源和网络负载。可以通过<Ctrl_C>来终止扫描(在终止扫描时,对于已经收到的邻居应答,会建立该邻居的动态ARP表项)。
(4) 退回系统视图。
quit
(5) 将设备上的动态ARP表项转化成静态ARP表项。
arp fixup
在设备上不与网关相连的接口上配置此功能,可以防止伪造网关攻击。
在接口上开启此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址是否和配置的被保护网关的IP地址相同。如果相同,则认为此报文非法,将其丢弃;否则,认为此报文合法,继续进行后续处理。
· 每个接口最多支持配置8个被保护的网关IP地址。
· 不能在同一接口下同时配置命令arp filter source和arp filter binding。
· 本功能与ARP Detection和ARP Snooping功能配合使用时,先进行本功能检查,本功能检查通过后才会进行其他配合功能的处理。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
(3) 开启ARP网关保护功能,配置被保护的网关IP地址。
arp filter source ip-address
缺省情况下,ARP网关保护功能处于关闭状态。
本功能用来限制接口下允许通过的ARP报文,可以防止仿冒网关和仿冒用户的攻击。
在接口上配置此功能后,当接口收到ARP报文时,将检查ARP报文的源IP地址和源MAC地址是否和允许通过的IP地址和MAC地址相同:
· 如果相同,则认为此报文合法,继续进行后续处理;
· 如果不相同,则认为此报文非法,将其丢弃。
· 每个接口最多支持配置8组允许通过的ARP报文的源IP地址和源MAC地址。
· 不能在同一接口下同时配置命令arp filter source和arp filter binding。
· 本功能与ARP Detection和ARP Snooping配合使用时,先进行本功能检查,本功能检查通过后才会进行其他配合功能的处理。
(1) 进入系统视图。
system-view
(2) 进入接口视图。
interface interface-type interface-number
支持的接口类型包括二层以太网接口和二层聚合接口。
(3) 开启ARP过滤保护功能,配置允许通过的ARP报文的源IP地址和源MAC地址。
arp filter binding ip-address mac-address
缺省情况下,ARP过滤保护功能处于关闭状态。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!