netyourlife.net
DHCP Snooping
DHCP的工作流程:
1.主机向网络中发送广播包,用于确认是否存在DHCP服务器以及确认DHCP服务器的IP地址
2.各DHCP服务器向该主机回应,回应包里包括分配的各种信息
3.主机向中意的DHCP服务器发送request包
4.中意的DHCP服务器接收request包并回复ACK或NAK包,不中意的DHCP服务器删除第二步分配的信息
DHCP欺骗攻击的流程:
1.干掉服务器,向真正的DHCP服务器发送大量的请求包,耗尽它的地址池--DHCP饥饿攻击(因为当一个网络中有多个DHCP服务器时,客户端认第一个回应的,饥饿攻击确保攻击成功)
2.欺骗客户端,将其网关指向自己,跑软路由,实施中间人攻击
3.实施数据侦听、篡改、会话劫持
解决方案:
DHCP Snooping
1.开启DHCP Snooping后默认所有端口都是非信任端口,将连接DHCP服务器的端口设为信任端口。非信任端口不能接收DHCP的回应包
2.控制DHCP单位时间内的申请数量,防止饥饿攻击
配置:
ip dhcp snooping limit rate 2 3750接口下配接收DHCP申请的最大速率
show ip dhcp snooping
show ip dhcp snooping binding
在配置完DHCP snooping后,会强制在所有通过这台交换机发送的DHCP请求中插入一个82选项(中继代理选项--中继代理:跨VLAN申请DHCP的地址)。
因为请求包中含有82选项,造成DHCP服务器不回应此请求包。(必须关掉)
解决方案见 RSSEC.doc
所有通过该交换机的DHCP申请记录都会记录在binding表里。
ARP Control
解决方案:
ARP Inspection
1.开启ARP审查功能,通过对端口设定信任或非信任模式(默认非信任),丢弃非信任端口连接的设备发送的ARP数据包
2.限制各个端口在单位时间内向外发送的ARP数据包数量
ARP Inspection(ARP审查技术):防止ARP欺骗。分为DAI(动态ARP审查,需要DHCP环境,并且开启DHCP Snooping功能,因为要用到DHCP binding表)、SAI(静态ARP审查,可用在所有环境)。
show ip arp inspection
ARP审查只审查ARP过程
ErrDisable 接口的逻辑down
恢复必须得先shutdown,再no shutdown
可以设定自动恢复(全局模式下):
errdisable recovery cause ... interval ...
SAI的部署:
1.手工写ARP审查表
2.将写好的ARP审查表和指定VLAN绑定起来
DAI利用DHCP binding表,所以不用手工创建ARP审查表。所以只要ip arp inspection vlan 10就行。
接下来可以设置信任端口和各端口发送ARP数据包的数量/s
手动写dhcp binding表,可以达到下列目的:
一个端口下有多台主机,需要某些主机通过ARP审查或其它技术进行数据传输,某些则不需要。如果所有主机都配DHCP,则都过;如果都配静态,则都不过。
IP Source Address Control
IP Source Guard:若当前流量的接入端口 数据包的源IP地址和源MAC地址 跟DHCP Snooping binding表里一致的话,则转发,不一致则丢弃。
DHCP Snooping审查的是DHCP数据包,ARP Inspection审查的是ARP数据包,IP Source Address Control审查的是真正的用户数据包。
源IP地址过滤:根据IP地址对IP流量执行过滤,只有当源IP地址与IP源绑定条目匹配,IP流量才准许通过。
show ip verify source
这个表的生成完全是依托DHCP Snooping binding表
在DHCP Snooping的保护下,DHCP服务器能跟所有设备通信,顺利通过DHCP地址请求过程的设备也能跟其它设备通信,但是不是通过DHCP服务器申请的地址的设备无法与其它设备通信。
不但继承DHCP Snooping binding表,还继承DHCP Snooping的信任关系。信任的端口下的设备可以跟其它设备做通信。
一个端口下可以绑定多个主机,所以不一定要在接入端口部署此策略。
其原理是每当DHCP为用户分配一条表项时,动态绑定功能就相应地增加一条绑定表项以允许该用户访问网络。这样用户自己配IP地址流量就不能通过此交换机了。
PC没有发送DHCP请求时,其连接的交换机端口默认拒绝除了DHCP请求之外的所以数据包。
在IP+MAC模式下,端口安全的违规处理功能将被关上。对于非法的二层报文,都将只是被基本的丢弃。要防止ARP攻击,必须用DAI来处理。
配置见 RSSEC.doc
除了配置以上3种技术,还得配置port-security。port-security提供接入控制,可防止MAC flood。
STP 防护
把一个port设置了portfast,就是让那个port不再使用STP的算法。
portfast 的配置(接口模式):
spanning-tree portfast
BPDU guard的功能是当这个端口收到任何的BPDU就马上设为Error-Disabled状态。被网络设计者用来加强STP域边界。
BPDU guard的配置:
spanning-tree portfast bpduguard default 全局模式下配置,在启用了portfast特性的端口上启用BPDUguard
spanning-tree bpduguard enable 接口模式下配置,在没启用portfast特性的情况下启用BPDUguard
ROOT guard:防止新加入的交换机(有更低根网桥ID)影响一个已经稳定了(已经存在根网桥)的交换网络,阻止未经授权的交换机成为根网桥。
工作原理:当一个端口启动了此特性,当它收到了一个比根网桥优先值更优的BPDU包,则它会立即阻塞该端口,使之不能形成环路等情况。这个端口特性是动态的,当没有收到更优的包时,则此端口又会自己变成转发状态了。
ROOT guard在DP(designated port)指定端口上做,该端口就不会改变了,只会是DP了,这样可以防止新加入的交换机成为root,该端口就变成了永久的DP了。若新加入的交换机想成为root,则它的端口不能工作,直到这个新交换机委曲求全做RP为止。 show spanning-tree inconsistentport
ROOT guard 的配置(接口模式):
spanning-tree rootguard (3750:spanning-tree guard root)
必须在所有永远不成为根交换机上的所有接口上配置该特性。
BPDU Guard部署在交换机的各下连主机的端口,root guard部署在下连永远不会成为根交换机的端口。
RSSEC.doc: