ARP安全配置与管理——2

配置防ARP欺骗攻击

ARP表项攻击、网关攻击、中间人攻击是ARP欺骗攻击的主要应用场景。下表列出了针对不同ARP欺骗攻击类型所提供的不同解决方案,以增强网络抗击ARP欺骗攻击的能力。在这些配置防ARP欺骗攻击安全特性中,各项配置均是并列关系,无严格配置顺序,也并不是要求配置所有的ARP安全特性方案,用户可根据需要选择配置一种或多种方案。


一、配置ARP表项固化

为了防止ARP地址欺骗攻击,可以配置ARP表项固化功能,使欺骗类ARP报文不能修改原来ARP表项。以下3种ARP表项固化模式适用于不同的应用场景,且是互斥关系:

(1)fixed-mac方式:这种固化模式是以报文中源MAC地址与ARP表中现有对应IP地址的表项中的MAC地址是否匹配为审查的关键依据。当这两个MAC地址不匹配时,则直接丢弃该ARP报文;如果这两个MAC地址是匹配的,但是报文中的接口或VLAN信息与ARP表中对应表项不匹配时,则可以更新对应ARP表项中的接口和VLAN信息。这种模式适用于静态配置IP地址,但网络存在冗余链路(这样可以改变出接口和VLAN)的情况。当链路切换时,ARP表项中的接口信息可以快速改变。

(2)fixed-all方式:这种固化模式时仅当ARP报文对应的MAC地址、接口、VLAN信息和ARP表中对应表项的信息完全匹配时,设备才可以更新ARP表项的其他内容。这种模式匹配最严格,适用于静态配置IP地址,网络没有冗余(这样不可以改变出接口和VLAN),且同一IP地址用户不会从不同接口接入的情况。

(3)send-ack方式:这种模式是当设备收到一个涉及MAC地址、VLAN、接口修改的ARP报文时,不会立即更新ARP表项,而是先向待更新的ARP表项现有MAC地址对应的用户发送一个单播的ARP请求报文,再根据用户的确认结果决定是否更新ARP表项中的MAC地址、VLAN和接口信息。此方式适用于动态分配IP地址,有冗余链路的网络。

可在全局和VLANIF接口下配置ARP表项固化功能,全局配置该功能后,缺省设备上所有接口的ARP表项固化功能均已使能。当全局和VLANIF接口下同时配置了该功能,VLANIF接口下的配置优先生效。

二、配置动态ARP检测

为了防御中间人攻击,避免合法用户的数据被中间人窃取,可以使能动态ARP检测功能,仅适用于启用了DHCP Snooping的场景。这样,设备会将ARP报文中的源IP、源MAC、接口、VLAN信息和DHCPSnooping中的绑定表(或者手动添加静态绑定表)信息进行比较,如果匹配,说明发送该ARP报文的用户是合法用户,允许此用户的ARP报文通过,否则就认为是攻击,丢弃该ARP报文。

设备使能DHCP Snooping功能后,当DHCP用户上线时设备会自动生成DHCPSnooping绑定表;对于静态配置IP地址的用户,设备不会生成DHCP Snooping绑定表,所以需要手动添加静态绑定表。可用user-bind static { ip-address start-ip [ to end-ip]&<1-10> | mac-address mac-address}*[ interface interface-typeinterface-number] [vlan vlan-id [ce-vlan ve-vlan-id]]命令配置IP地址、MAC地址、接口和内/外层VLAN的静态用户绑定表项。

如果希望仅匹配绑定表中某一项或某两项内容的特殊ARP报文也能够通过,则可以配置对ARP报文进行绑定表匹配检测时只检查某一项或某两项内容。如果希望设备在丢弃的不匹配绑定表的ARP报文数量较多时能够以告警的方式提醒网络管理员,则还可以使能动态ARP检测丢弃报文告警功能。这样,当丢弃的ARP报文数超过告警阈值时,设备将产生告警。

