本文为书中相关知识的摘要,由于书中以思科设备为配置依据,所以笔记中补充了华为、H3C设备的相关配置。华为设备配置参考华为S2352EI 产品版本:V100R005C01文档版本:02。  H3C配置参考S7600系列文档(资料版本:6W102-20130226 产品版本:S7600系列—Release 6701及以上版本  S7600-X系列 —Release 6901及以上版本 )。
 
一、MAC地址泛洪攻击
通过填满MAC地址表 (桥接表) 导致同一网段内设备之间通讯无法单播,只能通过未知单播泛洪来进行通讯。从而达到窃听信息的目的。
 
解决方法
(1)探测MAC Activity (MAC活跃性)    无实际防护作用,仅对用户通告相关告警
 
Cisco: mac-address-table notification mac-move
H3C: MAC Information   类似于思科的相关探测MAC活跃性的作用。仅用户通过告警。感觉没什么实质意义。
 
(2)Port security (端口安全)  如果使用软件进程来完成相关port security 功能则CPU利用率将会被大量占用。如果基于硬件速率限制则不会。
 
Cisco:   show port-security interface f8/4 查看端口
            show port-security address         查看被保护的MAC地址
            (书上对配置没有详细描述,我对思科设备配置不是很熟悉所以希望大家帮忙补充)
华为:
        接口MAC学习数量限制配置
 
- 执行命令interface interface-type interface-number,进入接口视图。
 
- 执行命令mac-limit maximum max-num,限制接口的MAC地址学习数量。
 
- 缺省情况下,不限制MAC地址学习数量。
H3C的区别,配置接口最多可以学习到的MAC地址数   mac-address max-mac-count  count
 
- 执行命令mac-limit alarm { disable | enable },配置当MAC地址数量达到限制后是否进行告警。
 
- 缺省情况下,对超过MAC地址学习限制的报文进行告警。
执行命令display mac-limit,可以查看MAC地址学习限制的配置是否正确。
 
        接口MAC安全配置    (我认为此配置可较好的解决相关问题,周鹏)
           进入相关接口
             1、 port-security enable
                   使能接口安全功能
 
             2、 port-security mac-address sticky
                   使能接口Sticky MAC功能。
 
             3、   port-security protect-action { protect | restrict | shutdown }
                   配置接口安全功能的保护动作。
protect      当学习到的MAC地址数达到接口限制数时,接口将丢弃源地址在MAC表以外的报文。
restrict      当学习到的MAC地址数达到接口限制数时,接口将丢弃源地址在MAC表以外的报文,同时发出trap告警。
shutdown  当学习到的MAC地址数达到接口限制数时,接口将执行shutdown操作。
 
             4、 port-security max-mac-num max-number
                   配置接口MAC地址学习限制数。
 
           可选 port-security mac-address sticky [ mac-address vlan vlan-id ]   手动配置一条sticky-mac表项。
 
   H3C的配置与华为基本相同。功能亦相同。再次不做赘述。
   PS:H3C的文档易读性明显不如华为做的好。同样的内容花了我很多时间去找。 
 
 注意事项:
1、执行命令port-security aging-time time ,配置接口学习到的安全动态MAC地址的老化时间。
2、使能接口安全功能后,缺省情况下,接口学习的安全动态MAC地址不老化。若只启用接口安全功能 则 设备重启后安全动态MAC地址会丢失,需要重新学习。
3、Sticky MAC的主要作用是将接口学习到的动态MAC地址转换成静态MAC地址,可以理解为将MAC地址黏在接口上。当接口学习的最大MAC数量达到上限后,不再学习新的MAC地址,只允许这些Sticky MAC和交换机通信。这样一可以避免在设备重启后动态MAC丢失需要重新学习,二可以阻止其他非信任的MAC主机通过本接口和交换机通信。
 
(3)未知单播泛洪保护(unkonw unicast flooding protection)
CISCO:  Router(config)# mac-address-table unicast-flood limit 3 vlan 100 filter 5
               limit限制每个源MAC地址以及每个VLAN的每秒单播泛洪个数. filter值规定了对单播泛洪流量进行多次实践的过滤。 除了filter 还有 alter(告警)         shutdown关闭端口 两个值可选。
               Router #    show mac-address-table  unicast-flood
 
其他方法:
禁止MAC地址学习    使用纯静态MAC表进行转发。MAC表中没有的则直接丢弃
mac-address learning disable 可在端口或VLAN中禁用
 
执行命令drop illegal-mac enable,配置S2352EI设备丢弃全0非法MAC地址报文。
 
缺省情况下,S2352EI设备没有配置丢弃全0非法MAC地址报文的功能

黑客精神不灭,自由意志永存。 

本文同时发在了通信人家园论坛:http://www.txrjy.com/thread-723472-1-1.html

