• 二层安全之MAC Flooding解析与解决方法


    一、了解MAC Flooding原理

    1.1 如图所示,网络中有3个PC和一个交换机,在正常情况下,如果PC A向PC B发送信息,PC C是不会知道的,过程都通过中间的交换机进行透明的处理,并且会记录下源MAC地址和源端口的信息到交换机中,以便下次快速转发。

    mac_learning

      1.2 当攻击者PC C利用MAC flooding攻击对交换机发送很多非法的包含不同源MAC地址的封包时,交换机会把所有这些MAC地址记录到自己的CAM(Content Addressable Memory)表之中,当这些记录超过一定的数量(不同型号的机器不同,详情请查看文章最后),超过交换机所能承载的内存的时候,MAC flooding的效果就达成了。

    mac_flooding_attack

      1.3 当MAC flooding效果达成的时候,交换机就变成了集线器,对所有信息进行无定向广播,PC A 发送给PC B的信息PC C也可以收到了。这个时候PC C就可以捕获数据进行数据截取等操作。

    mac_flooding_attack_2

    二、解决方法-启用端口安全

    2.1 端口安全就是限制端口访问的MAC地址,具体操作步骤可以从以下几点去考虑

    • 启用端口安全 
    • 设置mac地址限制
    • 指定允许的MAC地址
    • 定义违规后的操作

    2.2 以思科交换机操作为例,在指定的端口上开启端口安全并且指定最大的MAC地址数量操作命令如下

    switch(config-if)#switchport port-security [maximum value] violation { protest | restrict | shutdown}

    2.3 简单拓扑示例图:

    2.4 Violation操作的三种方式:

    1. protect:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机将直接丢弃该报
    2. restrict:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机将直接丢弃该报,并向SNMP发送trap报文
    3. shutdown:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机端口直接变为errdisable状态,并向SNMP发送trap报文

    三、详细步骤 

    3.1 开启交换机端口交换模式

    命令解析:

     3.2 MAC 地址绑定策略,非法数据包处理策略

    命令解析:

    四、检查端口安全设置情况

    4.1 show port-security

    由下图可以看到,当前设置为允许最大mac连接数为2,当前连接数为1台mac,同时定义违规后的

    操作动作为Protect。

    4.2 show port-security address

    显示MAC地址表的安全信息

     

    部分参考:

     http://www.xiaopeiqing.com/posts/1439.html

  • 相关阅读:
    python 全栈开发,Day67(Django简介)
    python 全栈开发,Day66(web应用,http协议简介,web框架)
    python 全栈开发,Day65(MySQL练习题,参考答案)
    python 全栈开发,Day65(索引)
    python 全栈开发,Day64(视图,触发器,函数,存储过程,事务)
    python 全栈开发,Day63(子查询,MySQl创建用户和授权,可视化工具Navicat的使用,pymysql模块的使用)
    *** 安全沙箱冲突 *** 到 127.0.0.1:9999 的连接已停止
    PosPal银豹收银系统
    m3u8文件简介
    flashbuilder发布release版本
  • 原文地址:https://www.cnblogs.com/tdcqma/p/5519316.html
Copyright © 2020-2023  润新知