可在接口(包括物理接口、Eth-Trunk接口、VLANIF接口和端口组)视图或VLAN视图下配置动态ARP检测功能。在接口视图下使能时,则对该接口收到的所有ARP报文进行绑定表匹配检查;在VLAN视图下使能时,则对加入该VLAN的接口收到的属于该VLAN的ARP报文进行绑定表匹配检查。

当同时在VLAN和加入该VLAN的接口下配置了动态ARP检测功能时,设备会先按接口下配置的检查选项对ARP报文进行绑定表匹配检查,如果ARP报文检查通过,设备再根据VLAN下配置的检查选项进行检查。

由于动态ARP检测丢弃报文告警功能针对的是接口下DAI功能丢弃的ARP报文数告警统计,因此建议不要同时在VLAN视图下配置命令arp anti-attack check user-bind enable以及在加入该VLAN的接口视图下配置命令arpanti-attack check user-bind alarm enable,避免VLAN下的DAI功能可能造成实际丢包数目和接口DAI告警统计值之间的偏差。


三、配置ARP防网关冲突

如果攻击者仿冒网关,在局域网内部发送源IP地址是网关IP地址的ARP报文,就会导致局域网内其他用户主机的ARP表记录错误的网关地址映射关系。这样其他用户主机就会把发往网关的流量均发送给了攻击者,攻击者可轻易窃听到它们发送的数据内容,并且最终会造成这些用户主机无法访问网络。这就是最常见的一种ARP攻击类型——网关欺骗ARP攻击。

为了防范攻击者仿冒网关,当用户主机直接接入网关时(这是先决条件,其他情形不适用),可在网关设备上使能ARP防网关冲突攻击功能。这样,当网关设备收到的ARP报文存在下列情况之一时,设备就会认为该ARP报文是与网关地址冲突的ARP报文,生成ARP防攻击表项,并在后续一段时间内丢弃该接口收到的相同VLAN和相同源MAC地址的ARP报文,以防止与网关地址冲突的ARP报文在VLAN内广播。

(1)ARP报文的源IP地址与报文入接口对应的VLANIF接口的IP地址(就是网关IP地址)相同。

(2)ARP报文的源IP地址是入接口的VRRP虚拟IP地址,但ARP报文源MAC地址不是VRRP虚拟MAC地址。

配置ARP防网关冲突的方法很简答,仅需在系统视图下执行arp anti-attack gateway-duplicate enable即可。缺省情况下,没有使能ARP防网关冲突功能。

这种方法不是很适用,因为它只适用于用户主机直接与网关连接的情形,仅在网关上进行了ARP报文检查。在其他情形下,其他非网关设备照样不会对这类报文进行检查。

四、配置发送ARP免费报文

如果有攻击者向其他用户发送仿冒网关的ARP报文,会导致其他用户的ARP表中记录错误的网关地址映射关系,从而造成其他用户的正常数据不能被网关接收。此时可以在网关设备上配置发送免费ARP报文的功能,用来定期更新合法用户的ARP表项,使得合法用户ARP表项中记录的是正确的网关地址映射关系。

可在网关设备上全局或VLANIF接口下配置发送免费ARP报文功能。全局配置该功能后,则缺省设备上所有接口的发送ARP免费报文功能均已使能。当全局和VLANIF接口下同时配置了该功能时,VLANIF接口下的配置优先生效。

五、配置ARP报文内MAC地址一致性检查

ARP报文内MAC地址一致性检查功能主要应用于网关设备上,可以防御以太网数据帧首部中的源/目的MAC地址和ARP报文数据区中的源/目的MAC地址不同的ARP攻击。配置该功能后,网关设备在进行ARP表项学习前将对ARP报文进行检查。如果以太网数据帧首部中的源/目的MAC地址和ARP报文数据区中的源/目的MAC地址不同,则认为是攻击报文,将其丢弃;否则,继续进行ARP学习。

本项ARP安全特性,只能在物理接口或者Eth-Trunk接口下配置,不支持在VLANIF接口和物理子接口上配置。当VLANIF接口收到ARP报文时,ARP报文内MAC地址一致性检查遵循成员接口下的检查规则;当物理子接口收到ARP报文时,ARP报文内MAC地址一致性检查遵循主接口下的检查规则。

