Sw-port-security  交换机端口安全

1什么是交换机端口安全

  当一个网络的接入层固定下来了后,针对接入层设备上的接口做MAC管理,

2具体有什么用?

 针对于非法的MAC,直接将端口进行disable

3应该配置在哪里?

 配置在所有的ACCESS接口,也就是所有连接终端的接口上(所以第一步要将接口模式设置成ACCESS),不管是PC还是server

下面我们用实例来进行讲解具体的过程

 

prometheus 监控交换机端口状态变化_php

 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之后,咱们就要用实验来看一下是否真的生效

 

prometheus 监控交换机端口状态变化_网络_02

 这是R2正确的MAC

现在我们改一下MAC地址,看会怎么样?

 

prometheus 监控交换机端口状态变化_重启_03

 

prometheus 监控交换机端口状态变化_开发语言_04

 刚刚修改完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就可以进行开启

 

prometheus 监控交换机端口状态变化_php_05

 为什么shutdown,再no shudown后就可以开启了呢?

前边也提到过,这一操作等于是重新插拔网线,或者你也可以认为是将交换机重启了,

重启后学习到了新的MAC地址,尽管这个MAC是非法的。

那有没有一种办法让交换机及时重启也无法允许非法的MAC 呢?~当然有

Stiky(粘滞)

先确认一下是否和R1进行通信,

 

prometheus 监控交换机端口状态变化_安全_06

 好 ,现在开启基于粘滞的端口安全 



 

prometheus 监控交换机端口状态变化_php_07

 测试

 

prometheus 监控交换机端口状态变化_安全_08

会发现,即使是人为的将端口进行shutdown ,再noshutdown,也是无济于事,

端口根本就无法打开,

这时,只有将携带有正确的MAC地址主机插进来才可以,(当然还是要手动开启)

那么有一个问题会产生,如果说当这台主机出现故障,临时有一台新的机器用做办工,那还是不能上网的,

对于这个问题,有一种解决办法,就是允许不只一台合法的MAC使用该接口

Maximun  < 1-4097 >

 

prometheus 监控交换机端口状态变化_php_09

这条命令是允许最多两个合法的MAC进行通行,超过2个,都不行

prometheus 监控交换机端口状态变化_重启_10

测试

 

prometheus 监控交换机端口状态变化_安全_11

 

prometheus 监控交换机端口状态变化_重启_12

 交换机也是允许的,而且显示total mac address 也是两个,最后一个使用的正是我们刚改的

再加一个试试

 

prometheus 监控交换机端口状态变化_重启_13

prometheus 监控交换机端口状态变化_重启_14

 直接就会被SW端口安全干掉,

 

prometheus 监控交换机端口状态变化_php_15

这里显示的惩罚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

 

prometheus 监控交换机端口状态变化_安全_16

 此时,只要是换回原来交换机认为的正确MAC,就会将接口开启,要不然就一直DOWN

 

prometheus 监控交换机端口状态变化_安全_17

改好MAC后,回到交换机上,看结果,到了一个时间周期之后,还真的开启了,

No problem,

 

prometheus 监控交换机端口状态变化_重启_18

 最后一次使用的MAC ,也正是R2自己本身的MAC。

port-security在实际项目中也是应用的很频繁,基本上配置好以后,每个端口给两个MAC的范围,就没有问题了,(考虑到后期临时更换设备或其它一些原因,一定要留也一些空间)

-----------------------------------------------