针对交换网络的攻击方式主要有四种:Mac层攻击 Vlan攻击 欺骗攻击 攻击交换机设备
1.Mac地址泛洪攻击
Hack向所连接的接入层SW发大量的数据帧,帧中封装的都是无效的源Mac,这样不断的去刷SW的CAM表,使其溢出且充斥着无用的CAM条目,无法为其他主机正常转发数据。
解决办法:端口安全(Port Securuity),首先定义允许的Mac,可以是明细的Mac地址(需手动配置)或者允许的地址个数,然后定义违反以上Mac地址后采取的动作,二层上关闭端口(err-Disabled)或者丢弃数据帧。
为了省去挨个手动配置允许的Mac地址的麻烦(在园区网中这是个重活儿~),又不想只基于Mac地址个数做控制,就可以利用Sticky特性,比如我就允许学习到5个,那么学到的这5个Mac地址我都记住,就这5个明细Mac,别的再来也不会刷掉。
2.Vlan跳跃攻击
攻击方式1:Hack伪装自己的网卡为一个Trunk协商端口,在没有关闭DTP的情况下协商成功,Hack就会获得访问所有Vlan的渠道。
解决办法:关闭DTP协议,手动配置Trunk
攻击方式2:Hack对自己的数据帧打上双层标签,外面封一层Native Vlan,里面封一层要访问的Vlan ID,这样在数据帧进入到直连的SW时,Native Vlan的标签会被剥去(SW默认的动作),然后发出去,这样就可以实现跨Vlan的访问。
解决办法:1)VACL,即Vlan ACL,把问题放到三层上来解决 2)PVlan,私有Vlan,实现的层面更低一些。
3.DHCP欺骗
Hack利用DHCP软件冒充DHCP服务器,给园区网中的客户分配IP地址(终端的OS一般都会支持自动获取IP),自己就成为第一道网关,这样所有流量都要先经过Hack再到真正的网关出口,Hack就可以有些动作,比如窃取或破解。
解决办法:DHCP侦听+源保护 DHCP侦听是将交换机的端口分为信任和不信任两种,比如接PC的端口就是不信任的,如果从这样的端口接受到DHCP应答就直接丢弃掉,因为DHCP Server应该在信任的端口上,且只有DHCP Server才该发应答消息。
IP源保护(IPSG)在启用后,一开始只允许DHCP数据包通过,直到分配了IP地址,会基于端口建立绑定,即这个端口下连的主机都是什么Mac地址,分配到的IP地址有哪些,然后自动在这个接口加载基于端口的VACL,一旦有来自其他IP地址的上行流量,全部过滤掉。
IPSG的具体实现上需要DHCP侦听开启Option 82功能来区分用户,协助建立绑定,每一个客户向Server发送DHCP请求时会经过我这台SW,我就打上Option 82标记来区分不同的客户,在收到Server的DHCP应答(该应答会有同样的Option 82标记)时,再去掉该标记。
4.ARP欺骗
ARP欺骗十分普遍,就是中间人攻击,用伪造的广播ARP响应消息来响应ARP请求,从而成为网关,这样不仅可以Hackin一下还能进行限速,网上流传的P2P限速软件都是基于这个原理。
解决办法:动态ARP检测(DAI),DAI启用的先决条件是启用了DHCP侦听或手动配置(其实依赖的是那些映射条目,Mac-IP-Port),将Trunk设置为DAI信任端口,用户端口设置为DAI非信任端口,若从非信任端口收到ARP响应则进行排查,Hack发的ARP响应映射的是别人的IP和自己的Mac,很明显不会通过,SW同时也会使这个接口进入err-disabled状态。
5.STP安全
很多Hacker利用STP的特性攻击交换网络,攻击途径是以主机或者交换机参与BPDU传递和根桥选举,破环原有的STP网络拓扑,所以重点防御区域是在接入层,同时我们也要注意由于物理故障导致的STP环路。
1.BPDU Guard 在Port Fast上启用,如果从该端口收到BPDU,端口立即进入err-disabled状态,并设置计时器,超时后恢复。
2.BPDU Filtering 在Port Fast上启用,从该接口收到的BPDU全部丢弃,针对Port Fast端口就上述这两种技术,相较之下Guard 比Filtering 更为坚决一些。
3.Root Guard 根防御,不允许新接入的SW的端口成为根端口,只能是指定端口,这项技术是防止新添的SW成为根桥,破坏原有的拓扑。
4.Loop Guard 环防御,硬性规定即使不收到对方的BPDU,也不能开启BLK口,要注意的是开启了Loop Guard的端口不能开启Root Guard。
Loop Guard 保证Root 端口和BLK端口从指定端口那里接收BPDU,如果有端口停止接收了,就会将该端口置为“Loop-inconsistent Blocking“状态。
5.UDLD 单边链路检测,多用于光纤链路,链路里的线可以简化成两根,一根发信号,一根收信号,启用UDLD后,SW会自己检测链路,周期性发信号看时候能返回,发现不能返回就Shutdown掉,UDLD和Loop Guard启用一种就可以了。
6.三种认证
AAA认证: AAA Server就是在服务器上装个AAA软件,实现认证,授权和审计,支持的协议有RADIUS和TACACS+,这两种方式需要SW连接相应的RADIUS Server和TACACS+ Server,通过Server中的数据库对用户进行认证,另外的两种方式是No Authentication(就是没有认证)和Local database(不借助于Server,自己在SW上建立数据库,认证工作在SW上完成)。
802.1x认证:主机通过SW访问网络要求先通过认证,专业的讲,802.1x只允许EAPOL(LAN上的可扩展验证协议)信息流通过端口,若没能通过就只是物理层上的连接,链路层上是关闭的,同样,802.1x也需要RADIUS Server的介入来实现。
PPPOE认证: PPPOE和802.1x差不多,实现上有一些区别,802.1x是在以太网上封装IP报文,所以认证是在以太网层面完成的,PPPOE是在以太网上封装PPP再封装一层IP,所以认证是在PPP层面完成的,利用的是PPP的认证功能。
本文出自 “Steven.Q的学习笔记” 博客,谢绝转载!