ARP攻防笔记整理
ARP通信与攻防概述
在ARP(地址解析协议)通信场景下,由于协议本身基于广播通信,因此容易受到攻击。为了应对这些攻击,设备提供了多种攻击防范功能。
ARP泛洪攻击及防御措施
ARP泛洪攻击:通过大量发送ARP请求或应答报文,占用网络带宽和设备资源,导致正常通信受阻。
防御措施:
-
配置ARP报文限速:
- 根据源MAC地址、源IP地址、全局、VLAN或接口进行限速。
- 基于源MAC地址限制:默认不限制,不同设备支持的速率不同。
- 基于源IP地址限制:默认30个/秒。
- 应用在三层设备上,针对全局、VLAN和接口进行不同方式的配置。
-
配置ARP Miss消息限速:
- 对无法解析的ARP请求(ARP Miss)进行限速。
- 默认每秒接收来自同一个源的30个ARP Miss消息。
- 超过限制后,默认5分钟内不再处理该源的ARP Miss消息。
-
配置临时ARP表项的老化时间:
- 缩短临时表项(未收到回复前建立的表项)的老化时间,以减轻泛洪攻击的影响。
-
配置ARP优化应答:
- 对收到的ARP请求进行检查,如果是本设备地址则直接回复,否则按代理条件转发或丢弃。
- 默认开启,特别适用于堆叠场景。
-
配置禁止过路ARP报文上送CPU功能:
- 过滤掉与本设备无关的ARP报文,减少CPU负担。
-
配置ARP表项严格学习:
- 仅在发送的ARP请求收到回复时学习表项,增强安全性。
-
配置基于接口的ARP表项限制:
- 控制特定接口学习的ARP表项数量。
-
配置禁止接口学习ARP表项:
- 完全禁止特定接口学习ARP表项。
ARP欺骗攻击及防御措施
ARP欺骗攻击:通过发送伪造的ARP报文,欺骗网络设备,导致数据流向错误的设备。
防御措施:
-
配置ARP表项固化:
- 将学习到的ARP表项与流量中的ARP信息进行对比,根据对比结果处理流量。
- 支持fixed-MAC、fixed-all、send-ack等处理方式。
-
配置动态ARP检测(DAI):
- 对收到的流量信息与学习的ARP表项进行对比,不匹配则丢弃。
-
配置ARP防网关冲突:
- 检测并丢弃源IP地址与接口IP地址相同或源IP地址为虚拟IP但源MAC地址不是VRRP虚MAC的ARP报文。
-
配置发送ARP免费报文:
- 网关设备主动周期发送免费ARP报文,帮助终端更新错误的ARP表项。
-
配置ARP网关保护功能:
- 在设备与网关相连的接口上配置,增强网关安全性。
-
配置ARP报文内MAC地址一致性检查:
- 检查ARP报文中二层封装的源MAC地址与ARP报文中指定的源MAC地址是否相同,不同则丢弃。
-
配置ARP报文合法性检查:
- 检查ARP报文中二层封装的MAC地址与ARP报文中携带的MAC地址是否相同,以及IP地址的合法性,不合法则丢弃。
-
配置DHCP触发ARP学习:
- 在DHCP场景下,根据DHCP-ACK报文学习ARP表项。
ARP表项内容
ARP表项包含以下内容:IP地址、MAC地址、老化时间、接口、类型。
流量抑制与风暴控制
流量抑制:针对局域网中的单播、组播、广播报文以及ICMP报文进行抑制,限制设备处理报文的速率。
风暴控制:针对广播、未知组播以及未知单播报文数量过多导致的风暴问题进行控制,控制方式包括按包速率、字节速率、百分比进行限制,超过阈值可关闭或阻塞端口。
端口安全
端口安全:将学习到的动态普通MAC表项转换成动态安全MAC表项,并基于安全MAC表项的学习进行控制。
动态普通MAC表项与动态安全MAC表项的区别:
- 动态安全MAC表项默认不老化,重启后需要重新学习转换。
- 可手动配置绝对时间老化或相对时间老化。
静态安全MAC表项:基于sticky MAC手动创建而来。
Sticky MAC地址:基于普通MAC表项转换成安全动态MAC表项再转换而成。
安全MAC表项的控制:
- 限制端口学习安全MAC地址的数量,默认是1。
- 超过限制可执行restrict(丢弃并上报告警)、protect(只丢弃不上报)、shutdown(接口置为error-down并上报告警)等动作。