六、配置ARP报文合法性检查

为了防止非法ARP报文攻击,可以在接入设备或网关设备上配置ARP报文合法性检查功能,用来对MAC地址和IP地址不合法的ARP报文进行过滤。设备提供以下三种可以任意组合的检查项配置:

(1)IP地址检查:设备会检查ARP报文中的源IP和目的IP地址,全0、全1或者组播IP地址都是不合法的,需要丢弃。对于ARP应答报文,源IP和目的IP地址都进行检查;对于ARP请求报文,只检查源IP地址。

(2)源MAC地址检查:设备会检查ARP报文中的源MAC地址和以太网数据帧首部中的源MAC地址是否一致,一致则认为合法,否则丢弃报文。

(3)目的MAC地址检查:设备会检查ARP应答报文中的目的MAC地址是否和以太网数据帧首部中的目的MAC地址一致,一致则认为合法,否则丢弃报文。

其实后面两项MAC地址的检查与上面的ARP报文内MAC地址一致性检查方法是一样的。但是,通常ARP报文中源MAC地址和以太网数据帧首部中的源MAC地址不一致的ARP报文,以及目的MAC地址和以太网数据帧首部中的目的MAC地址不一致的ARP应答报文均是ARP协议允许的ARP报文。因此,只有在网络管理员发现攻击产生后,通过报文头获取方式定位、确定了是由于对应项不一致的ARP报文导致的攻击,才能指定ARP报文合法性,检查时需要检查源MAC地址和目的MAC地址。

ARP报文合法性检查的配置方法,仅需在系统视图下配置arp anti-attack packet-check { ip | dst-mac | sender-mac}*命令,使能ARP报文合法性检查功能,并指定ARP报文合法性检查项。

(1)IP:可多选项,对应“IP地址检查”方式,指定在进行ARP报文合法性检查时检查IP地址。

(2)dst-mac:可多选项,对应“目的MAC地址检查”方式,指定在进行ARP报文合法性检查时检查目的MAC地址。

(3)sender-mac:可多选项,对应“源MAC地址检查”方式,指定在进行ARP保温合法性检查时检查源MAC地址。

七、配置DHCP触发ARP学习

在DHCP用户场景下,当DHCP用户数目很多时,设备进行大规模ARP表项的学习和老化会对设备性能和网络环境形成冲击。为了避免此问题,可以在网关设备上使能DHCP触发ARP学习功能。当DHCP服务器给用户分配了IP地址,网关设备会根据VLANIF接口上收到的DHCP ACK(确认)报文直接生成该用户的ARP表项。但DHCP触发ARP学习功能生效的前提是已在网关设备上通过dhcp Snooping enable命令使能了DHCP Snooping功能。

在VRRP和DHCP Relay组合场景下,VRRP主备设备上都不能在配置命令dhcpSnooping enable和arp Learning dhcp-trigger。网关设备上还可同时部署动态ARP检测功能,防止DHCP用户的ARP表项被伪造的ARP报文恶意修改。

DHCP触发ARP学习的配置方法,就是在对应的VLANIF接口视图下执行arp learning dhcp-trigger命令使能DHCP触发ARP学习功能。

ARP安全配置管理

(1)display arpanti-attack configuration { arp-rate-limit | arpmiss-rate-limit|arp-speed-limit | arpmiss-speed-limit |entry-check | gateway-duplicate |log-trap-timer | packet-check | all }:查看ARP防攻击配置。

(2)displayarp-limit [interface interface-type interface-number] [vlan vlan-id]:查看接口可以学习到的动态ARP表项数目的最大值。

(3)display arplearning strict:查看全局和所有VLANIF接口上的ARP表项严格学习情况。

(4)display arpanti-attack configuration check user-bind interface interface-typeinterface-number:查看接口下ARP报文检查相关的配置。

(5)disp arpanti-attack gateway-duplicate item:查看ARP防网关冲突攻击表项。

