端口安全简介
什么是端口安全
交换机中的端口安全(Port security)功能可以使你限制在端口上使用的MAC地址(称之为“安全MAC地址”)数,允许你阻止未授权MAC地址的访问,其实也就是通常所说的端口与MAC地址绑定。
交换机在转发数据包时,需要根据数据包的目标MAC地址来决定出口,因此,交换机会将MAC地址与相对应的接口记录在一张表中,以供转发数据包使用,这张表就是MAC地址表。在正常情况下,MAC地址表允许一个接口可以与多个MAC地址相对应,只要接口上有相应的MAC地址,那么数据包就可以从这个接口发出去。一个接口上对应着什么样的MAC地址,一个接口允许多少个MAC地址与之相对应,这都影响到交换机对数据的转发。为了让用户对交换机的MAC地址表有更高的控制权限,交换机接口上的Port Security功能提供更多的安全保护。
Port Security可以控制交换机上特定的接口与特定的MAC地址的对应关系,也可以限制接口上最大的MAC地址数量。
具有Port Security功能的接口,被称为secure port,secure port接口上通过控制数据包的源MAC地址来控制流量,绝不会转发预先定义好的MAC地址之外的流量。准确地说,是secure port只转发合法的流量,对于违规的流量,是不放行的。
MAC与端口对应关系的实现方法
端口安全一共有三种方法实现MAC与端口的对应关系规则
静态绑定
手工添加MAC地址与接口的对应关系(将接口与MAC地址绑定),并且会保存到MAC地址表和running-config。
动态绑定
将接口上动态学习到的MAC地址作为安全的MAC地址,保存在MAC地址表中,重启后丢失。
sticky(动态学习静态绑定)
结合了静态手工配置与动态学习MAC地址的优势,Sticky将动态学习到的MAC地址作为安全MAC地址,并且将结果保存到running configuration中(将MAC与接口进行绑定)。
实用举例:就拿现在的大多数高校来说,学生寝室的宽带连接大多数都是通过这种方式连接的。湖北省银河信息技术学院的寝室网络就是这样的。当我们从服务提供商那里得到账号后,在电脑上拨号连接,这个账户就会和寝室号绑定,当换宿舍时,需要给服务提供商打电话进行端口刷新,即解绑。
3.端口安全的违规动作
端口安全一共有三种的违规动作(就是违规后采取的策略)
Shutdown
(默认模式)将接口变成error-disabled并shut down,并且接口LED灯会关闭,也会发SNMP trap,并会记录syslog。
Protect
只丢弃不允许MAC地址的流量,其它合法流量正常,但不会通知有流量违规了。
Restric
只丢弃不允许MAC地址的流量,其它合法流量正常,但会有通知,发送SNMP trap,并会记录syslog
注:怎样区别违规
当接口上的MAC地址数达到最大允许数量后,还有更多的MAC要访问,就算违规。
一个端口上已经绑定的合法MAC在另一个接口上进行访问,就算违规。
4.使用环境
在现实中使用端口安全对于保护网络安全有着重大意义。可以防止网络攻击(修改MAC地址与存在的一样,进行攻击);可以限制一次有多少PC可以接上来;可以限制客户端登录交换网络;对于sticky,则是结合了动态学习与静态绑定的MAC地址的优势,解决客户端多时的环境,比如网吧环境,要让多个MAC与端口进行绑定,一个一个绑定未免太麻烦,如果用动态的,则开机后就丢失了,还要重新学习,此时可能会有非法入侵者加入。而用sticky,重启后仍然有用,不会影响原来的效果。
实验:
一.实验目的
了解并掌握端口安全的三种动作;
理解端口安全的实施原理;
理解端口安全的实施意义;
参悟端口安全在现实中的使用;
二.实验拓扑
实验环境介绍:IOU交换机和桥接云。打开IOU虚拟机,用网页连接上,在原有网络中添加一个网络云,IOU虚拟机Eth1网卡与云桥接,eth0网卡与本地网卡桥接,连接教室网络(获得多个实验体)。相当于教室网络与本机通过交换机连接,这样就可以实施端口安全了。
一.实验规划
IOU虚拟机的eth0网卡与本机用vmnet1连接,eth1直接与物理网卡桥接。网段自理。保证交换机能够自动获取到MAC地址(show mac address-table查看)。
二.实验解析
通过简单的实验要模拟出端口安全是怎样工作的。获取MAC地址后在e2/1上开启端口安全,查看默认的shutdown动作的结果—端口down掉;然后修改允许的最大MAC数(多于现有的MAC),开启端口再次查看效果,端口不在down;然后改回允许的最大MAC数,修改违规动作,查看另外的两个动作的效果,并修改最大MAC数再次查看效果。
接着,通过实验静态绑定MAC,sticky这两种方法,观察效果,最后比较三者。
三.实验步骤
shutdown动作
开启端口安全前查看获取的MAC地址
已经有这么多的PC连接到交换机上了。
接下来在e2/1上开启端口安全(端口安全要应用在Access模式的端口上)
打开后立马出现下面的信息
*Apr 2303:46:44.215: %PM-4-ERR_DISABLE: psecure-violation error detected on Et2/1, putting Et2/1 in err-disable state //提示端口违规关闭
SW1(config)#
*Apr 2303:46:44.215: %PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred,caused by MAC address 00e0.4c71.5e28 on port Ethernet2/1.
*Apr 2303:46:45.219: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet2/1, changed state to down //端口down掉
SW1(config)#
*Apr 2303:46:46.219: %LINK-3-UPDOWN: Interface Ethernet2/1, changed state to down
说明:提示e2/1端口down了
查看端口状态以验证
如图:e2/1关闭了。
Show查看端口规则
如上图:提示冲突1次。端口安全的默认规则就是shutdown状态,只允许一个mac通过(当然可以更改MaximumMAC addresses数),当违反规则时,端口的动作是shutdown(error-disabled),即端口关闭。
恢复要在端口上使用命令shutdown后no shutdown。
更改允许的最大mac数
SW1(config)#intere2/1
SW1(config-if)#switchportport-security maximum 100
SW1(config-if)#shut
SW1(config-if)#noshut
*Apr 2304:26:45.347: %LINK-3-UPDOWN: Interface Ethernet2/1, changed state to up
*Apr 2304:26:46.355: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet2/1,changed state to up
查看
如图:此时端口是正常的,因为允许最大接入mac数远大于现已接入的mac数,没有违反规则。
2.protect动作
把允许的最大mac数改回,然后继续实验
SW1(config)#intere2/1
SW1(config-if)#switchportport-security maximum 5
注:修改最大MAC时要关闭端口,让端口学到的MAC表清空。修改后再重新开启端口。
修改违规动作为protect
SW1(config)#intere2/1
SW1(config-if)#switchportport-security violation protect
查看
查看已经连接上的MAC数
然后开启端口,验证效果
SW1(config-if)#shut
SW1(config-if)#noshut
*Apr 2304:48:17.883: %LINK-5-CHANGED: Interface Ethernet2/1, changed state to administrativelydown
*Apr 2304:48:18.883: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet2/1,changed state to down
*Apr 2304:48:21.755: %LINK-3-UPDOWN: Interface Ethernet2/1, changed state to up
*Apr 2304:48:22.755: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet2/1,changed state to up
此时冲突已经产生,但是不会提示,默认只允许5个PC连接,多出的mac的流量全部丢弃,如下:
然后再看连接上来的MAC:
只有5个MAC,使用的策略生效了。
说明:只有5个MAC地址,也就是说现在只允许5个客户端连接上来,其余的都丢弃。
3.restric动作
shutdown端口并修改违规动作为restric
SW1(config-if)#shut
*Apr 23 04:54:41.919:%LINK-5-CHANGED: Interface Ethernet2/1, changed state to administratively down
*Apr 2304:54:42.923: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet2/1,changed state to down
SW1(config-if)#switchport port-security violation restrict
然后打开端口看效果
SW1(config-if)#noshut
SW1(config-if)#
*Apr 2304:56:00.571: %LINK-3-UPDOWN: Interface Ethernet2/1, changed state to up
*Apr 2304:56:01.575: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet2/1,changed state to up
*Apr 23 04:56:09.531:%PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MACaddress 00e0.4c78.f166 on port Ethernet2/1.
SW1(config-if)#
*Apr 23 04:56:28.043:%PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MACaddress 00e0.4c71.b401 on port Ethernet2/1.
SW1(config-if)#
*Apr 23 04:56:33.327:%PORT_SECURITY-2-PSECURE_VIOLATION: Security violation occurred, caused by MACaddress 00e0.4c78.f166 on port Ethernet2/1.
当违反restric规则后弹出日志提醒。
看MAC地址表
如上图,还是只有5个MAC地址,即,只允许其中的5个MAC地址连接到交换机,违反规则的都丢弃了,但是会弹出日志提醒(实际上与Protect一样,只不过Protect不弹日志提醒);
4.静态绑定MAC
上面的是动态学习的mac地址,下面我们来介绍如何静态的绑定MAC地址,进行特殊用户特殊照顾(只简单介绍命令的使用)。
先看下MAC地址表,中挑选一个mac地址进行静态绑定
SW1(config-if)#switchportport-security mac-address 00e0.4c71.497a
5.动态学习静态绑定
结合动态学习mac,然后静态绑定的优势,减轻静态绑定的负担。
就以现在学到的5个MAC为例,在接口下执行下面的命令:
SW1(config-if)#switchportport-security mac-address sticky
然后看配置
自动执行了绑定命令,这就是动态的学习,静态的绑定的优势,只需一跳命令,解决了静态进行一个一个MAC绑定的繁琐。
六、实验总结
1.端口安全一共有三种违规动作:shutdown(端口关闭)、protect(允许MAX-MAC数的MAC,
其余丢弃)、restric(允许MAX-MAC数的MAC,其余丢弃,并弹窗提醒 );
2.端口安全的MAC地址与端口的对应关系可通过三种方法实现:静态绑定、动态学习、sticky(动态学习,静态的绑定)。
本文出自 “freeit_gyh” 博客,请务必保留此出处http://freeitgyh.blog.51cto.com/7297595/1651092
原文地址:http://freeitgyh.blog.51cto.com/7297595/1651092