在一般的企业环境中,交换机是使用最多的设备,下面简单介绍一些关于交换机端口安全的配置并就《CCNA学习指南(第六版)》书中的不足做一些补充:

在交换机端口配置模式下输入

Switch(config-if)#switchport port-security 

  mac-address     Secure mac address

  maximum           Max secure addresses

  violation            Security violation mode

Switch(config-if)#switchport port-security maximum ? ''该命令用来设置此端口可以连接的客户机的最大数量,范围是1-132

  <1-132>           Maximum addresses

Switch(config-if)#switchport port-security violation ?     ''该命令用来设置如果连接的客户机数量超过规定时所要采取的措施

  protect             Security violation protect mode           ‘’保护模式:超过限制客户机的帧将被抛弃

  restrict             Security violation restrict mode            ''限制模式:超过限制就通过SNMP通告管理员

  shutdown         Security violation shutdown mode       ''关闭模式:超过限制就关闭端口

Switch(config-if)#switchport port-security mac-address ? ''该命令用来绑定客户机MAC地址

  H.H.H               48 bit mac address                                ''手动输入要绑定的地址

  sticky               Configure dynamic secure addresses as sticky ''自动粘贴前N台客户机的地址,N是maximum命令设置的最大客户机数量

一个典型的示例:

Switch(config-if)#switchport port-security maximum 1

Switch(config-if)#switchport port-security violation shutdown

Switch(config-if)#switchport port-security mac-address sticky

配置这些命令后,该端口只允许一个客户机通过它进行通信,并且会自动粘贴第一个客户机的MAC地址,如果有其它客户机尝试通过,则该端口会因为违反端口安全被关闭。

但是,仅仅配置完以上命令是不够的,你会发现它完全不起作用。为什么呢?

使用

Switch#show port-security interface fa0/1 

查看结果:

Port Security                                : Disabled

Port Status                                   : Secure-up

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

注意上面结果第一行Port Security为Disable。问题就在这里!要使端口安全起作用,首先要在端口模式下启用端口安全:

Switch(config-if)#switchport port-security

等等!为什么我输入上面命令的时候会提示:

Command rejected: FastEthernet0/1 is a dynamic port.

对!原因就是动态端口是不能启用端口安全的,必须使用命令

Switch(config-if)#switchport mode access

来把端口改变为访问端口。然后再启用端口安全,然后重新验证结果:

Switch#show port-security interface fa0/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

Total MAC Addresses                    : 0

Configured MAC Addresses           : 0

Sticky MAC Addresses                   : 0

Last Source Address:Vlan              : 0000.0000.0000:0

Security Violation Count                 : 0

好了,现在端口安全才可以正式的起作用了。

如果违反端口安全端口会被关闭,则上面结果中的Port Status会变为Secure-down,这时需要在端口配置模式下使用shut和no shut(禁用再启用)即可使端口恢复正常。





Cisco IOS交换机中的端口安全(Port security)功能可以使你限制在端口上使用的MAC地址(称之为安全MAC地址)数,允许你阻止未授权MAC地址的访问,其实也就是通常所说的端口与MAC地址绑定。


Cisco IOS交换机的端口安全功能允许你通过配置静态安全MAC地址实现仅允许固定设备连接,也允许你在一个端口上配置一个最大的安全MAC地址数,仅允许在此数之前识别到的设备连接在该端口上。当超过了所设置的最大安全端口数,将触发一个安全违例事件,在端口上配置的一个基于违例行为模式的违例行为将被执行。如果你在某个端口上配置的最大安全MAC地址数为1,则设备上的该安全端口仅允许与固定设备连接。如果一个安全MAC地址在一个端口上进行了安全绑定,则这个MAC地址不能进入该端口加入的VLAN以外的任何其他端口,否则包将在硬件层被悄悄地丢弃。

1.    端口安全功能支持的安全MAC地址类型

Cisco IOS交换机端口安全功能支持以下几种安全MAC地址类型:

