H3C防ARP解决方案及配置
H3CARP解决方案及配置
防ARP攻击配置举例
关键词:ARP、DHCP Snooping
摘  要:本文主要介绍如何利用以太网交换机DHCP监控模式下的防ARP攻击功能,防止校园网中常见的“仿冒网关”、“欺骗网关”、“欺骗终端用户”、ARP泛洪等攻击形式。同时,详细描述了组网中各个设备的配置步骤和配置注意事项,指导用户进行实际配置。
缩略语:ARP(Address Resolution Protocol,地址解析协议)
MITM(Man-In-The-Middle,中间人攻击)
第1章  防ARP攻击功能介绍
近来,许多校园网络都出现了ARP攻击现象。严重者甚至造成大面积网络不能正常访问外网,学校深受其害。H3C公司根据校园网ARP攻击的特点,给出了DHCP监控模式下的防ARP攻击解决方案,可以有效的防御 “仿冒网关”、“欺骗网关”、“欺骗终端用户”、“ARP中间人攻击”、“ARP泛洪攻击”等校园网中常见的ARP攻击方式;且不需要终端用户安装额外的客户端软件,简化了网络配置。
1.1  ARP攻击简介
按照ARP协议的设计,一个主机即使收到的ARP应答并非自身请求得到的,也会将其IP地址和MAC地址的对应关系添加到自身的ARP映射表中。这样可以减少网络上过多的ARP数据通信,但也为“ARP欺骗”创造了条件。
校园网中,常见的ARP攻击有如下几中形式。
(1)        仿冒网关
攻击者伪造ARP报文,发送源IP地址为网关IP地址,源MAC地址为伪造的MAC地址的ARP报文给被攻击的主机,使这些主机更新自身ARP表中网关IP地址与MAC地址的对应关系。这样一来,主机访问网关的流量,被重定向到一个错误的MAC地址,导致该用户无法正常访问外网。
图1-1 “仿冒网关”攻击示意图
(2)        欺骗网关
攻击者伪造ARP报文,发送源IP地址为同网段内某一合法用户的IP地址,源MAC地址为伪造的MAC地址的ARP报文给网关;使网关更新自身ARP表中原合法用户的IP地址与MAC地址的对应关系。这样一来,网关发给该用户的所有数据全部重定向到一个错误的MAC地址,导致该用户无法正常访问外网。
图1-2 “欺骗网关”攻击示意图
(3)        欺骗终端用户
攻击者伪造ARP报文,发送源IP地址为同网段内某一合法用户的IP地址,源MAC地址为伪造的MAC地址的ARP报文给同网段内另一台合法主机;使后者更新自身ARP表中原合法用户的IP地址与MAC地址的对应关系。这样一来,网段内的其他主机发给该用户的所有数据都被重定向到错误的MAC地址,同网段内的用户无法正常互访。
图1-3 “欺骗终端用户”攻击示意图
(4)        “中间人”攻击
ARP “中间人”攻击,又称为ARP双向欺骗。如图1-4所示,Host A和Host C通过Switch进行通信。此时,如果有恶意攻击者(Host B)想探听Host A和Host C之间的通信,它可以分别给这两台主机发送伪造的ARP应答报文,使Host A和Host C用MAC_B更新自身ARP映射表中与对方IP地址相应的表项。此后,Host A 和Host C之间看似“直接”的通信,实际上都是通过黑客所在的主机间接进行的,即Host B担当了“中间人”的,可以对信息进行了窃取和篡改。这种攻击方式就称作“中间人(Man-In-The-Middle)攻击”。
图1-4 ARP“中间人”攻击示意图
(5)        ARP报文泛洪攻击
恶意用户利用工具构造大量ARP报文发往交换机的某一端口,导致CPU负担过重,造成其他功能无法正常运行甚至设备瘫痪。
1.2  ARP攻击防御
H3C公司根据校园网ARP攻击的特点,给出了DHCP监控模式下的防ARP攻击解决方案。通过接入交换机上开启DHCP Snooping功能、配置IP静态绑定表项、ARP入侵检测功能和ARP报文限速功能,可以防御常见的ARP攻击,如表1-1。
表1-1 常见网络攻击和防范对照表
攻击方式        防御方法
动态获取IP地址的用户进行“仿冒网关”、“欺骗网关”、“欺骗终端用户”、“ARP中间人攻击”        配置DHCP Snooping、ARP入侵检测功能
手工配置IP地址的用户进行“仿冒网关”、“欺骗网关”、“欺骗终端用户”、“ARP中间人攻击”        配置IP静态绑定表项、ARP入侵检测功能
ARP泛洪攻击        配置ARP报文限速功能
1.2.2  DHCP Snooping功能
DHCP Snooping是运行在二层接入设备上的一种DHCP安全特性。
(1)        通过监听DHCP报文,记录DHCP客户端IP地址与MAC地址的对应关系;
(2)        通过设置DHCP Snooping信任端口,保证客户端从合法的服务器获取IP地址。
信任端口正常转发接收到的DHCP报文,从而保证了DHCP客户端能够从DHCP服务器获取IP地址。
不信任端口接收到DHCP服务器响应的DHCP-ACK和DHCP-OFFER报文后,丢弃该报文,从而防止了DHCP客户端获得错误的IP地址。
说明:
目前H3C低端以太网交换机上开启DHCP Snooping功能后,所有端口默认被配置为DHCP Snooping非信任端口。为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
1.2.3  ARP入侵检测功能
H3C低端以太网交换机支持将收到的ARP(请求与回应)报文重定向到CPU,结合DHCP Snooping安全特性来判断ARP报文的合法性并进行处理,具体如下。
当ARP报文中的源IP地址及源MAC地址的绑定关系与DHCP Snooping表项或者手工配置的IP静态绑定表项匹配,且ARP报文的入端口及其所属VLAN与DHCP Snooping表项或者手工配置的IP静态绑定表项一致,则为合法ARP报文,进行转发处理。
当ARP报文中的源IP地址及源MAC地址的绑定关系与DHCP Snooping表项或者手工配置的IP静态绑定表项不匹配,或ARP报文的入端口,入端口所属VLAN与DHCP Snooping表项或者手工配置的IP静态绑定表项不一致,则为非法ARP报文,直接丢弃。
说明:
DHCP Snooping表只记录了通过DHCP方式动态获取IP地址的客户端信息。如果固定IP地址的用户需要访问网络,必须在交换机上手工配置IP静态绑定表的表项,即:用户的IP地址、MAC地址及连接该用户的端口之间的绑定关系。
实际组网中,为了解决上行端口接收的ARP请求和应答报文能够通过ARP入侵检测问题,交换机支持通过配置ARP信任端口,灵活控制ARP报文检测功能。对于来自信任端口的所有ARP报文不进行检测,对其它端口的ARP报文通过查看DHCP Snooping表或手工配置的IP静态绑定表进行检测。
1.2.4  ARP报文限速功能
H3C低端以太网交换机支持端口ARP报文限速功能,使受到攻击的端口暂时关闭,来避免此类攻击对CPU的冲击。
开启某个端口的ARP报文限速功能后,交换机对每秒内该端口接收的ARP报文数量进行统计,如果每秒收到的ARP报文数量超过设定值,则认为该端口处于超速状态(即受到ARP报文攻击)。此时,交换机将关闭该端口,使其不再接收任何报文,从而避免大量ARP报文攻击设备。同时,设备支持配置端口状态自动恢复功能,对于配置了ARP限速功能的端口,在其因超速而被交换机关闭后,经过一段时间可以自动恢复为开启状态。
1.3  防ARP攻击配置指南
表1-2 防ARP攻击配置
任务        操作        命令        说明
-        进入系统视图        system-view        -
配置DHCP Snooping功能记录DHCP客户端的IP/MAC对应关系        开启交换机DHCP Snooping功能        dhcp-snooping        必选
缺省情况下,以太网交换机的DHCP Snooping功能处于禁止状态
进入以太网端口视图        interface interface-type interface-number        -
设置指定端口为DHCP Snooping信任端口        dhcp-snooping trust        必选
缺省情况下,交换机的端口均为不信任端口
退出至系统视图        quit        -
配置指定端口的IP静态绑定表项        进入以太网端口视图        interface interface-type interface-number        -
配置IP静态绑定表项        ip source static binding ip-address ip-address [ mac-address mac-address ]        可选
缺省情况下,没有配置IP静态绑定表项
退出至系统视图        quit        -
配置ARP入侵检测功能,防御常见的ARP攻击        进入VLAN视图        vlan vlan-id        -
开启ARP入侵检测功能        arp detection enable         必选
缺省情况下,指定VLAN内所有端口的ARP入侵检测功能处于关闭状态
开启ARP严格转发功能        arp restricted-forwarding enable        可选
缺省情况下,ARP严格转发功能处于关闭状态
退出至系统视图        quit        -
进入以太网端口视图        interface interface-type interface-number        -
配置ARP信任端口        arp detection trust        可选
缺省情况下,端口为ARP非信任端口
配置ARP限速功能        开启ARP报文限速功能        arp rate-limit enable        必选
缺省情况下,端口的ARP报文限速功能处于关闭状态
配置允许通过端口的ARP报文的最大速率        arp rate-limit rate        可选
缺省情况下,端口能通过的ARP报文的最大速率为15pps
退出至系统视图        quit        -
开启因ARP报文超速而被关闭的端口的状态自动恢复功能        arp protective-down recover enable        可选
缺省情况下,交换机的端口状态自动恢复功能处于关闭状态
配置因ARP报文超速而被关闭的端口的端口状态自动恢复时间        arp protective-down recover interval interval        可选
缺省情况下,开启端口状态自动恢复功能后,交换机的端口状态自动恢复时间为300秒
说明:
有关各款交换机支持的防ARP攻击功能的详细介绍和配置命令,请参见各产品的操作、命令手册。
第2章  配置举例
2.1  组网需求
某校园网内大部分用户通过接入设备连接网关和DHCP服务器,动态获取IP地址。管理员通过在接入交换机上全面部署防ARP攻击相关特性,形成保护屏障,过滤掉攻击报文。详细网络应用需求分析如下。
校园网用户分布在两个区域Host area1和Host area2,分别属于VLAN10和VLAN20,通过接入交换机Switch A和Switch B连接到网关Gateway,最终连接外网和DHCP。
Host area1所在子网内拥有一台TFTP服务器,其IP地址为192.168.0.10/24,MAC地址为000d-85c7-4e00。
为防止仿冒网关、欺骗网关等ARP攻击形式,开启Switch A上VLAN10内、Switch B上VLAN20内ARP入侵检测功能,设置Switch A和Switch B的端口Ethernet1/0/1为ARP信任端口。
为防止ARP泛洪攻击,在Switch A和Switch B所有直接连接客户端的端口上开启ARP报文限速功能。同时,开启因ARP报文超速而被关闭的端口的状态自动恢复功能,并设置恢复时间间隔100秒。
2.2  组网图
图2-1 DHCP监控模式下的防ARP攻击组网示意图
2.3  配置思路
在接入交换机Switch A和Switch B上开启DHCP snooping功能,并配置与DHCP服务器相连的端口为DHCP snooping信任端口。
在接入交换机Switch A上为固定IP地址的TFTP服务器配置对应的IP静态绑定表项。
在接入交换机Switch A和Switch B对应VLAN上开启ARP入侵检测功能,并配置其上行口为ARP信任端口。
在接入交换机Switch A和Switch B直接连接客户端的端口上配置ARP报文限速功能,同时全局开启因ARP报文超速而被关闭的端口的状态自动恢复功能。
2.4  配置步骤
1. 使用的版本
本举例中使用的接入交换机Switch A和Switch B为E126A系列以太网交换机。
2. 配置客户端动态获取IP地址。
图2-2 配置客户端自动获取IP地址示意图
3. 配置Switch A
# 开启DHCP snooping。
<SwitchA> system-view
[SwitchA] dhcp-snooping
# 创建VLAN10,并将端口Ethernet1/0/1到Ethernet1/0/4加入VLAN10中。
[SwitchA] vlan 10
[SwitchA-vlan10] port Ethernet 1/0/1 to Ethernet 1/0/4
[SwitchA-vlan10] quit
# 配置Switch A的上行口为DHCP snooping信任端口和ARP信任端口功能。
[SwitchA] interface ethernet1/0/1
[SwitchA-Ethernet1/0/1] dhcp-snooping trust
[SwitchA-Ethernet1/0/1] arp detection trust
[SwitchA-Ethernet1/0/1] quit
# 开启VLAN 10内所有端口的ARP入侵检测功能。
[SwitchA] vlan 10
[SwitchA-vlan10] arp detection enable
[SwitchA-vlan10] quit
# 在Switch A的端口Ethernet1/0/4上配置IP静态绑定表项。
[SwitchA] interface Ethernet1/0/4
[SwitchA-Ethernet1/0/4] ip source static binding ip-address 192.168.0.10 mac-address 000d-85c7-4e00
[SwitchA-Ethernet1/0/4] quit
# 开启Switch A的端口Ethernet1/0/2、Ethernet1/0/3上的ARP报文限速功能。
[SwitchA] interface Ethernet1/0/2
[SwitchA-Ethernet1/0/2] arp rate-limit enable
[SwitchA-Ethernet1/0/2] arp rate-limit 20
[SwitchA-Ethernet1/0/2] quit
[SwitchA] interface Ethernet1/0/3
[SwitchA-Ethernet1/0/3] arp rate-limit enable
[SwitchA-Ethernet1/0/3] arp rate-limit 20
[SwitchA-Ethernet1/0/3] quit
# 配置端口状态自动恢复功能,恢复时间间隔为100秒。
[SwitchA] arp protective-down recover enable
[SwitchA] arp protective-down recover interval 100
# 配置网关的缺省路由。
[SwitchA] ip route-static 0.0.0.0 0 192.168.0.1
4. 配置Switch B
# 开启DHCP snooping。
<SwitchB> system-view
[SwitchB] dhcp-snooping
# 创建VLAN20,并将相应端口加入VLAN20中。
[SwitchB] vlan 20
[SwitchB-vlan20] port Ethernet 1/0/1 to Ethernet 1/0/4
[SwitchB-vlan20] quit
# 配置Switch B的上行口为DHCP snooping信任端口和ARP信任端口功能。
[SwitchB] interface ethernet1/0/1
[SwitchB-Ethernet1/0/1] dhcp-snooping trust
[SwitchB-Ethernet1/0/1] arp detection trust
[SwitchB-Ethernet1/0/1] quit
# 开启VLAN 20内所有端口的ARP入侵检测功能。
[SwitchB] vlan 20
[SwitchB-vlan20] arp detection enable
[SwitchB-vlan20] quit
# 开启Switch A的端口Ethernet1/0/2、Ethernet1/0/3、Ethernet1/0/4上的ARP报文限速功能。
[SwitchB] interface Ethernet1/0/2
[SwitchB-Ethernet1/0/2] arp rate-limit enable
[SwitchB-Ethernet1/0/2] arp rate-limit 20
[SwitchB-Ethernet1/0/2] quit
[SwitchB] interface Ethernet1/0/3
[SwitchB-Ethernet1/0/3] arp rate-limit enable
[SwitchB-Ethernet1/0/3] arp rate-limit 20
[SwitchB-Ethernet1/0/3] quit
[SwitchB] interface Ethernet1/0/4
[SwitchB-Ethernet1/0/4] arp rate-limit enable
[SwitchB-Ethernet1/0/4] arp rate-limit 20
[SwitchB-Ethernet1/0/4] quit
# 配置端口状态自动恢复功能,恢复时间间隔为100秒。
[SwitchB] arp protective-down recover enable
[SwitchB] arp protective-down recover interval 100
# 配置网关的缺省路由。
[SwitchB] ip route-static 0.0.0.0 0 192.168.1.1
5. 配置Gateway
<Gateway> system-view
# 创建VLAN 10和VLAN 20,并添加相应端口。
[Gateway] vlan 10
[Gateway–vlan10] port Ethernet 1/0/1
[Gateway–vlan10] quit
[Gateway] vlan 20
[Gateway–vlan20] port Ethernet 1/0/2
[Gateway–vlan20] quit
# 配置Vlan-interface10的IP地址为192.168.0.1/24。
[Gateway] interface vlan 10
[Gateway-Vlan-interface10] ip address 192.168.0.1 24
[Gateway-Vlan-interface10] quit
# 配置Vlan-interface20的IP地址为192.168.1.1/24。
[Gateway] interface vlan 20
[Gateway-Vlan-interface20] ip address 192.168.1.1 24
[Gateway-Vlan-interface20] quit
6. 配置DHCP服务器
由于作为DHCP服务器的设备不同,所需进行的配置也不同,故此处从略。具体配置请参考DHCP服务器操作手册。
2.5  注意事项
配置ARP入侵检测功能之前,需要先在交换机上开启DHCP Snooping功能,并设置DHCP Snooping信任端口,否则所有ARP报文将都不能通过ARP入侵检测。
目前,H3C低端以太网交换机上开启DHCP Snooping功能后,所有端口默认被配置为DHCP Snooping非信任端口。为了使DHCP客户端能从合法的DHCP服务器获取IP地址,必须将与合法DHCP服务器相连的端口设置为信任端口,设置的信任端口和与DHCP客户端相连的端口必须在同一个VLAN内。
DHCP Snooping表只记录了通过DHCP方式动态获取IP地址的客户端信息。如果固定IP地址的用户需要访问网络,必须在交换机上手工配置IP静态绑定表的表项,即:用户的IP地址、MAC地址及连接该用户的端口之间的绑定关系。
目前,H3C系列以太网交换机在端口上配置的IP静态绑定表项,其所属VLAN为端口的缺省VLAN ID。因此,如果ARP报文的VLAN TAG与端口的缺省VLAN ID值不同,报文将无法通过根据IP静态绑定表项进行的ARP入侵检测。
H3C系列以太网交换机上手工配置的IP静态绑定表项的优先级高于DHCP Snooping动态表项。具体表现在:如果手工配置的IP静态绑定表项中的IP地址与已存在的DHCP Snooping动态表项的IP地址相同,则覆盖DHCP Snooping动态表项的内容;如果先配置了IP静态绑定表项,再开启交换机的DHCP Snooping功能,则DHCP客户端不能通过该交换机获取到IP静态绑定表项中已经存在的IP地址。
实际组网中,为了解决上行端口接收的ARP请求和应答报文能够通过ARP入侵检测问题,交换机支持通过配置ARP信任端口,灵活控制ARP报文检测功能。对于来自信任端口的所有ARP报文不进行检测,对其它端口的ARP报文通过查看DHCP Snooping表或手工配置的IP静态绑定表进行检测。
受到arp攻击建议用户不要在汇聚组中的端口上配置ARP入侵检测、ARP报文限速功能。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。