Sw-port-security 交换机端口安全
1什么是交换机端口安全
当一个网络的接入层固定下来了后,针对接入层设备上的接口做MAC管理,
2具体有什么用?
针对于非法的MAC,直接将端口进行disable
3应该配置在哪里?
配置在所有的ACCESS接口,也就是所有连接终端的接口上(所以第一步要将接口模式设置成ACCESS),不管是PC还是server
下面我们用实例来进行讲解具体的过程
SW在不做任何配置的情况下,R1和R2是通信正常的
这里需要注意一下,什么时候PC会修改自己的MAC 呢?
ARP攻击,PC中招以后,会疯狂的发送自己被修改过的MAC地址,从而导致网络瘫痪。所以要杜绝PC自己改MAC ,但是如果换一台设备呢?(需要注意的是,默认情况下开启的端口安全,重新插拔网线,等同于是将端口/设备重启,之前的惩罚也就无效了,因为交换机学习了新的MAC)
1 现在开启SW1 上的E0/1口的port-security
sw1(config)#inter e0/1
sw1(config-if)#switchport port-security
查看交换机上的port-security 接口配置情况
Show port-security
sw1#show port-security
Secure Port MaxSecureAddr CurrentAddr SecurityViolation Security Action
(Count) (Count) (Count)
---------------------------------------------------------------------------
---------------------------------------------------------------------------
Total Addresses in System (excluding one mac per port) : 0
Max Addresses limit in System (excluding one mac per port) : 4096
查看单一接口的port-security 配置情况
sw1#show port-security inter e0/1
Port Security : Disabled ///显示关闭,需要排查一下E0/1的接口状态
Port Status : Secure-down
Violation Mode : Shutdown
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1
Total MAC Addresses : 0
Configured MAC Addresses : 0
Sticky MAC Addresses : 0
Last Source Address:Vlan : 0000.0000.0000:0
Security Violation Count : 0
这是因为交换机的接口模式没有改变,必须要改成ACCESS模式才可以
sw1(config)#inter e0/1
sw1(config-if)#sw m a
sw1(config-if)#switchport port-security
sw1(config-if)#end
sw1#show port-security inter e0/1
Port Security : Enabled ///确认为开启状态
Port Status : Secure-up
Violation Mode : Shutdown ///惩罚措施 动作为关闭模式
Aging Time : 0 mins
Aging Type : Absolute
SecureStatic Address Aging : Disabled
Maximum MAC Addresses : 1 ///最大允许的MAC白名单数量
Total MAC Addresses : 1
Configured MAC Addresses : 0 ///配置的IP
Sticky MAC Addresses : 0 //粘滞的MAC,重启还在
Last Source Address:Vlan : c202.4276.0000:1 ///最后一个使用的MAC
Security Violation Count : 0 ///惩罚过的数量
那么开启security之后,咱们就要用实验来看一下是否真的生效
这是R2正确的MAC
现在我们改一下MAC地址,看会怎么样?
刚刚修改完MAC地址,交换机上就已经有了提示信息,
%PM-4-ERR_DISABLE: psecure-violation error detected on Et0/1, putting Et0/1 in err-disable state
由于触发了安全机制,导致E0/1口被置为err-disable状态,而且还是”双down”
还是很有效的嘛~
那端口被down掉了,该如何修复 呢?
答:将端口shutdown,然后再no shutdown就可以进行开启
为什么shutdown,再no shudown后就可以开启了呢?
前边也提到过,这一操作等于是重新插拔网线,或者你也可以认为是将交换机重启了,
重启后学习到了新的MAC地址,尽管这个MAC是非法的。
那有没有一种办法让交换机及时重启也无法允许非法的MAC 呢?~当然有
Stiky(粘滞)
先确认一下是否和R1进行通信,
好 ,现在开启基于粘滞的端口安全
![](https://i-blog.csdnimg.cn/blog_migrate/68f724bad5a33d9a9f6bd2ca7369ecb7.gif)
测试
会发现,即使是人为的将端口进行shutdown ,再noshutdown,也是无济于事,
端口根本就无法打开,
这时,只有将携带有正确的MAC地址主机插进来才可以,(当然还是要手动开启)
那么有一个问题会产生,如果说当这台主机出现故障,临时有一台新的机器用做办工,那还是不能上网的,
对于这个问题,有一种解决办法,就是允许不只一台合法的MAC使用该接口
Maximun < 1-4097 >
这条命令是允许最多两个合法的MAC进行通行,超过2个,都不行
测试
交换机也是允许的,而且显示total mac address 也是两个,最后一个使用的正是我们刚改的
再加一个试试
直接就会被SW端口安全干掉,
这里显示的惩罚1个,最后一次使用的是DDFF,也正是我们刚才修改过的
经过测试完全没有问题
但是又有一个新的问题出现了,
如果是一个接口还好,那么对于一个网络中,存在着上百个接口,或者更多的时候,就不应该需要 过多的人为干预,应该能够让设备自己进行恢复
Errdisable recovery
在规定的时间内,进行检测,如果是不合法的,则一直关闭,如果是合法的,就开启接口,
这样一来,就省事儿多了
配置(在且局模式下进行配置)
1 默认的恢复检测时间是300s,有些长,需要进行修改,改为30S好了
Sw(config)#errdisable recovery interval <30-86400> //这里咱们改最短的30s
2 指定一下,由于触发端口安全的一项(psecure-vioation)而被errdisable的接口允许自动恢复
Sw(config)#errdisable recovery cause psecure-violation
查看恢复配置的具体信息和检测倒计时(因为是同期性的,所以每隔固定时间就会检测是否为合格的MAC)
Sw#show errdisable recovery
此时,只要是换回原来交换机认为的正确MAC,就会将接口开启,要不然就一直DOWN
改好MAC后,回到交换机上,看结果,到了一个时间周期之后,还真的开启了,
No problem,
最后一次使用的MAC ,也正是R2自己本身的MAC。
port-security在实际项目中也是应用的很频繁,基本上配置好以后,每个端口给两个MAC的范围,就没有问题了,(考虑到后期临时更换设备或其它一些原因,一定要留也一些空间)
-----------------------------------------------
CCIE成长之路----梅利