交换机的端口安全

本篇讲一下交换机的端口安全,虽然简单,但是在生活的运用极为常见,可以有效的保护我们的网络的安全。

端口安全

端口安全(Port Security),从基本原理上讲,Port Security特性会通过MAC地址表记录连接到交换机端口的以太网MAC地址(即网卡号),并只允许某个MAC地址通过本端口通信。其他MAC地址发送的数据包通过此端口时,端口安全特性会阻止它。使用端口安全特性可以防止未经允许的设备访问网络,并增强安全性。另外,端口安全特性也可用于防止MAC地址泛洪造成MAC地址表填满。
常见的端口安全有绑定其MAC地址,只允许本台物理设备访问网络,一般安全性较高的公司不允许私人电脑连接公司内网,即使连接上也是无法访问网络的。也有的限制其最大的连接数,当超过一定数量的MAC地址时,自动关闭端口来保护网络,这两种方法都能有效的防止MAC欺骗和泛洪攻击。

配置命令

SW1(config)#interface f0/1 //进入端口模式
 SW1(config-if)#switch mode access //把端口改为访问模式
 SW1(config-if)#switch port-security //打开交换机的端口安全功能
 sw03(config-if)#switch port-security maximum 3 // 设置端口上的最大同时连接数为 3
 R10(config-if)#mac-address 3.3.3 //修改MAC地址
 SW1(config-if)#switchport port-security violation restrict //修改violation方式为restrict 默认shutdown,还有protect模式可选。
 SW1(config-if)#switchport port-security mac-address 7.7.7 //将路由器f0/0 的mac地址绑定,静态绑定MAC地址

实例举例

grafana怎么查看交换机端口_网络


环境:R9、R10模拟PC,保证R9与R10能够互相通信,SW1作为交换机。

需求1:使用交换机端口安全技术,使得当R9的mac地址发生变化时,R9无法再次ping通R10。改回原来mac地址,恢复通信。

需求2:设置交换机e0/1端口上的最大同时连接数为 3,当连接数超过3时,R9无法与10通信。

需求3:修改violation方式,将SW1的e0/0修改成restrict,并且绑定mac地址7.7.7,将e0/1修改成protect,并且绑定mac地址8.8.8。配置:

底层配置,配置IP地址,这里不再介绍。

需求1:

先来看没配置之前的情况,SW1正常学习到R9与R10的mac地址,可以正常通信。

grafana怎么查看交换机端口_网络_02


配置端口保护:

SW1(config)#interface f0/1 //进入端口模式
 SW1(config-if)#switch mode access //把端口改为访问模式
 SW1(config-if)#switch port-security //打开交换机的端口安全功能配置完成,我们修改R9的mac地址
 R11(config)#int e0/0
 R11(config-if)#mac-address 1.1.1

这时候我们来查看访问情况和mac地址表

grafana怎么查看交换机端口_安全_03


grafana怎么查看交换机端口_安全_04


可以看到,现在R9已经ping通不了R10了,SW1的mac地址也随之变化,新的mac地址也无法被交换机学到。

现在,我们把mac地址重新改回来。

R11(config)#int e0/0
 R11(config-if)#mac-address aabb.cc00.9000

这时候我们会发现还是没有变化,理由是由于端口安全的配置,导致接口现在是err-disabled的双down情况,所以需要我们将接口shutdown,再 no shutdown 。

grafana怎么查看交换机端口_交换机_05


SW1(config)#int e0/1
 SW1(config-if)#shutdown
 SW1(config-if)#no shutdown这时后我们再来查看访问和mac地址表,

grafana怎么查看交换机端口_交换机_06


grafana怎么查看交换机端口_安全_07


成功恢复通信,到此,需求1满足需求。

需求2:

SW1(config)#int e0/0
 SW1(config-if)#switch mode access //把端口改为访问模式
 sw03(config-if)#switch port-security
 sw03(config-if)#switch port-security maximum 3 设置端口上的最大同时连接数为 3

配置完成,我们在R10修改mac地址为2.2.2和3.3.3

R10(config-if)#mac-address 2.2.2
 R10(config-if)#mac-address 3.3.3

此时来查看交换机MAC地址表

grafana怎么查看交换机端口_交换机_08

此时有MAC地址表有只有3个连接数,还是可以实现访问通信。

grafana怎么查看交换机端口_mac地址_09

再在R10修改mac地址为4.4.4

R10(config-if)#mac-address 4.4.4

此时来查看访问和MAC地址表,mac地址连接数已经超过了3个,所以触发端口安全,使得R9无法访问R10。

grafana怎么查看交换机端口_交换机_10


grafana怎么查看交换机端口_网络_11

到此,满足需求2的要求。

需求3:

SW1(config)#int e0/0
 SW1(config-if)#switchport port-security violation restrict //修改violation方式为restrict
 SW1(config-if)#switchport port-security mac-address 7.7.7 //然后将路由器f0/0 的mac地址绑定
 SW1(config)#int e0/0
 SW1(config-if)#switchport port-security violation protect //修改violation方式为protect
 SW1(config-if)#switchport port-security mac-address 8.8.8 //然后将路由器f0/0 的mac地址绑定

到此,满足全部需求。
补充:
1、protect 模式,当违规时,只丢弃违规的数据流量,不违规的正常转发,而且不会通知有流量违规,也就是不会发送SNMP trap ;
2、restrict , 当违规时,只丢弃违规的流量,不违规的正常转发,但它会产生流量违规通知,发送SNMP trap,并且会记录日志;
3、shutdown,这个是默认模式,当违规时,将接口变成error-disabled并shut down,并且接口LED灯会关闭,也会发SNMP trap,并会记录syslog。