1、ARP报文限速
上一章我们说过ARP报文也是需要上送CPU进行处理的协议报文,如果设备对收到的大量ARP报文全部进行处理,可能导致CPU负荷过重而无法处理其他业务。因此,在处理之前需要对ARP报文进行限速,以保护CPU资源。
1.根据源MAC地址或源IP地址进行ARP限速
当设备检测到某一个用户在短时间内发送大量的ARP报文,可针对该用户配置基于源MAC地址或源IP地址的ARP报文限速。在1s时间内,如果该用户的ARP报文数目超过设定阈值(全局配置,适用于所有接口),则丢弃超出阈值部分的ARP报文。
- 根据源MAC地址进行ARP报文限速时,如果指定MAC地址,则针对指定源MAC地址的ARP报文,根据限速值进行限速;如果不指定MAC地址,则针对每一个源MAC地址的ARP报文,根据限速值进行限速。(仅S5720EI、S5720HI、S6720EI、S6720HI和S6720S-EI子系列,以及框式系列交换机支持该功能
- 根据源IP地址进行ARP报文限速时,如果指定IP地址,则针对指定源IP地址的ARP报文,根据限速值进行限速;如果不指定IP地址,则针对每一个源IP地址的ARP报文,根据限速值进行限速。
根据任意源MAC进行限速
SW1
system
sysname SW1
arp speed-limit source-mac maximum 100 //对任意源MAC限速
根据指定源MAC进行限速
arp speed-limit source-mac 0003-0f8c-1011 maximum 100 //对指定源MAC进行限速
根据任意源IP进行限速
arp speed-limit source-ip maximum 100 //对任意源IP进行限速
根据指定源IP进行限速
arp speed-limit source-ip 1.1.1.1 maximum 100
2.针对全局、VLAN和接口的ARP报文限速
设备支持在全局、VLAN和接口下配置ARP报文的限速值和限速时间,接口下的配置优先级最高,其次是VLAN下的配置,最后是全局的配置。
配置基于全局的ARP报文限速
arp anti-attack rate-limit enable
配置基于VLAN的ARP报文限速
vlan 1
arp anti-attack rate-limit enable
配置基于接口的ARP报文限速
interface g0/0/1
arp anti-attack rate-limit enable
我们也可以配置ARP报文的限速时间以及指定持续丢弃超过ARP报文限速值的接口下收到的所有ARP报文的时长。
arp anti-attack rate-limit 200 block timer 200
我们还可以配置告警阈值,当丢弃的ARP报文数超过告警阈值时,设备将产生告警信息。
arp anti-attack rate-limit alarm enable
arp anti-attack rate-limit alarm threshold 200
另外,如果设备的某个接口在ARP报文限速时间内接收到的ARP报文数目超过了设定阈值(ARP报文限速值),则丢弃超出阈值部分的ARP报文,并在接下来的一段时间内(即阻塞ARP报文时间段)持续丢弃该接口下收到的所有ARP报文。
- 针对全局的ARP报文限速;在设备出现ARP攻击时,限制全局处理的ARP报文数量。
- 针对VLAN的ARP报文限速;在某个VLAN内的所有接口出现ARP攻击时,限制处理收到的该VLAN内的ARP报文数量,配置本功能可以保证不影响其他VLAN内所有接口的ARP学习。
- 针对接口的ARP报文限速;在某个接口(二层或三层物理接口)出现ARP攻击时,限制处理该接口收到的ARP报文数量,但不影响其他接口的ARP学习。
2、ARP Miss消息限速
如果网络中有用户向设备发送大量目标IP地址不能解析的IP报文(即路由表中存在该IP报文的目的IP地址所对应的路由表项,但设备上却没有该路由表项下一跳对应的ARP表项),这样就没办法对报文进行帧封装了,于是会导致设备触发大量的ARP Miss消息来解析下一跳IP地址对应的MAC地址。
这种触发ARP Miss消息的IP报文(即ARP Miss报文)会被上送到CPU进行处理,设备会根据ARP Miss消息生成和下发大量临时ARP表项(这类表项中的MAC地址的显示的是incomplete)并向目的网络发送大量的ARP请求报文,这样就增加了设备CPU的负担,同时严重消耗目的网络的带宽资源。
为了避免这种IP报文攻击所带来的危害,设备提供了如下几类针对ARP Miss消息的限速功能(其实与上节介绍的针对ARP报文的限速功能即配置方法都差不多)。
1.基于源IP地址进行ARP Miss消息限速
当设备检测到某一源IP地址的IP报文在1s内触发的ARP Miss消息数量超过了ARP Miss消息限速值,就认为此源IP地址存在攻击。此时如果设备对ARP Miss报文的处理方式是block(阻止方式),设备会丢弃超出限速值部分的ARP Miss报文,并下发一条ACL来丢弃该源IP地址的后续所有ARP Miss报文;如果是none-block方式,设备只会通过软件限速的方式丢弃超出限速值部分的ARP Miss报文。
根据源IP地址进行ARP Miss消息限速,如果指定了IP地址,则针对指定源IP地址的ARP Miss消息,根据限速值进行限速;如果不指定IP地址,则针对任意源IP地址的ARP Miss消息,根据限速值进行限速。仅S5720EI、S5720HI、S5720S-SI、S520SI、S5730-EI、S5730SI、S6720EI、S6720HI、S6720LI、S6720-EI、S6720S-LI、S6720S-SI和S6720S,以及框式系列交换机支持该功能。
根据任意源IP进行ARP Miss消息限速
arp-miss speed-limit source-ip maximum 100
根据指定源IP进行ARP Miss消息限速并设置处理方式
arp-miss speed-limit source-ip 1.1.1.1 maximum 100 block timer 200
2.针对全局、VLAN和接口的ARP Miss消息限速
设备支持在全局、VLAN和接口下配置ARP Miss消息限速。这3个位置的配置的有效顺序为接口优先,VLAN其次,最后为全局。(与ARP报文限速一致)
配置基于全局的ARP Miss消息限速功能
arp-miss anti-attack rate-limit enable
配置基于VLAN的ARP Miss消息限速功能
vlan 1
arp-miss anti-attack rate-limit enable
配置基于接口的ARP Miss消息限速功能
interface g0/0/1
arp-miss anti-attack rate-limit enable
同样我们也可以配置告警信息
arp-miss anti-attack rate-limit alarm enable
arp-miss anti-attack rate-limit alarm threshold 200
- 针对全局的ARP Miss消息限速:在设备出现目标IP地址不能解析的IP报文攻击时,限制全局处理的ARP Miss消息数量。
- 针对VLAN的ARP Miss消息限速:在某个VLAN内的所有接口出现目标IP地址不能解析的IP报文攻击时,限制处理该VLAN内报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他VLAN内所有接口的IP报文转发。
- 针对接口的ARP Miss消息限速:在某个接口(同样可以是二层或三层物理接口)出现目标IP地址不能解析的IP报文攻击时,限制处理该接口收到的报文触发的ARP Miss消息数量,配置本功能可以保证不影响其他接口的IP报文转发。
3.配置临时ARP表项的老化时间
当IP报文触发ARP Miss消息时,设备会根据ARP Miss消息生成临时ARP表项,并且向目的网段发送ARP请求报文。临时ARP表项有老化时间,而且可以基于三层接口(可以时VLANIF接口或三层物理接口)手动配置。
1.在临时ARP表项老化时间范围内:
- 设备收到ARP应答报文前,匹配临时ARP表项的IP报文将被丢弃并且不会触发ARP Miss消息;
- 设备收到ARP应答报文后,则生成正确的ARP表项来替换临时ARP表项。
2.当老化时间超时过后,设备会清楚临死ARP表项。此时如果设备转发IP报文匹配不到对应的ARP表项,则会重新触发ARP Miss消息并生成临时ARP表项,如此循环重复。
当判断设备收到攻击时,可以增大临时ARP表项的老化时间,减小设备ARP Miss消息的触发频率,从而减小攻击对设备的影响。
配置临时ARP表项的老化时间
int vlan 1
arp-fake expire-time 100
3、ARP表项严格学习
如果大量用户在同一时间段内向设备发送大量的ARP报文,或者攻击者伪造正常用户的ARP报文发送给设备,则会造成如下伤害。
- 设备因处理大量ARP报文而导致CPU负荷过重,同时设备学习大量的ARP报文可能导致设备ARP表项资源被无效的ARP表项耗尽,造成合法用户的ARP报文不能继续生成ARP表项,导致用户无法正常通信。
- 伪造的ARP报文将错误地更新设备ARP表项,导致合法用户无法正常通信。
为避免上述危害,可以在网关设备上配置ARP表项严格学习功能。配置该功能后,只有本设备主动发送的ARP请求报文的应答报文才能触发本设备学习ARP,其他设备主动向本设并发送的ARP报文不能触发本设备学习。这样,可以拒绝大部分的ARP报文攻击。
ARP表项严格学习功能可以在全局和三层接口(三层VLANIF接口或三层物理接口)视图下进行配置。如果全局使能该功能,则设备的所有三层接口均进行ARP表项严格学习;如果接口下使能该功能,则只有该三层接口进行ARP表项严格学习,接口下配置的优先级高于侵权剧配置的优先级。
全局下配置ARP表项严格学习
arp learning strict
接口下配置ARP表项严格学习
int vlan 1
arp learning strict force-enable
4、ARP表项限制
ARP表项限制功能应用在网关设备上,可以限制设备的某个接口(二层或三层物理接口、三层以太网子接口和VLANIF接口都可以)学习动态ARP表项的数目。
接口下配置ARP表项限制
interface g0/0/1
arp-limit vlan 1 maximum 100
VLANIF接口下配置ARP表项限制
interface vlanif 1
arp-limit maximum 100
默认情况下,接口可以学习的动态ARP表项数目规格与全局的ARP表项规格保持一致。当部署完ARP表项限制功能后,如果指定接口下的动态ARP表项达到了允许学习的最大数目,将不再允许该接口继续学习动态ARP表项,以保证当严格接口所接入的某一用户主机发起ARP攻击时,不会导致整个设备的ARP表资源都被耗尽。
5、禁止接口学习ARP表项
当某接口(仅可是VLANIF接口)下学习了大量动态ARP表项时,出于安全考虑,可以通过配置禁止该接口的动态ARP表项学习功能,以防止该接口下所接入的用户主机发起ARP攻击使整个设备的ARP表资源都被耗尽。
禁止接口学习ARP表项功能和ARP表项严格学习功能配置起来使用,可以使设备对接口下动态ARP的学习进行更加细致的控制。
VLANIF接口下配置禁止ARP学习表项
interface vlanif 1
arp learning disable
6、ARP表项固化
为了防止网关欺骗攻击,可在网关上配置ARP表项固化功能,这样网关设备在第一次学习到某IP地址的ARP表项以后,不再允许用户更新此ARP表项,或只允许更新此ARP表项的部分信息,或者通过发送单播ARP请求报文的方式对更新ARP条目的报文进行合法性确认。
华为设备提供了以下3种ARP表项固化模式,且是互斥关系。
- fixed-mac方式:这种固化模式是以报文中源MAC地址与ARP表中现有对应IP地址表项中的MAC地址是否匹配为审查的关机依据。当这两个MAC地址不匹配时,则直接丢弃该ARP报文;如果这两个MAC地址是匹配的,但是报文中的接口或VLAN信息与ARP表中对应表项不匹配时,则可以更新对应ARP表项中的接口和VLAN信息。这种模式适用于静态配置IP地址,但网络存在冗余链路(这样可以改变出接口和VLAN)的情况。当链路切换时,ARP表项中的接口信息可以快速改变。
- fixed-all方式:这种固化方式是仅当ARP报文对应的MAC地址、接口、VLAN信息和ARP表中对应表项的信息完全匹配时,设备才可以更新ARP表项的其他内容。这种模式匹配最严格,适用于静态配置IP地址,网络没有冗余链路(这样不可以改变出接口和VLAN),且同一IP地址用户不会从不同接口接入的情况。
- send-ack方式:这种模式是当设备收到严格涉及MAC地址、VLAN、接口修改的ARP报文时,不会立即更新ARP表项,而是向待更新的ARP表项现有MAC地址对应的用户发送一个单播的ARP请求报文,再根据用户的确认结果决定是否更新ARP表项中的MAC地址、VLAN和接口信息。此方式适用于动态分配IP地址,有冗余链路的网络。
可以在全局和VLANIF接口下配置ARP表项固化功能。全局配置该功能后,缺省设备上所有VLNAIF接口的ARP表项固化功能均已使能。当全局和VLANIF接口下同时配置了该功能时,VLNAIF接口下的配置优先生效。
全局下配置ARP表项固化
arp anti-attack entry-check fixed-mac enable
接口下配置ARP表项固化
int vlan 1
arp anti-attack entry-check fixed-mac enable
7、动态ARP检测(DAI)
中间人攻击(Man-int-the-middle attack)是常见的ARP欺骗攻击防止之一。所谓"中间人攻击"是指攻击者与通信的两端分别创建独立的联系,并交换其所收到的数据,使通信的两端认为与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通信双方的通话并插入新的内容。
PC2与PC3在互相访问时都会先将报文转发给PC1,在由PC1转发给对方,这样数据在交互过程中都会先经过PC1。
为了防御中间人攻击,避免合法用户的数据被中间人窃取,可以使能DAI(Dynamic ARP Inspection,动态ARP检测)功能,仅适用于启用了DHCP Snooping的场景。这样,设备会将ARP报文中的源IP、源MAC、接口、VLNA信息和DHCP Snooping中的绑定表(或者手动添加静态绑定表)信息进行比较,如果匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是攻击,丢弃该ARP报文。
注意:设备使能DHCP Snooping功能后,当DHCP用户上线时设备会自动生成DHCP Snooping绑定表。对于静态配置IP地址的用户,设备不会生成DHCP Snooping绑定表,所以需要手动添加静态绑定表。可用user-bind static命令配置IP地址、MAC地址、接口和内/外层VLNA的静态用户绑定表项。
如果希望仅匹配绑定表中某一项或某两项内容的特俗ARP报文也能够通过,则可用配置对ARP报文进行绑定表匹配检查时只检查某一项或某两项内容。如果希望设备在丢弃不匹配绑定表的ARP报文数量较多时能够以告警的方式提醒网络管理员,则可以使能动态ARP检查丢弃报文告警功能。这样,当丢弃的ARP报文数超过告警阈值时,设备将产生告警信息。
可在接口(仅限二层物理接口,Eth-Trunk接口和端口组)视图或VLAN视图下配置动态ARP检查功能,在接口视图下使能时,对该接口收到的所有ARP报文进行绑定表匹配检查:在VLAN视图下使能时,对加入该VLAN的接口收到的属于该VLAN的ARP报文进行绑定表匹配检查。
接口或VLAN上使能动态ARP检查功能
interface g0/0/1
arp anti-attack check user-bind enable
vlan 1
arp anti-attack check user-bind enable
接口或VLAN上使能动态ARP部分检查功能
interface g0/0/1
arp anti-attack check user-bind check-item ip-address
vlan 1
arp anti-attack check user-bind check-item ip-address
默认情况下对ARP报文的IP地址、MAC地址和接口信息都进行检查
接口使能动态ARP告警功能
interface g0/0/1
arp anti-attack check user-bind alarm enable
arp anti-attack check user-bind alarm threshold 200
8、ARP防网关冲突
如果攻击者仿冒网关,在局域网内部发送源IP地址是网关IP地址的ARP报文,就会导致局域网内其他用户主机的ARP表记录错误的网关地址映射关系。这样,其他用户主机就会把发往网关的流量均发送给了攻击者,攻击者可轻易地窃取听到他们发送的数据内容,并且最终会造成这些用户主机无法访问网络。这就是我们最常见的一种ARP攻击类型--网关欺骗ARP攻击
我们将SW1的VLAN1的IP设置为192.168.1.254,然后让PC1去访问192.168.1.254,PC1就会形成关于这个地址的ARP表项
此时我们再将AR1的接口配置为192.168.1.254/24就会发送一份免费ARP,则会刷新PC1的ARP表项
攻击者B将伪造网关的ARP报文发送给用户A,使用户A误以为攻击者即为网关。用户A的ARP表中会记录错误的网关地址映射关系,使得用户A跟网关的正常数据通信中断。
为了防范攻击者仿冒网关,可以在网关设备上使能ARP防网关冲突功能。仅S5720EI、S5720HI、S5720S-SI、S5720SI、S5730S-EI、S5730SI、S6720EI、S6720HI、S6720LI、S6720S-EI、S6720S-LI、S6720S-SI和S6720SI,以及框式系列交换机支持该功能。
当设备收到的ARP报文存在下列情况之一,设备就认为该ARP报文是与网关地址冲突的ARP报文,设备将生成ARP防攻击表项,并在后续一段时间内丢弃该接口收到的同VLAN以及同源MAC地址的ARP报文,这样可以防止与网关地址冲突的ARP报文在VLAN内广播。此时,还可以在设备上通过下面介绍的使能发送免费ARP报文功能,通过广播发送正确的免费ARP报文到所有用户,迅速将已经被攻击的用户记录的错误网关地址映射关系修正正确。
在全局模式下配置ARP防网关冲突
arp anti-attack gateway-duplicate enable
9、配置发送免费ARP报文
如果有攻击者向其他用户发送仿冒网关的ARP报文,会导致其他用户的ARP表中记录错误的网关地址映射关系,从而造成其他用户的正常数据不能被网关接收。
此时可以在网关设备上配置发送免费ARP报文的功能,用来定期更新合法用户的ARP表项,使得合法用户ARP表项中记录正确的网关地址映射关系。
可在网关设备上全局或VLANIF接口下配置发送免费ARP报文功能。全局配置该功能后,则缺省设备上所有接口的发送ARP免费报文功能均已使能。当全局和VLANIF接口下同时配置了该功能时,VLANIF接口下的配置优先生效。
全局或接口下使能发送免费ARP报文功能
arp gratuitous-arp send enable
interface vlanif 1
arp gratuitous-arp send enable
全局或接口下配置免费ARP报文发送时间间隔
arp gratuitous-arp send interval 200
interface vlanif 1
arp gratuitous-arp send interval 200
上面我们说了一般情况下我们都会使用ARP防网关冲突和发送免费ARP报文两个功能来实现安全防护,这是因为ARP防网关冲突在第一次网关欺骗时不能起到防护的效果。我们可以通过以下实验来进一步了解。
这里我们先让PC1去访问网关形成ARP表项
形成ARP表项之后我们在路由器的接口上配置一个与网关同一个IP的地址并发出免费ARP
我们能看到PC1的ARP表项更新了,网关的MAC变为了路由器的MAC,这就是网关欺骗攻击
现在我们在交换机上配置ARP防网关冲突看看能不能防止这种攻击,我们先把路由器上的IPundo掉,再让PC1重新去ping一次网关学习到正确的ARP表项。
随后我们去交换机上配置网关冲突的相关指令,随后去路由器上配置IP地址发出免费ARP报文
可以看到PC1的ARP表项还是刷新了,我们再去看看交换机上的防网关冲突表项有没有记录这条IP地址
我们发现交换机是有记录的那为什么PC1的ARP表项还是刷新了呢?
这是因为路由器的免费ARP在第一次到达交换机时还没有形成相应的表项,所以免费ARP可以被转发到PC1,所以如果只配置防网关冲突的话,只能够防止第二次的攻击,第一次的攻击防止不了。此时就需要结合我们的发送免费ARP报文来实现安全防护。
10、ARP网关保护功能
当网络中存在攻击者Attacker仿冒网关或用户误配主机IP地址为网关地址时,其发送的ARP报文会使得网络中其他用户误以为Attacker是网关设备,造成正常用户跟网关的数据通信中断。在设备与网关相连的接口上配置ARP网关保护功能,可以防止伪造网关攻击,仅盒式交换机系列交换机支持。当来自网关的ARP报文到达设备时:
- 开启了对网关地址保护功能的接口,正常接收转发该ARP报文;
- 未开启对网关地址保护功能的接口,丢弃该ARP报文;
- 开启了对网关IP地址:192.168.1.254保护功能的接口,正常接收转发该ARP报文;
- 未开启对网关IP地址:192.168.1.254保护功能的接口,丢弃该ARP报文;
ARP网关保护功能是在二层物理接口下配置
interface g0/0/1
arp trust source 192.168.1.254
11、ARP报文内MAC地址一致性检查
ARP报文内MAC地址一致性检查功能主要应用于网关设备上,可以防御以太网数据帧头部中的源/目的MAC地址和ARP报文数据区中的源/目的MAC地址不同的ARP攻击。配置该功能后,网关设备在进行ARP表项学习前将对ARP报文进行检查。如果以太网帧头部中的源/目的MAC地址和ARP报文数据区中的源/目的MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。
ARP报文内MAC地址一致性检查配置
interface g0/0/1
arp validate source-mac destination-mac
12、ARP报文合法性检查
为了防止非法ARP报文的攻击,可以在接入设备或网关设备上配置ARP报文合法性检查功能,用来对MAC地址和IP地址不合法的ARP报文进行过滤。设备提供以下3中可以任意组合的检查项配置。
- IP地址检查:设备会检查ARP报文中的源IP和目的IP地址,全0、全1或者组播IP地址都是不合法的,需要丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。
- 源MAC地址检查:设备会检查ARP报文中的源MAC地址和以太网数据帧头部中的源MAC地址是否一致,一致则认为合法,否则丢弃该报文。
- 目的MAC地址检查:设备会检查ARP应答报文中的目的MAC地址是否和以太网数据帧头部中的目的MAC地址一致,一致则认为合法,否则丢弃报文。
ARP报文合法性检查配置
arp anti-attack packet-check sender-mac
全局使能ARP报文合法性检查功能(作用于所有接口接收的ARP报文)。
13、DHCP触发ARP学习
在DHCP用户场景下,当DHCP用户数目很多时,设备进行大规模ARP表项的学习和老化会对设备性能和网络环境形成冲击。为了避免此问题,可以在网关设备上使能DHCP触发ARP学习功能。当DHCP服务器给用户分配了IP地址,网关设备会根据VLANIF接口上收到的DHCP ACK报文直接生成该用户的ARP表项。
注意:DHCP触发ARP学习功能生效的前提是已在二层交换设备全局和对应二层接口上通过dhcp snooping enable命令使能了DHCP Snooping功能。
DHCP触发ARP学习的配置方法仅在网关设备对应的VLANIF接口视图下执行。缺省情况下,没有使能DHCP触发ARP学习功能。
DHCP触发ARP学习配置
arp learning dhcp-trigger
以上就是本章的全部内容了,觉得博主做的还可以的可以给博主点一个关注,我们下一章来介绍ARP安全实验经典使用场景实验配置,部分内容可能与教材雷同,有意可联系博主删除,谢谢你的流量观看!