l  动态或者学习类型:动态安全MAC地址是在接收到连接在安全端口上主机发来的包时学习到的。在用户的MAC地址不固定时(如网络用户使用的经常移动的便携式电脑,如笔记本电脑),你可以使用此种类型。

l  静态或配置类型:静态安全MAC地址是用户通过CLI或者SNMP配置的MAC地址。在你的MAC地址保持固定时(如用户使用的是PC机),可以使用这种类型。

l  粘性(Sticky)类型:粘性安全MAC地址也是像动态安全MAC地址一样,是通过学习得到的,但是它是交换机重启后仍然有效,又有点像静态安全MAC地址那样。在存在大量固定MAC地址,而且你又不想手动配置这些安全MAC地址时,就可以使用这种类型。

    如果一个端口已达到了它最大的安全MAC地址数,而你又想配置一个静态安全MAC地址,此时会被拒绝的,并显示一个错误提示。如果一个端口已达到了它最大的安全MAC地址数,而又添加了一个新的动态安全MAC地址,则会触发一个违例行为。

    你可以使用clear port-security命令清除动态安全MAC地址,你可以使用no switchport port-securitymac-address命令一次性清除粘性和静态安全MAC地址。

2.    安全MAC地址的最大数

    一个安全端口默认有一个安全MAC地址。你可以改变这个默认值在1~3000之间。当你在一个端口上设置最大安全MAC数后,你可以以下任一方式在地址表中包括这些安全MAC地址:

l  你可以使用switchport port-securitymac-address mac_address接口配置模式命令配置安全MAC地址。

l  你可以通过port-security mac-address VLAN范围配置命令在中继端口上一个范围VLAN中配置所有安全MAC地址。

l  你可以允许端口用所连接设备的MAC地址动态配置安全MAC地址。

l  你可以静态配置一些安全MAC地址,而允许其余的安全MAC地址动态配置(如果端口链路关闭,则该端口上所有动态安全MAC地址将不再是安全的)。

  l  你可以MAC地址为粘性的(sticky)。这些安全MAC地址可以动态学习,也可以手动配置,然后保存在MAC地址表中,并添加到运行配置文件中。然后这些地址会保存在交换机的启动配置文件中,在交换机重启后,接口不用再重新学习。虽然你可以手动配置粘性安全MAC地址,但这种做法是不建议的。

    【经验之谈】在一个中继端口上,最大的安全MAC地址数可以基于端口和基于端口VLAN来配置。端口上配置的最大安全MAC地址数可以大于或等于(不能小于)端口VLAN上配置的最大安全MAC地址数。如果端口上配置的最大安全MAC地址数小于端口VLAN上配置的最大安全MAC地址数(例如VLAN 10上设置的最大安全MAC地址为3,而端口的最大安全MAC地址数采用默认的1),则在端口VLAN上的安全MAC地址数超过端口上设置的最大安全MAC地址数时,端口就将被关闭。

3.安全MAC地址老化

    在接收超过3000MAC地址时,你可能想要老化安全MAC地址,以便对一些长时间没有连接的安全MAC地址从MAC地址表中除去。但是粘性(sticky)安全MAC地址不支持老化过程。

    默认情况下,端口安全不会对安全地址进行老化的,学习到后,这个MAC地址将一直在端口上保留,直到交换机重启或才链路断开(当然这是在没有启用粘性MAC地址功能时)。端口安全允许你基于绝对(absolute)或者静止(inactivity)模式配置MAC地址老化和老化时间。绝对模式的老化周期是n~n+1分钟之间;静止模式的老化周期是在n+1~n+2分钟之间(时间增量为1分钟)。

    使用安全MAC地址老化功能可以还没达到端口上配置的最大安全MAC地址数之前,在安全端口上删除和添加PC,无需手动删除现有的安全MAC地址。

    除非明确地使用switchport port-security aging static命令静态配置MAC地址老化时间,静态安全MAC地址是不会进行老化进程的,即使在在该端口上配置了老化进程。

     4.端口上的粘性MAC地址

    通过启用粘性端口安全功能,你可以配置一个接口去转换动态MAC地址为粘性安全MAC地址,并添加他们到交换机的运行配置文件中。在你不需要用户移动到其他端口时,你可以使用这种功能,这样你就无需要在每个端口上手动配置大量的安全MAC地址。

    要启用粘性端口安全功能,可键入switchport port-securitymac-address sticky接口配置模式命令。此时,接口将转换所有动态安全MAC地址为粘性安全MAC地址,包括在启用粘性安全MAC地址功能前动态学习到的所有MAC地址。