使用以下display任意视图命令维护ARP安全包括监控ARP运行情况。

(1)display arppacket statistics:查看ARP处理的报文统计数据。

(2)display arpanti-attack statistics check user-bind interface interface-typeinterface-number:查看接口下进行ARP报文绑定表匹配检查的ARP报文丢弃计数。

(3)display arpanti-attack packet-check statistics:查看ARP报文合法性检查过程中被过滤的非法ARP报文统计数据。

(4)display arpanti-attack arpmiss-record-info [ip-address]:查看ARP Miss消息限速触发时的相关信息。

使用reset用户视图命令清除ARP报文统计信息、清除ARP报文丢弃计数以及配置对潜在的ARP攻击行为发送日志和告警。

(1)reset arppacket statistics:清除ARP报文的统计信息。

(2)reset arpanti-attack statistics check user-bind interface interface-typeinterface-number:清除由于不匹配绑定表而丢弃的ARP报文计数。

(3)reset arpanti-attack statistics rate-limit:清除由于ARP报文超过速率限制阈值而被丢弃的计数。

配置示例

一、ARP安全综合功能配置示例

如上拓扑,Switch作为网关通过GE1/0/3接口连接一台服务器,通过GE1/0/1和GE1/0/2接口分别连接VLAN10和VLAN20下的用户。网络中存在以下ARP威胁,现希望能够防止这些ARP攻击行为,为用户提供更安全的网络环境和更稳定的网络服务。

(1)攻击者向Switch发送伪造的ARP报文和伪造的免费ARP报文进行ARP欺骗攻击,恶意修改Switch上的ARP表项,造成其他用户无法正常接收数据报文。

(2)攻击者发出大量目的IP地址不可达的IP报文进行ARP泛洪攻击,造成Switch的CPU负荷过重。

(3)用户User1构造大量源IP地址变化、MAC地址固定的ARP报文进行ARP泛洪攻击,造成Switch的ARP表资源被耗尽以及CPU进行繁忙,影响正常业务的处理。

(4)用户User3构造大量源IP地址固定的ARP报文进行ARP泛洪攻击,造成Switch的CPU进程繁忙,影响到正常业务的处理。

1、基本配置思路分析

针对这样的环境,首先要分析网络中存在哪些ARP方面的安全隐患,然后有针对性的给出可用解决方案选择对应的解决方案。

(1)配置ARP表项严格学习功能和ARP表项固化功能,实现防止伪造的ARP报文错误的更新Switch的ARP表项;配置免费ARP报文主动丢弃功能,实现防止伪造的免费ARP报文错误地更新设备ARP表项。

(2)配置根据源IP地址进行ARP Miss消息限速,实现防止用户侧存在攻击者发出大量目的IP地址不可达的IP报文触发大量ARP Miss消息,形成ARP泛洪攻击。同时需要保证Switch可以正常处理服务器发出的大量此类报文,避免因丢弃服务器发出的大量此类报文而造成网络无法正常通信。

(3)配置基于接口的ARP表项限制以及根据源MAC地址进行ARP限速,实现防止User1发送的大量源IP地址变化MAC地址固定的ARP报文形成的ARP泛洪攻击,避免Switch的ARP表资源被耗尽,避免CPU进程繁忙。

(4)配置根据源IP地址进行ARP限速,实现防止User3发送的大量源IP地址固定的ARP报文形成的ARP泛洪攻击,避免Switch的CPU进程繁忙。

2、具体配置步骤

<Huawei>system-view

[Huawei]vlan batch 10 20 30

[Huawei]interface gigabitethernet 1/0/1

[Huawei-GigabitEthernet1/0/1]port link-typetrunk

[Huawei-GigabitEthernet1/0/1]port trunkallow-pass vlan 10

[Huawei-GigabitEthernet1/0/1]quit

[Huawei]interface gigabitethernet 1/0/2

[Huawei-GigabitEthernet1/0/2]port link-typetrunk

[Huawei-GigabitEthernet1/0/2]port trunkallow-pass vlan 20

