交换机端口安全系统PortSecurity超级详解Word格式.docx
《交换机端口安全系统PortSecurity超级详解Word格式.docx》由会员分享,可在线阅读,更多相关《交换机端口安全系统PortSecurity超级详解Word格式.docx(14页珍藏版)》请在冰豆网上搜索。
当在一个Port-Security接口上配置了某个安全地址,而这个安全地址的MAC又企图在同VLAN的另一个Port-Security接口上接入时,启动惩罚措施
当设置了Port-Security接口的最大允许MAC的数量后,接口关联的安全地址表项可以通过如下方式获取:
∙在接口下使用switchportport-securitymac-address来配置静态安全地址表项
∙使用接口动态学习到的MAC来构成安全地址表项
∙一部分静态配置,一部分动态学习
当接口出现up/down,则所有动态学习的MAC安全地址表项将清空。
而静态配置的安全地址表项依然保留。
3.Port-Security与StickyMAC地址
上面我们说了,通过接口动态学习的MAC地址构成的安全地址表项,在接口出现up/down后,将会丢失这些通过动态学习到的MAC构成的安全地址表项,但是所有的接口都用switchportport-securitymac-address手工来配置,工作量又太大。
因此这个stickymac地址,可以让我们将这些动态学习到的MAC变成“粘滞状态”,可以简单的理解为,我先动态的学,学到之后我再将你粘起来,形成一条”静态“(实际上是SecureSticky)的表项。
在up/down现象出现后仍能保存。
而在使用wr后,这些sticky安全地址将被写入start-upconfig,即使设备重启也不会被丢失。
三、默认的Port-Security配置
∙Port-Security
默认关闭
∙默认最大允许的安全MAC地址数量
1
∙惩罚模式
shutdown(进入err-disable状态),同时发送一个SNMPtrap
四、Port-Security的部署注意事项
1.Port-Security配置步骤
a)
在接口上激活Port-Security
Port-Security开启后,相关参数都有默认配置,需关注
b)
配置每个接口的安全地址(Secure
MACAddress)
可通过交换机动态学习、手工配置、以及stciky等方式创建安全地址
c)
配置Port-Security惩罚机制
默认为shutdown,可选的还有protect、restrict
d)(可选)配置安全地址老化时间
2.关于被惩罚后进入err-disable的恢复:
如果一个psec端口由于被惩罚进入了err-disable,可以使用如下方法来恢复接口的状态:
∙使用全局配置命令:
err-disablerecoverypsecure-violation
∙手工将特定的端口shutdown再noshutdown
3.清除接口上动态学习到的安全地址表项
∙使用clearport-securitydynamic命令,将清除所有port-security接口上通过动态学习到的安全地址表项
∙使用clearport-securitysticky命令,将清除所有sticky安全地址表项
∙使用clearport-securityconfigured命令,将清除所有手工配置的安全地址表项
∙使用clearport-securityall命令,将清除所有安全地址表项
∙使用showport-securityaddress来查看每个port-security接口下的安全地址表项
4.关于sticky安全地址
Sticky安全地址,是允许我们将Port-Security接口通过动态学习到的MAC地址变成“粘滞”的安全地址,从而不会由于接口的up/down丢失。
然而如果我们希望在设备重启之后,这个sticky的安全地址表项仍然存在,那么就需要wr一下。
将配置写入start-upconfig文件。
Sticky安全地址也是一个简化我们管理员操作的一个很好的工具,毕竟现在不用再一条条的手工去绑了。
5.port-security支持privatevlan
6.port-security支持802.1Qtunnel接口
7.port-security不支持SPAN的目的接口
8.port-security不支持etherchannel的port-channel接口
9.在CISCOIOS12.2(33)SXH以及后续的版本,我们可以将port-security及802.1X部署在同一个接口上。
而在此之前的软件版本:
∙如果你试图在一个port-security接口上激活8021.X则会报错,并且802.1X功能无法开启
∙如果你试图在一个802.1X接口上激活port-security则也会报错,并且port-security特性无法开启
10.Port-Security支持nonegotiatingtrunk接口
Port-Security支持在如下配置的trunk上激活
switchport
switchporttrunkencapsulation?
switchportmodetrukn
switchportnonegotiate
∙Ifyoureconfigureasecureaccessportasatrunk,portsecurityconvertsallthestickyandstaticsecureaddressesonthatportthatweredynamicallylearnedintheaccessVLANtostickyorstaticsecureaddressesonthenativeVLANofthetrunk.PortsecurityremovesallsecureaddressesonthevoiceVLANoftheaccessport.
∙Ifyoureconfigureasecuretrunkasanaccessport,portsecurityconvertsallstickyandstaticaddresseslearnedonthenativeVLANtoaddresseslearnedontheaccessVLANoftheaccessport.PortsecurityremovesalladdresseslearnedonVLANsotherthanthenativeVLAN.
11.Flexlinks和Port-Security互不兼容
五、Port-security的配置
1.激活Port-Security(在access接口上)
Switch(config)#interfacefast0/1
Switch(config-if)#switchport
Switch(config-if)#switchportmodeaccess
Switch(config-if)#switchportaccessvlan10
Switch(config-if)#switchportport-security
接口的Port-Security特性一旦激活后,默认的最大安全地址个数为1,也就是说,在不进行手工配置安全地址的情况下,这个接口将使用其动态学习到的MAC作为安全地址,并且,这个接口相当于被该MAC(所属的设备)独占。
而且默认的violation是shutdown
SW1#showport-securityinterfacef0/1
PortSecurity
:
Enabled
PortStatus
Secure-up
!
接口目前的状态是up的
ViolationMode
Shutdown
违例后的惩罚措施,默认为shutdown
AgingTime
0mins
AgingType
Absolute
SecureStaticAddressAging:
Disabled
MaximumMACAddresses:
1
最大安全地址个数,默认为1
TotalMACAddresses
0
ConfiguredMACAddresses
0
手工静态配置的安全MAC地址,这里没配
StickyMACAddresses
sticky的安全地址,这里没有
LastSourceAddress:
Vlan
00b0.1111.2222:
10
最近的一个安全地址+vlan
SecurityViolationCount
该接口历史上出现过的违例次数
这个时候,如果另一台PC接入到这个端口上,那么该port-security接口将会收到一个新的、非安全地址表项中的MAC地址的数据帧,于是触发的违例动作,给接口将被err-disable掉。
同时产生一个snmptrap消息,另外,接口下,SecurityViolationCount将会加1
2.激活Port-Security(在trunk接口上)
3.Port-Securityviolation惩罚措施
默认的violation是shutdown。
如果是protect,那么惩罚就会温柔些,对于非法的数据帧(例如数据帧的源MAC不在安全地址表项中的、且安全地址已经达到最大数),这些非法数据将仅仅被丢弃,合法数据照常转发,同时不会触发一个syslog消息,另外接口下的“SecurityViolationCount”也不会加1。
而如果是restrict,那么非法数据被丢弃,同时触发一个syslog消息,再者,SecurityViolationCount加1,合法的数据照常转发。
4.配置PortSecurityRateLimiter
(注意,在6509交换机,truncatedswitching模式下不支持该功能)
在交换机接口上开启Port-Security是会耗费资源的,Port-Security会检测每一个进入接口的数据帧,以判断流量是否合法,或者是否存在违例行为。
当一个安全接口设置的violation为shutdown的时候,该接口在违例后触发惩罚机制,进入err-diasble状态,这样可以有效的方式有效的防止交换机由于处理违例事件导致交换机的CPU利用率过高。
然而protect和restict的惩罚措施,则不会将端口关闭,端口依然可用,那么这就可能导致在违例事件发生的情况下交换机的CPU利用率飙高(例如大量的非法数据涌入)。
因此当使用protect和restrict这两种违例惩罚措施事,可以通过Port-Secuirtyratelimiter来防止CPU飙高。
Switch(config)#mlsrate-limitelayer2port-securityrate_in_pps
[burst_size]
关于rate_in_pps参数:
∙范围是10-1000000
∙没有默认值
∙值设置的越低,对CPU的保护程度就越高,这个值对惩罚措施发生前、后都生效,当然这个值也不能设置的过低,至少要保障合法流量被处理吧。
一般低于1000就差不多。
关于burst-size参数:
∙范围是1-255
∙默认是10,这个默认值一般就够用了。
5.配置Port-Security最大允许的安全地址数量
最大安全地址数量,不同的软件平台允许的上限值有所不同,但是默认都是1。
在trunk口上,前面说了,也是可以激活port-security的,而在trunk口上配置最大安全地址数量,可以基于接口配置(对所有VLAN生效),也可以基于VLAN进行配置。
如下:
switchportport-securitymaximum1
switchportport-securitymaximum1vlan10,20,30
可以关联多个VLAN
6.在port-security接口上手工配置安全地址
上述配置中,最大安全地址数设置为3,然后使用手工配置了一个安全地址,那么剩下2个,交换机可以通过动态学习的方式来构建安全地址。
在trunk接口上手工配置安全地址,可关联vlan关键字。
如果在trunk接口上手工配置安全地址,没有关联vlan关键字,那么该安全地址将被关联到trunk的nativevlan上
7.在port-security接口上使用stickyMAC地址
我们知道,构成安全地址表项的方式有好几种,其中一种是使用switchportport-securitymac来手工配置,但是这种方式耗时耗力,更需要去PC上抄MAC,工作成本比较高。
而另一种构成安全地址的方式是让交换机使用动态学习到的MAC,然而这些安全地址在接口一旦up/down后,将丢失,更别说重启设备了。
因此可以使用stickymac的方式,这种方式激活后,交换机将动态学习到的MAC“粘起来”,具体的动作很简单,就是在动态学习到MAC(例如一个00b0.1111.2222)后,如果我激活了sticikyMACaddress,则在接口下自动产生一条命令:
interfaceFastEthernet0/1
switchportaccessvlan10
switchportmodeaccess
switchportport-security
switchportport-securitymac-addresssticky
switchportport-securitymac-addresssticky00b0.1111.2222!
!
自动产生
这样形成的安全地址表项(是SecureSticky的),即使在接口翻动,也不会丢失。
在者如果wr保存配置,命令写入config.text,那么设备即使重启,安全地址也不会丢失。
当在接口上激活了port-securitymac-addresssticky,那么:
∙该接口上所有通过动态学习到的MAC,将被转成stickymacaddress从而形成安全地址
∙接口上的静态手工配置的安全地址不会被转成stickymacaddress
∙通过voicevlan动态学习到的安全地址不会被转成stickymacaddress
∙命令配置后,新学习到的MAC地址,也是sticky的
当此时又敲入noport-secuirtymac-addresssticiky,则所有的sticky安全地址条目都变成动态的安全地址条目(SecureDynamic)
8.配置安全地址老化时间
配置的命令比较简单:
Switch(config-if)#switchportport-securityagingtype{absolute|inactivity}
配置老化时间的类型,如果选择absolute,也就是绝对时间,需要搭配agingtime命令设定老化时间的具体值,命令一旦敲下去后,所有的通过动态学习的MAC构建的安全地址表项将开始以agingtime倒计时。
如果是inactivity关键字,则只在该动态安全地址表项不活跃的时候(譬如主机离线了或者挂掉了)才开始倒计时。
Switch(config-if)#switchportport-securityagingtime?
设定老化时间
Switch(config-if)#switchportport-securityagingstatic
使用前面两条命令,老化时间是不会影响那些使用静态手工配置的安全地址表项的,当然sticky表项也不会受影响,这些表项都是永不老化的,但是如果搭配上上面这条命令,则手工配置的安全地址表项也受限于老化时间了。
不过对于sticky表项,则始终不会激活agingtime,它是不会老化的。
∙示例1:
将安全地址老化时间设置为50min。
针对动态学习到的MAC构成的安全地址有效
50min是一个绝对时间,配置完成后开始倒计时,无论该MAC是否依然活跃,都始终进行倒计时
∙示例2:
针对动态学习到的MAC构成的安全地址有效,如果该MAC在50min内一直处于失效状态(例如主机离线了),那么该安全地址在agingtime超时后被清除
∙示例3:
注意,上述两种配置方式,对手工配置switchportport-securitymac-address00b0.9999.9999的安全地址无效。
也就是采用上述方法配置的静态安全地址表项永不超时。
如果增加switchportport-securityagingstatic命令,则手工静态配置的安全地址也的agingtime也开始计时
注意,对于stickymacaddress,安全地址的老化时间无效