粘性安全MAC地址不会自动成为交换机启动配置文件的一部分,如果你保存了运行配置文件,则在交换机重启后,接口也不用再重新学习MAC地址了,但是如果你不保存运行配置文件,则以前自动转换的粘性安全MAC地址表将丢失。

如果禁止粘性端口安全功能,则粘性安全MAC地址将自动转换为动态安全MAC地址,并自动从交换机的运行配置文件中删除。在配置了最大安全MAC地址数后,这些粘性安全MAC地址将以表的形式存储。要使某设备成为某端口唯一的连接者,则可以在该端口上配置最大的安全MAC地址数为1。如果添加到某端口的安全MAC地址数超过配置的最大安全MAC地址数将发生违例事件。

5. 违例行为模式

     你可以配置发生违例事件后所采取的行为模式:

l    保护(protect):当安全MAC地址数超过端口上配置的最大安全MAC地址数时,未知源MAC地址的包将被丢弃,直到MAC地址表中的安全MAC地址数降到所配置的最大安全MAC地址数以内,或者增加最大安全MAC地址数。而且这种行为没有安全违例行为发生通知。建议不要在中继端口上配置保护行为,因为在中继端口上某个VLAN达到该VLAN中所配置的最大安全MAC地址数时端口将被禁止,即使端口上的安全MAC地址数并未达到端口上配置的最大安全MAC地址数。

l  限制(Restrict):与前面的保护模式差不多,也是在安全MAC地址数达到端口上配置的最大安全MAC地址数时,未知源MAC地址的包将被丢弃,直到MAC地址表中的安全MAC地址数降到所配置的最大安全MAC地址数以内,或者增加最大安全MAC地址数。但这种行为模式会有一个SNMP捕获消息发送,并记录系统日志,违例计数器增加1SNMP捕获通知发送的频率可以通过snmp-server enable traps port-securitytrap-rate命令来控制,默认值为0,表示在发生任何安全违例事件时发送SNMP捕获通知。

l  关闭(Shutdown):发生安全违例事件时,端口立即呈现错误(error-disabled)状态,关闭端口(端口指示灯熄灭)。同时也会发送一个SNMP捕获消息并记录系统日志,违例计数器增加1。在想禁止非MAC地址,需要安全安全环境下,你可以使用这种模式。

l  关闭VLANShutdown VLAN):适用于VLAN的安全违例模式。在这种模式下,在发生安全违者罚款例事件时,该端口对应的VLAN都将呈错误禁止状态,关闭对应VLAN,而不关闭对应的端口。


15-1列出了各种违例模式和对应采取的行为。


交换机端口安全配置_第1张图片

 当一个安全端口处于错误禁止(error-disabled)状态,你可以通过errdisable recovery causepsecure-violation全局配置模式命令进行恢复,或者你可以通过shutdownno shut down接口配置模式命令重启。如果端口是处于每VLAN错误禁止(per-VLAN errdisable)状态,则你可以使用clear errdisable interface name vlan range命令在端口上重启这个VLAN。你也可以使用errdisable recovery interval interval命令自定义从指定的错误禁止状态恢复的时间,默认为300秒。

    【经验之谈】如果你可以预见有非法安全MAC地址包将在某端口上发送,你可能想要在安全端口上对非法安全MAC地址包进行传输速率限制。端口安全认为MAC地址为0的包为组播或广播源MAC地址,认为是非法包。你可以选择限制这些包的传输速率,在超过速率时将在端口上捕获一个违例事件。也就为像组播或广播包传输留有一定的空间。