[Huawei-GigabitEthernet1/0/2]quit

[Huawei]interface gigabitethernet 1/0/3

[Huawei-GigabitEthernet1/0/3]port link-typetrunk

[Huawei-GigabitEthernet1/0/3]port trunkallow-pass vlan 30

[Huawei-GigabitEthernet1/0/3]quit

(2)创建接口VLANIF10、VLANIF20、VLANIF30,并按图中标注配置各VLANIF接口的IP地址。

[Huawei]interface vlanif 10

[Huawei-Vlanif10]ip address 8.8.8.4 24

[Huawei-Vlanif10]quit

[Huawei]interface vlanif 20

[Huawei-Vlanif20]ip address 9.9.9.4 24

[Huawei-Vlanif20]quit

[Huawei]interface vlanif 30

[Huawei-Vlanif30]ip address10.10.10.3 24

[Huawei-Vlanif30]quit

(3)配置ARP表项严格学习功能,使网关设备只对自己主动发送的ARP请求报文的应答报文触发本学习ARP表项,其他设备主动向网关设备发送的ARP报文不能触发本学习ARP表项。防止从伪造的ARP报文中学习ARP表项。

[Huawei]arp learning strict

(4)配置ARP表项固化模式为fixed-mac方式。使网关设备对收到的ARP报文中的MAC地址与ARP表中对应表项的MAC地址进行匹配检查,直接丢弃MAC地址不匹配的ARP报文。

[Huawei]arp anti-attack entry-checkfixed-mac enable

(5)配置免费ARP报文主动丢弃功能。使网关设备直接丢弃免费ARP报文。

[Huawei]arp anti-attack gratuitous-arp drop

         (6)配置根据源IP地址进行ARP Miss消息限速,对Server(IP地址为10.10.10.2)的ARP Miss消息进行限速,允许Switch每秒最多处理该IP地址触发的40个ARP Miss消息;对于其他用户,允许Switch每秒最多处理同一个源IP地址触发的20个ARP Miss消息。

[Huawei]arp-miss speed-limit source-ipmaximum 20

[Huawei]arp-miss speed-limit source-ip10.10.10.2 maximum 40

(7)配置基于接口的ARP表项限制,使GE1/0/1接口最多可以学习到20个动态ARP表项。

[Huawei]interface gigabitethernet1/0/1

[Huawei-GigabitEthernet1/0/1]arp-limit vlan10 maximum 20

[Huawei-GigabitEthernet1/0/1]quit

(8)配置根据源MAC地址进行ARP限速,对用户User1(MAC地址为1-1-1)进行ARP报文限速,每秒最多只允许10个该MAC地址的ARP报文通过。

[Huawei]arp speed-limit source-mac 1-1-1maximum 10

(9)配置根据源IP地址进行ARP限速,对用户User3(IP地址为9.9.9.2)进行ARP报文限速,每秒最多只允许10个该IP地址的ARP报文通过。

[Huawei]arp speed-limit source-ip 9.9.9.2maximum 10

配置后,通过display arplearning strict查看全局已经配置ARP表项严格学习功能;通过display arp packet statistics查看ARP处理的报文统计数据。

二、防止ARP中间人攻击配置示例

如上拓扑,SwitchA通过GE2/0/1接口连接DHCPServer,通过GE1/0/1和GE1/0/2接口分别连接DHCP客户端UserA和UserB,通过GE1/0/3接口连接静态配置IP地址的用户UserC。SwitchA的GE1/0/1、GE1/0/2、GE1/0/3、GE2/0/1接口都属于VLAN10。现希望能够防止ARP中间人攻击,避免合法用户的数据被中间人窃取,同时希望能够了解当前ARP中间人攻击的频率和范围。

1、基本配置思路分析

可以采取以下方法来预防ARP中间人攻击。

(1)使能动态ARP检测功能,使SwitchA对收到的ARP报文对应的源IP地址、源MAC地址、VLAN以及接口信息进行DHCPSnooping绑定表匹配检查,防止ARP中间人攻击。

