DHCP snooping、DHCP安全及威胁防范
SW1\]display dhcp snooping user-bind all,查看DHCP snooping表项。 **DHCP snooping:** 表项是通过服务器发送给客户端的ACK报文生成的。 只能在交换机上开启,路由器不支持,并且建议在接入交换机开启(汇聚和核心交换机开启没有意义) **主要原理:**当DHCP服务器给客户端回复ACK报文时,会在交换机连接终端的接口生成snooping表项。 **snooping表项包含:**MAC地址,IP地址,接口编号,VLAN-ID,租期信息。 snooping表项的老化时间根据租期而定,同时如果终端发送释放报文那么绑定表也会随之删除。 书签-DHCP主要的攻击方式: **一、DHCP饿死攻击:**攻击者伪装成主机向DHCP Server服务器请求IP分配,耗尽服务器的地址池地址,是的正常PC无法请求到可以使用的IP。 **1、防御饿死攻击:** 可以通过开启DHCP请求消息中数据链路层MAC地址和报文中CHADDR字段一致性检查,如果不一致就会认为是攻击,丢弃该报文。 \[SW1\]dhcp enable //首先,全局使能DHCP功能 \[SW1\]dhcp snooping enable //全局使能DHCP Snooping功能 \[SW1-GigabitEthernet0/0/1\]dhcp snooping enable //接口下使能DHCP snooping功能 \[SW1-vlan1\]dhcp snooping enable //在vlan视图下使能DHCP snooping,即在该vlan下的所有接口都使能 \[SW1-GigabitEthernet0/0/1\]dhcp snooping check dhcp-chaddr enable //开启chaddr一致性检查 如何判断发生了饿死攻击:可以通过检查DHCP服务器地址池分配是否存在异常来判断是否发生了饿死攻击!!! **防御变异的饿死攻击:** 对于攻击者将帧源MAC和CHADDR的MAC同时修改的场景,一致性检查无效,实际该场景没有预防措施。 对于这种场景我们可以通过限制接口snooping表项数量来控制。 \[SW1-GigabitEthernet0/0/1\]dhcp snooping max-user-number 1\~1024个;//限制该接口学习snooping表项的数量 **2、DHCP客户端伪造DHCP报文攻击:** 攻击者仿冒合法用户发送request报文续租IP导致IP无法被正常回收,久而久之,将没有空闲IP分配给合法终端; 攻击者仿冒合法用户发送release报文释放IP地址,导致合法用户异常下线。 \[SW1-GigabitEthernet0/0/1\]dhcp snooping check dhcp-request enable //开启DHCP请求消息与绑定表匹配查询。 **3、非DHCP客户端伪造DHCP报文攻击:** \[SW1-GigabitEthernet0/0/1\]dhcp snooping sticky-mac,//开启设备基于DHCP snooping表项粘滞功能的MAC地址表学习机制,默认关闭MAC地址表学习功能,且报文不予转发。 功能相似:\[SW1-GigabitEthernet0/0/1\]mac-address learning disable action discard; 特别注意:一旦配置这条命令,这个接口就只能连接DHCP客户端,对于静态IP配置的终端无法进行通讯。 **4、DHCP报文泛洪攻击:** \[SW1\]DHCP snooping check dhcp-rate enable //全局开启接口处理DHCP报文的频率功能。用来防止PC一秒钟发送成千上万次的正常的DHCP请求 \[SW1\]dhcp snooping check dhcp-rate 1\~100 //每秒钟处理1\~100和DHCP数据包 **5、仿冒DHCP Server攻击:** 私接路由器等设备,成为假的DHCP Server给同网络的终端分配地址。(交换机出来的网线接入到路由器LAN口,LAN口默认开启了DHCP功能) 信任接口和非信任接口 启用了DHCP snooping功能的交换机所有接口默认情况下都是非信任接口 该接口没有snooping表项 **5.1**非信任接口收到DHCP请求消息时,只转发给信任接口。 非信任接口收到DHCP响应消息时,直接丢弃 **5.2** 信任接口收到了DHCP请求消息时,会转发给其他的信任接口,如果没有,将丢弃 信任接口收到了DHCP响应消息时,会发给非信任接口 \[SW1-GigabitEthernet0/0/3\]dhcp snooping trusted //将该接口配置为信任接口 **6、DHCP中间人攻击:** \[SW1\]arp dhcp-snooping-detect enable //全局开启基于DHCP snooping绑定表的动态ARP检测。