当交换机开启了DHCP-Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCPRequest或DHCPAck报文中提取并记录IP地址和MAC地址信息。另外,DHCP-Snooping允许将某个物理端口设置为信任端口或不信任端口。信任端口可以正常接收并转发DHCPOffer报文,而不信任端口会将接收到的DHCPOffer报文丢弃。这样,可以完成交换机对假冒DHCPServer的屏蔽作用,确保客户端从合法的DHCPServer获取IP地址。
1.dhcp-snooping的主要作用就是隔绝非法的dhcpserver,通过配置非信任端口。
2.与交换机DAI的配合,防止ARP病毒的传播。
3.建立和维护一张dhcp-snooping的绑定表,这张表一是通过dhcpack包中的ip和mac地址生成的,二是可以手工指定。这张表是后续DAI(dynamicarpinspect)和IPSourceGuard基础。这两种类似的技术,是通过这张表来判定ip或者mac地址是否合法,来限制用户连接到网络的。
4.通过建立信任端口和非信任端口,对非法DHCP服务器进行隔离,信任端口正常转发DHCP数据包,非信任端口收到的服务器响应的DHCPoffer和DHCPACK后,做丢包处理,不进行转发。
以Cisco交换机为例:[1]
switch(config)#ipdhcpsnooping
switch(config)#ipdhcpsnoopingvlan10
/*在Vlan10启用dhcpsnooping
switch(config-if)#ipdhcpsnoopinglimitrate10
/*dhcp包的转发速率,超过后接口就shutdown,默认不限制;
switch(config-if)#ipdhcpsnoopingtrust
/*这样这个端口就变成了信任端口,信任端口可以正常接收并转发DHCPOffer报文,不记录ip和mac地址的绑定,默认是非信任端口"
switch#ipdhcpsnoopingbinding0009.3452.3ea4vlan7192.168.10.5interfacegi1/0/10
/*这样可以静态ip和mac一个绑定;
switch(config)#ipdhcpsnoopingdatabasetftp://10.1.1.1/dhcp_table
/*因为掉电后,这张绑定表就消失了,所以要选择一个保存的地方,ftp,tftp,flash皆可。本例中的dhcp_table是文件名,而不是文件夹,同时文件名要手工创建一个。
showipdhcpsnooping
/*显示DHCP探测状态*/
DHCPsnooping还可以跟踪主机的物理位置,从而可以防御(ARP)缓存污染攻击。它在防御这些攻击的过程中发挥重要作用,因为您可以使用DHCPsnooping技术丢弃一些来源与目标MAC地址不符合已定义规则的DHCP消息。管理会收到通过DHCPsnooping警报通知的违规行为。当DHCPsnooping服务检测到违规行为时,它会在系统日志服务器上记录一条消息“DHCPSnooping”。
DHCPsnooping是实现2层协议流量安全性的第一步。恶意DHCP服务器不仅会导致网络问题,它们还可以被攻击者用于转发敏感流量和发起中间人攻击。如果还没有做好这些措施,那么一定要考虑实现这些防御措施,保证网络基础架构的安全性。
(1)对网络安全要求程度比较高和对IP地址管理有一定需求的单位,如xx烟草、XX电网等
(2)此策略应配置在接入层交换机当中。其中,在交换机上联端口以及聚合端口需配置为信任端口,需静态IP的端口需开启信任!
若交换机下联有Hub、路由器等设备,若网络中有静态IP地址存在,配置snooping+dai以后会造成小范围内多个用户不能上网。因此建议先在交换机开启snooping,观察网络没有异常以后,逐个vlan开启DAI功能。
DHCP都非常熟悉了,对于DHCP客户端而言,初始过程中都是通过发送广播的DHCPdiscovery消息寻找DHCP服务器,然而这时候如果内网中存在私设的DHCP服务器,那么就会对网络造成影响,例如客户端通过私设的DHCP服务器拿到一个非法的地址,最终导致PC无法上网。
在DHCPsnooping环境中(部署在交换机上),我们将端口视为trust或untrust两种安全级别,也就是信任或非信任接口。在交换机上,将连接合法DHCP服务器的接口配置为trust。只有trust接口上收到的来自DHCPserver的报文(如DHCPOFFER、DHCPACK、DHCPNAK或者DHCPLEASEQUERY)才会被放行,相反,在untrust接口上收到的来自DHCPserver的报文将被过滤掉,这样一来就可以防止非法的DHCPserver接入。同时在部署了DHCPSnooping的交换机本地,还能维护一张DHCPsnooping的绑定数据库(bindingdatabase),用于保存侦听到的DHCP交互的表项,信息包括(针对untrust接口的):MAC地址、IP地址(DHCP分配的)、租期、绑定类型、VLAN号、接口编号(DHCP客户端也就是连接客户端PC的untrust接口)。这个DHCPsnoopingbindingdatabase除了可以做一些基本的安全接入控制,还能够用于DAI等防ARP欺骗的解决方案。
一台支持DHCPsnooping的交换机,如果在其untrust接口上,收到来自下游交换机发送的、且带有option82的DHCP报文,则默认的动作是丢弃这些报文。如果该交换机开启了DHCPsnooping并且带有option82的DHCP报文是在trusted接口上收到的,则交换机接收这些报文,但是不会根据报文中包含的相关信息建立DHCPbindingdatabase表项。
如果交换机确实通过一个untrust接口连接了下游交换机,并且希望放行该接口收到的、下游交换机发送出来的带有option82的DHCP报文,则可使用全局命令:ipdhcpsnoopinginformationoptionallow-untrusted,同时由于是通过untrust接口收到的DHCP报文,因此会根据侦听的结果创建DHCPsnoopingbindingdatabase表项。
DHCPSnooping案例配置拓扑
DHCPSnooping案例配置需求
1、配置PC1、PC2属于VLAN10;
2、在SW2上创建VLAN10,将F0/1、F0/2端口划分到VLAN10;
3、配置SW1F0/23和SW2F0/23为Trunk链路,封装协议使用dot1q;
4、配置SW2F0/1属于VLAN20;
5、配置SW2的VLAN10IP地址为192.168.10.254/24,VLAN20的IP地址为192.168.20.254/24;
6、配置DHCPServer地址为192.168.10.1,网关为192.168.20.254;
7、配置DHCPPOOL,为PC分配IP地址;
8、在SW2上启用DHCPSnooping,防止AttackerDHCP欺骗攻击;
DHCPSnooping案例配置思路
1、在SW2上创建VLAN10,并将F0/1、F0/2划分到VLAN10。
2、配置SW1F0/23和SW2F0/23为Trunk链路,封装协议使用dot1q。
3、配置SW2F0/1属于VLAN20。
4、配置SW2的VLAN10IP地址为192.168.10.254/24,VLAN20的IP地址为192.168.20.254/24。
5、配置DHCPServer地址为192.168.10.1,网关为192.168.20.254。
6、配置DHCPPOOL,为PC分配IP地址。
7、在SW2上启用DHCPSnooping,防止AttackerDHCP欺骗攻击。
8、配置PC,动态获取IP地址。
[1] DHCP Snooping配置明细 · 51CTO[引用日期2013-03-23]
Copyright 2023 fuwu029.com赣ICP备2022008914号-4