(2)使能动态ARP检测丢弃报文告警功能,使SwitchA开始统计丢弃的不匹配DHCPSnooping绑定表的ARP报文数量,并在丢弃数量超过告警阈值时能以告警的方式提醒管理员,这样可以使管理员根据告警信息以及报文丢弃计数来了解当前ARP中间人攻击的频率和范围。

(3)配置DHCPSnooping功能,并为UserC配置静态绑定表(对于采用DHCP自动分配IP地址的UserA和UserB,在设备使能DHCPSnooping功能后,当他们上线时设备会自动生成DHCP Snooping绑定表),使动态ARP检测功能生效。

2、具体配置步骤

(1)创建VLAN10,并将GE1、GE1/0/2、GE1/0/3、GE2/0/1接口加入VLAN10中。

<Huawei>system-view

[Huawei]sysname SwitchA

[SwitchA]vlan batch 10

[SwitchA]interface gigabitethernet1/0/1

[SwitchA-GigabitEthernet1/0/1]portlink-type access

[SwitchA-GigabitEthernet1/0/1]port defaultvlan 10

[SwitchA-GigabitEthernet1/0/1]quit

[SwitchA]interface gigabitethernet1/0/2

[SwitchA-GigabitEthernet1/0/2]portlink-type access

[SwitchA-GigabitEthernet1/0/2]port defaultvlan 10

[SwitchA-GigabitEthernet1/0/2]quit

[SwitchA]interface gigabitethernet1/0/3

[SwitchA-GigabitEthernet1/0/3]portlink-type access

[SwitchA-GigabitEthernet1/0/3]port defaultvlan 10

[SwitchA-GigabitEthernet1/0/3]quit

[SwitchA]interface gigabitethernet2/0/1

[SwitchA-GigabitEthernet2/0/1]portlink-type trunk

[SwitchA-GigabitEthernet2/0/1]port trunkallow-pass vlan 10

[SwitchA-GigabitEthernet2/0/1]quit

(2)使能动态ARP检测功能和动态ARP检测丢弃报文告警功能。在用户侧的GE1/0/1、GE1/0/2、GE1/0/3接口想使能动态ARP检测功能和动态ARP检测丢弃报文告警功能。以GE1/0/1为例。

[SwitchA]interface gigabitethernet1/0/1

[SwitchA-GigabitEthernet1/0/1]arpanti-attack check user-bind enable

[SwitchA-GigabitEthernet1/0/1]arpanti-attack check user-bind alarm enable

[SwitchA-GigabitEthernet1/0/1]quit

(3)配置DHCPSnooping功能

[SwitchA]dhcp enable

[SwitchA]dhcp Snooping enable #--全局使能DHCPSnooping功能

[SwitchA]vlan 10

[SwitchA-vlan10]dhcp Snooping enable #--在VLAN10内使能DHCPSnooping功能,这就会为VLAN10中的动态IP地址用户UserA和UserB自动生成绑定表

[SwitchA-vlan10]quit

[SwitchA]interface gigabitethernet2/0/1

[SwitchA-GigabitEthernet2/0/1]dhcp Snoopingtrusted #--配置接口GE2/0/1为DHCP Snooping信任接口,所有接口缺省均为非信任端口

[SwitchA-GigabitEthernet2/0/1]quit

[SwitchA]user-bind static ip-address10.0.0.2 mac-address 0001-0001-0001 interface Gigabitethernet 1/0/3 vlan 10 #--在信任接口GE2/0/1上为采用静态IP地址分配的UserC用户配置静态绑定表

配置好后,查看验证:

GE1/0/1接口下产生了ARP报文丢弃计数和丢弃的ARP报文告警数,表明防ARP中间人攻击功能已经生效。当在各接口下多次执行命令display arp anti-attack statistics check user-bind interface时,可根据显示信息中“DroppedARP packet number is”字段值的变化来了解ARP中间人攻击频率和范围。


猜你喜欢

转载自blog.csdn.net/kaoa000/article/details/80311564
今日推荐