二层攻击之:mac层攻击

原理:交换机的MAC地址列表(也叫做CAM列表)填满后,交换机此时就像一个集线器,收到的流量数据帧会被泛洪到所有端口。

攻击方法:入侵者在PC上利用工具使大量无效源MAC地址向交换机泛洪,从而交换机MAC地址列表(也叫做CAM列表)填满。从而达到收集流量样本,或者为了发起DOS(拒绝服务)攻击。

影响:1、合法的PC(mac地址)无法在交换机的CAM列表上注册;2、交换机转发速率降低;3、入侵者可以连接任意交换机端口,并截获平常无法收到的流量。


解决方法:

既然入侵者是利用交换机CAM列表有限的MAC数量来攻击,那么我们可以限制交换机端口的PC(mac地址)接连数量,达到安全防护作用。如下例:

二层攻击之:mac层攻击_第1张图片

交换机SW0在初始状态或MAC地址列表老化后,即便SW0还接有设备,但MAC地址依然什么都没有,如下

Switch#sh mac-address-table 
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
Switch#

当设备有数据交换时,交换机的CAM再重新建立对应的mac条目。


入侵者PC其实就像一个接有大量PC的交换机,所以上例中将SW1模拟成入侵者的PC接入到SW0的FA0/1接口上,入侵者利用工具将大量无效的MAC地址泛洪到SW0交换机CAM列表上,从而查看sw0交换机MAC列表会查看端口FA0/1有大量MAC地址连接,如下:

Switch#sh mac-address-table 
          Mac Address Table
-------------------------------------------
Vlan    Mac Address       Type        Ports
----    -----------       --------    -----
   1    0001.6301.a53d    DYNAMIC     Fa0/24
   1    0001.96e4.1303    DYNAMIC     Fa0/1
   1    0002.4a7a.2c01    DYNAMIC     Gig1/1
   1    0009.7c15.a984    DYNAMIC     Fa0/1
   1    0030.f222.7833    DYNAMIC     Fa0/1
   1    0060.70be.510a    DYNAMIC     Fa0/1
   1    00d0.d3b5.b2c3    DYNAMIC     Fa0/1
   1    00e0.f975.2b56    DYNAMIC     Fa0/2
Switch#

可以查看到接口FA0/1有大量的MAC条目(假设已填满),那么入侵者的二层攻击已达到。

要保护CAM列表被填满,我们可以启用端口安全配置,比如,限制端口MAC接连数量,默认情况下只能连接1个MAC,超过1个会使端口down掉,所以交换机就无法连接上工作了。

Switch(config-if)#switchport mode access 

Switch(config-if)#switchport port-security 

启动默认接口安全配置后,sw0接口FA0/1因多个MAC地址请求而down掉,出现这种情况时,使用no shutdown直接启动接口是无效的,要先shutdown之后再no shutdown才起作用。

二层攻击之:mac层攻击_第2张图片


为了让第一个MAC能正常工作,不会因后面的多个MAC地址请求影响,可以配置如下

Switch(config-if)#switchport port-security violation restrict

这样子配置后,可以防止交换机的接入了,而入侵者就无法攻击cam列表填满,在频繁PC流动接入场所,这种方法已经很安全,但此时入侵者还可以在短时间内使用不同的MAC地址访问,所以建议在比较固定的PC接入场所,可以将接口与MAC地址静态绑定,以下这命令可以将第一次接入的MAC地址自动与接口绑定,交换机重起后也不会改变,省去管理员一一动手绑定。

Switch(config-if)#switchport port-security mac-address sticky 

到此交换机CAM攻击解决。

默认情况下交换机若不知道所收数据饭目的MAC地址,它就会向接收端口所属VLAN中的所有端口进行泛洪,为了使交换机性能提高,防止一些数据包泛洪到不必要的接口,增强了网络的安全性,同时避免网络设备处理非定向数据包,可以在必要的接口上阻塞单播的泛洪,那么在启用安全接口且配置了MAC地址或者已学习到最大数量的MAC地址后,它就不会接收未知单播泛洪了。

阻塞单播泛洪:

switchport block unicast






你可能感兴趣的:(路由/交换)