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

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

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

二、解决方法-启用端口安全
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操作的三种方式:
- protect:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机将直接丢弃该报
- restrict:如果MAC地址超过定义数量(默认为1),则新的无定义源MAC地址的封包进入交换机,交换机将直接丢弃该报,并向SNMP发送trap报文
- 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
二层安全之MAC Flooding解析与解决方法的更多相关文章
- Mac mysql安装失败解决方法
在mac终端通过命令安装mysql,提示错误,解决方法如下: (1)安装命令:brew install mysql (2)提示错误: Error:Could not create /usr/local ...
- ORA-14452的出现原因解析及解决方法
在删除临时表时遇到了ORA-14452错误:ORA-14452: attempt to create , alert or drop an index on temporary table alrea ...
- UBUNTU 无法解析域名 解决方法
莫名其妙的,ubuntu 无法访问外网. ping www.taobao.com www.baidu.com 提示无效的主机名 但是ping 外网ip 都是可以PING通的. 所以断定是 dns问题 ...
- 转载-MAC Mysql中文乱码解决方法
相关链接: http://www.siguoya.name/pc/home/article/235 如有,有问题可以留言.
- CentOS6.5 ssh远程连接缓慢解决方法
UseDNS no GSSAPIAuthentication no 1.适用命令及方案如下:[远程连接及执行命令]ssh -p22 root@10.0.0.19ssh -p22 root@10.0.0 ...
- Validation of viewstate MAC failed. 解决方法
前段时间公司为了减轻服务器压力,对网页做了集群,分布在多台服务器,通过DNS轮回解析到各台服务器,结果页面只要打开停留到DNS解析到下一个地址,就会出现出下错误信息. Validation of vi ...
- mac,/usr/local is not writable 解决方法
mac,/usr/local is not writable 解决方法 mac 问题 今天在mac上装mongodb,发现提示权限不足问题,错误提示如下: mac安装mongodb错误提示.jpg 尝 ...
- 未能解析目标框架“.NETFramework,Version=v4.0”的 mscorlib的解决方法
本人菜鸟一个,在编码过程中遇到的问题记录下以备忘,高手别笑.最近在做一个项目,公司的VS版本是2010,家里的VS版本是2012.把公司的项目用2012打开后再用2010打开就出现 未能解析目标框架“ ...
- iphone 浏览器自动解析数字为号码解决方法
iphone 浏览器自动解析数字为号码解决方法 www.MyException.Cn 网友分享于:2015-10-09 浏览:0次 iphone 浏览器自动解析数字为号码解决办法 在工作中遇到 ...
随机推荐
- Move can only be called on an active agent that has been placed a Navmesh的解决办法
这是虽然将场景物体添加了Nav Mesh,但是没有进行Bake(烘焙)导致的. 在网上查了 很多久,都没解决这个error,最后发现是因为在unity4.6以下版本中,Bake是Navigation下 ...
- NOIP(提高组)DAY1国王游戏
问题描述 恰逢H国国庆,国王邀请n位大臣来玩一个有奖游戏.首先,他让每个大臣在左.右手上面分别写下一个整数,国王自己也在左.右手上各写一个整数.然后,让这n位大臣排成一排,国王站在队伍的最前面.排好队 ...
- 用分治法实现大数乘法,加法,减法(java实现)
大数乘法即多项式乘法问题,求A(x)与B(x)的乘积C(x),朴素解法的复杂度O(n^2),基本思想是把多项式A(x)与B(x)写成 A(x)=a*x^m+b B(x)=c*x^m+d 其中a,b,c ...
- KMP的模版实现(以hdu1711为例)
贴代码,觉得带template的有一些大材小用……不过还是按自己风格写吧! /************************************************************* ...
- html5绘制折线图
html5绘制折线图详细代码 <html> <canvas id="a_canvas" width="1000" height="7 ...
- HttpWebRequest中的KeepAlive
一直不是非常理解.NET中HttpWebRequest的KeepAlive属性有何用处,看了这篇文章就清楚了! http://www.cnblogs.com/lwzz/archive/2011/08/ ...
- Class.forName、Class.class(属性)、getClass()的区别
1.出现的时期不同:Class.forName()在运行时加载:Class.class和getClass()是在编译器加载2.Class.class只是在编译时用来存放类的相关信息,并没有实例化对象: ...
- PHP中进制之间的互相转换
常见的进制: 二进制 binary -----> bin 八进制 octal -----> oct 十进制 decimal -----> dec 十六进 ...
- 会话控制:cookie和session基础学习笔记
在多次HTTP连接间维护用户与同一用户发出的不同请求之间关联的情况称为维护一个会话(session) 我们可以简单理解为浏览器的开关. 其实对cookie和session也是主要为curd操作 coo ...
- 【8】了解Bootstrap栅格系统基础案例(3)
这次我们来说下列偏移: 列偏移就是使用 .col-md-offset-* 类可以将列向右侧偏移.这些类实际是通过使用 * 选择器为当前元素增加了左侧的边距(margin).例如,.col-md-off ...