1、防止DHCP Server仿冒者攻击
将与合法DHCP服务器直接或间接连接的接口设置为信任接口,其他接口设置为非信任接口。
此后,从“非信任(Untrusted)”接口上收到的DHCP回应报文将被直接丢弃,这样可以有效防止DHCPServer仿冒者的攻击。
DHCP客户端首次登录网络时,需要发送DHCPDiscover报文来寻找DHCP服务器。由于DHCPDiscover是以广播形式发送的,所以除DHCP服务器外网络中的其他设备也可以收到此报文。如果有网络设备冒充DHCP服务器,即DHCP仿冒服务器,就会回应给DHCP客户端仿冒的DHCPOffer报文。此报文中包含的仿冒信息,如错误的网关地址、错误的DNS服务器、错误的IP等,会造成DHCP客户端无法正常登录。
解决方案
为防止DHCP仿冒服务器的攻击,可把物理接口设置为Trusted或者Untrusted状态。如图所示,配置Trusted/Untrusted接口后,直接丢弃Untrusted接口上收到的 DHCP Offer/ACK报文,从而隔离 DHCP Server仿冒者攻击。
正常处理Trusted接口上收到的DHCPOffer/ACK报文,从而保证DHCP客户端正常接收DHCP Server返回的DHCP Offer/ACK报文。
2、防止非DHCP用户攻击
为了有效的防止非DHCP用户攻击,可开启设备根据DHCPSnooping绑定表生成接口的静态MAC表项功能。之后,设备将根据接口下所有的DHCP用户对应的DHCPSnooping绑定表项自动执行命令生成这些用户的静态MAC表项,并同时关闭接口学习动态MAC表项的能力。
3、防止DHCP报文泛洪攻击(DHCP饿死攻击)
在DHCP网络环境中,若攻击者短时间内向设备发送大量的DHCP报文,将会对设备的性能造成巨大的冲击以致可能会导致设备无法正常工作。
为了有效的防止DHCP报文泛洪攻击,在使能设备的DHCPSnooping功能时,可同时使能设备对DHCP报文上送DHCP报文处理单元的速率进行检测的功能。此后,设备将会检测DHCP报文的上送速率,并仅允许在规定速率内的报文上送至DHCP报文处理单元,而超过规定速率的报文将会被丢弃。
解决方法
DHCP泛洪一般来自特定端口或者特定的用户,可以通过手工或者自动的方式将泛洪端口DHCP进行隔离,避免影响正常接口的DHCP交互。
DHCP端口级防护 设备基于端口对DHCP上送速率进行监控,当某端口DHCP上送控制面报文速率超过特定阈值时,会将该端口的DHCP报文通过单独通道上送控制面,避免攻击影响正常的DHCP报文。
DHCP用户级防护设备对用户(基于MAC地址或者IP地址)上送控制面的DHCP报文速率进行监控,当某用户DHCP报文速率超过特定阈值时,会将该用户DHCP报文丢弃一段时间。
DHCP端口级防护属系统默认打开的功能,不需要手工配置;而DHCP用户级防护需要手工打开。
dhcp snoopingcheck dhcp-rate enable
4、防止仿冒DHCP报文攻击
已获取到IP地址的合法用户通过向服务器发送DHCPRequest或DHCP Release报文用以续租或释放IP地址。如果攻击者冒充合法用户不断向DHCP Server发送DHCPRequest报文来续租IP地址,会导致这些到期的IP地址无法正常回收,以致一些合法用户不能获得IP地址;而若攻击者仿冒合法用户的DHCPRelease报文发往DHCP Server,将会导致用户异常下线。
解决方法
为了有效的防止仿冒DHCP报文攻击,可利用DHCPSnooping绑定表的功能。设备通过将DHCP Request续租报文和DHCPRelease报文与绑定表进行匹配操作能够有效的判别报文是否合法,若匹配成功则转发该报文,匹配不成功则丢弃。
5、防止DHCP Server服务拒绝攻击
为了抑制大量DHCP用户恶意申请IP地址,在使能设备的DHCPSnooping功能后,可配置设备或接口允许接入的最大DHCP用户数,当接入的用户数达到该值时,则不再允许任何用户通过此设备或接口成功申请到IP地址。
而对通过改变DHCPRequest报文中的CHADDR字段方式的攻击,可使能设备检测DHCPRequest报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能,此后设备将检查上送的DHCPRequest报文中的帧头MAC地址是否与CHADDR值相等,相等则转发,否则丢弃。
解决方法
为了抑制大量DHCP用户恶意申请IP地址,在使能设备的DHCPSnooping功能后,可配置设备或接口允许接入的最大DHCP用户数,当接入的用户数达到该值时,则不再允许任何用户通过此设备或接口成功申请到IP地址。
dhcp snoopingmax-user-number
而对通过改变DHCP Request报文中的CHADDR字段方式的攻击,可使能设备检测DHCP Request报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能,此后设备将检查上送的DHCP Request报文中的帧头MAC地址是否与CHADDR值相等,相等则转发,否则丢弃。
dhcp snoopingcheck mac-address enable
6、中间人攻击
在应用DHCP的网络中可能存在这样的攻击:
A、攻击者向DHCP客户端发带有自己MAC和服务器IP的ARP报文,让客户端学到包含服务器IP和自己MAC的ARP表项,之后,客户端发到服务器的报文都会经过攻击者。
B、攻击者向服务器发带有自己MAC和客户端IP的ARP报文,让服务器学到包含客户端IP和自己MAC的ARP表项,之后,服务器发到客户端的报文都会经过攻击者。
这样攻击者就可以达到仿冒 DHCP服务器和 DHCP客户端的目的,从而获得DHCP服务器和DHCP客户端之间交互的信息。
解决方案
为了防止中间人攻击,可以使能 DHCPSnooping 功能并配置 ARP防中间人攻击功能。
使能DHCP Snooping功能后,设备上将建立和维护一个 DHCP Snooping绑定表。该绑定表包含用户的IP地址、MAC地址、VLAN以及用户接入端口等信息。配置ARP防中间人攻击功能后,只有接收到的ARP 报文中的信息和绑定表中的内容一致才会被转发,否则报文将被丢弃。由于中间人发送的ARP欺骗报文中IP地址和MAC地址与 DHCP Snooping绑定表中的不一致,攻击报文将被丢弃。
7、仿冒DHCP报文攻击
攻击原理
已获取到IP地址的合法用户通过向服务器发送DHCP Request或DHCP Release报文用以续租或释放IP地址,如果攻击者冒充合法用户不断向DHCP Server发送DHCP Request报文来续租IP地址,会导致这些到期的IP地址无法正常回收,以致一些合法用户不能获得IP地址。而若攻击者仿冒合法用户的DHCP Release报文发往DHCP Server,将会导致用户异常下线。
解决方法方法
为了有效的防止仿冒DHCP报文攻击可利用DHCPSnooping绑定表的功能。设备通过将DHCP Request续租报文和DHCP Release报文与绑定表进行匹配操作能够有效的判别报文是否合法(主要是检查报文中的VLAN、IP、MAC、接口信息是否匹配动态绑定表)若匹配成功则转发该报文匹配不成功
则丢弃。
dhcp snooping check user-bind enable
8、DHCP服务器拒绝服务攻击
攻击原理
如图所示,若设接口if1下存在大量攻击者恶意申请IP地址,会导致DHCP Server中IP地址快速耗尽而不能为其他合法用户提供IP地址分配服务。
另一方面,DHCP Server通常仅根据DHCP Request报文中的CHADDR(Client Hardware Address)字段来确认客户端的MAC地址,如果某一攻击者通过不断改变CHADDR字段向DHCP Server申请IP地址,同样将会导致DHCP Server上的地址池被耗尽,从而无法为其他正常用户提供IP地址。
解决方法
为了抑制大量DHCP用户恶意申请IP地址,在使能设备的DHCP Snooping功能后,可配置设备或接口允许接入的最大DHCP用户数当接入的用户数达到该值时则不再允许任何用户通过此设备或接口成功申请到IP地址。
dhcp snooping max-user-number
而对通过改变DHCP Request报文中的CHADDR字段方式的攻击可使能设备检测DHCP Request报文帧头MAC与DHCP数据区中CHADDR字段是否一致功能,此后设备将检耷上送的DHCP Request报文中的帧头MAC止是否与CHADDR值相等相等则转发否则丢弃。dhcp snoopingcheck mac-address enable
防止非DHCP用户攻击
攻击原理
在DHCP网络中,静态获取IP地址的用户(非DHCP用户)对网络可能存在多种攻击,譬如仿冒DHCP Server、构造虚假DHCP Request报文等。这将为合法DHCP用户正常使用网络带来了一定的安全隐患。
解决方法
为了有效的防止非DHCP用户攻击,可开启设备根据DHCP Snooping绑定表生成接口的静态MAC表项功能。
之后,设备将根据接口下所有的DHCP用户对应的DHCP Snooping绑定表项自动执行命令生成这些用户的静态MAC表项并同时关闭接口学习动态MAC表项的能力。此时,只有源MAC与静态MAC表项匹配的报文才能够通过该接口否则报文会被丢弃。因此对于该接口下的非DHCP用户,只有管理员手动配置了此类用户的静态MAC表项其报文才能通过否则报文将被丢弃。
dhcp snooping sticky-mac mac-address learning disable
动态MAC表项是设备自动学习并生成的,静态MAC表项则是根据命令配置而成的。MAC表项中包含用户的MAC、所属VLAN、连接的接口号等信息,设备可根据MAC表项对报文进行二层转发。