交换机安全学习笔记 第二章 MAC地址泛洪攻击的更多相关文章

  1. 《DOM Scripting》学习笔记-——第二章 js语法

    <Dom Scripting>学习笔记 第二章 Javascript语法 本章内容: 1.语句. 2.变量和数组. 3.运算符. 4.条件语句和循环语句. 5.函数和对象. 语句(stat ...

  2. The Road to learn React书籍学习笔记(第二章)

    The Road to learn React书籍学习笔记(第二章) 组件的内部状态 组件的内部状态也称为局部状态,允许保存.修改和删除在组件内部的属性,使用ES6类组件可以在构造函数中初始化组件的状 ...

  3. [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的“HT”

    [HeadFrist-HTMLCSS学习笔记]第二章深入了解超文本:认识HTML中的"HT" 敲黑板!!! 创建HTML超链接 <a>链接文本(此处会有下划线,可以单击 ...

  4. Mac地址泛洪攻击的防御措施和具体配置

    Mac地址泛洪攻击指的是:利用交换机的mac地址学习机制,攻击者不断地刷新mac地址,填满交换机的mac地址表,以致崩溃,使交换机不得不使用广播发包,从而获取其他人的报文信息. mac地址泛洪攻击的防 ...

  5. 分分钟学会系列:mac地址泛洪攻击实验

    一.实验目的: 通过实战深入理解mac地址泛洪攻击的原理. 二.实验原理: 交换机中有一张非常重要的表,叫做mac表,这个表是一个硬件组成的表,主要是完成快速转发.mac表有大小限制,不同的交换机的m ...

  6. mac地址泛洪攻击的实验报告

    案例介绍: PC A 访问 本网络的一台FTPserver主机,中间人进行arp的投毒,获取PC-A和FTPserve之间的回话记录,截获用户名和密码. 实验拓扑:

  7. [HeadFirst-JSPServlet学习笔记][第二章:高层概述]

    第二章:高层体系结构 容器 1 什么是容器? servelet没有main()方法.它们受控于另一个Java应用,这个Java应用称为容器(Container) Tomcat就是这样一个容器.Web服 ...

  8. c#高级编程第七版 学习笔记 第二章 核心c#

    第二章 核心C# 本章内容: 声明变量 变量的初始化和作用域 C#的预定义数据类型 在c#程序中使用条件语句.循环和跳转语句执行流 枚举 名称空间 Main()方法 基本的命令行c#编译器选项 使用S ...

  9. 《Python基础教程(第二版)》学习笔记 -> 第二章 列表和元组

    本章将引入一个新的概念:数据结构. 数据结构是通过某种方式阻止在一起的数据元素的集合,这些数据元素可以是数字或者字符,设置可以是其他数据结构. Python中,最基本的数据结构是序列(Sequence ...

随机推荐

  1. jdk8流list转Map

    /** * */ package com.chuanglan.demo; import java.util.ArrayList; import java.util.Arrays; import jav ...

  2. Junit 4测试框架使用

    断言是编写测试用例的核心实现方式,即期望值是多少,测试的结果是多少,以此来判断测试是否通过. 断言核心方法 assertArrayEquals(expecteds, actuals) 查看两个数组是否 ...

  3. “==”与equals方法

    “==”操作符 基本类型比较值:判断两个变量的值相等. 引用类型比较引用(是否指向同一个对象):只有指向同一个对象时才相等. 用“==”进行比较时,两边的数据类型必须兼容(可自动转换的基本数据类型除外 ...

  4. [Linux系统] (4)脚本编程

    一.bash shell 可以理解为一种解释器和启动器,解释命令文本,并执行命令. 命令来源: 用户交互输入 文本文件输入 1.示例,写一个最简单的文本 vi test.txt 写入以下内容: ech ...

  5. JavaScript 的定时(Timing )事件——setTimeout()与setInterval()

    JavaScript 可以在时间间隔内执行,这就是所谓的定时事件( Timing Events). ㈠Timing 事件 ⑴window 对象允许以指定的时间间隔执行代码,这些时间间隔称为定时事件. ...

  6. 51 Nod 1627瞬间移动(插板法!)

    1627 瞬间移动  基准时间限制:1 秒 空间限制:131072 KB 分值: 80 难度:5级算法题  收藏  关注 有一个无限大的矩形,初始时你在左上角(即第一行第一列),每次你都可以选择一个右 ...

  7. Android的SQLite基本操作

    涉及SQLite的增删改查,结果用log显示 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 ...

  8. Springboot(九).多文件上传下载文件(并将url存入数据库表中)

    一.   文件上传 这里我们使用request.getSession().getServletContext().getRealPath("/static")的方式来设置文件的存储 ...

  9. TensorFlow写的神经网络不work的原因

    for epoch in range(training_steps): with tf.Session() as sess: sess.run(tf.global_variable_initializ ...

  10. 《信息安全系统设计基础》--Myod

    Myod 回顾Makefile 任务详情 复习c文件处理内容 编写myod.c 用myod XXX实现Linux下od -tx -tc XXX的功能 main与其他分开,制作静态库和动态库 编写Mak ...