二层安全之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 浏览器自动解析数字为号码解决办法 在工作中遇到 ...
随机推荐
- 使用asp.net上传图片并且裁剪的方法
工欲善其事,必先利其器,坚持才能更好 这篇文章主要是强调怎么使用asp.net上传图片并且能够裁剪,这个功能主要使用在注册信息的时候需要上传头像并且图片格式很大的时候能够把图片裁剪成更小的图片.下面来 ...
- GridView中的超级链接技巧
GridView中的超级链接,可以设置一个模版列,放入超级链接的控件,设置绑定参数即可. 数据绑定方式有两种,如下示例: Eval方式 <%# Eval("id") %> ...
- iOS scrollView/tableView滚动到底部
//项目要求tableView滚动到底部就自动加载下一页,UITableView继承自UIScrollView 所以可以在//scrollViewDidEndDecelerating这个方法中进行判断 ...
- (已实现)相似度到大数据查找之Mysql 文章匹配的一些思路与提高查询速度
需求,最近实现了文章的原创度检测功能,处理思路一是分词之后做搜索引擎匹配飘红,另一方面是量化词组,按文章.段落.句子做数据库查询,功能基本满足实际需求. 接下来,还需要在海量大数据中快速的查找到与一句 ...
- linux下面的查找
locate: 速度快 不是实时的,每天定时执行把结果导入数据库 模糊匹配 updatedb --手动生成文件数据库,执行时间较长 find: 实时查找 ...
- mysql---union的用法
union的作用很简单用来合并两条sql的结果集 语法: SQL1 UNION SQL2 现有一张价格表 要求:求出价格低于2000和价格高于3000的商品,不能用or和not between--an ...
- jQuery.hhLRSlider 左右滚动图片插件
/** * jQuery.hhLRSlider 左右滚动图片插件 * User: huanhuan * QQ: 651471385 * Email: th.wanghuan@gmail.com ...
- Cassandra1.2文档学习(5)—— Snitch
参考资料:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/architecture/a ...
- VS2010开发环境最佳字体及配色方法
Fixedsys Excelsior 3.01 1. 首先下载字体:http://www.fixedsysexcelsior.com/ 脚本之家字体下载 2. 安装字体:control panel ...
- linux点滴:rsync
rsync(remote sync)是一款远程同步工具,可以实现全量备份.增量备份.本地备份.删除,核心功能是远程数据备份. 工作原理 rsync核心算法 1.分块checksum算法 首先,把文件平 ...