在现今的企业网络中,信息安全的威胁从某种程度上讲,来自企业内部的安全威胁高于企业外部的安全威胁,比如:无控制行为的任意主机接入、移动存储设备接入、共享数据等这些都是由于企业内部网络对网络的接入控制不严格所导致的问题,而本小节的主要任务就是描述数据链路层接入控制的管制方案-交换机的端口安全技术。
交换机的端口安全属于数据链路层安全策略,也是多众企业网络接入控制方案中的一种,它可以有效的限制非法桌面计算机的接入,也可以有效的防御MAC地址洪泛攻击(macof)。主要的功能是:限制一个交换机物理端口的最大MAC数据、设定合法的接入主机的MAC地址,制定违反端口安全策略后的行为。需要注意的是在配置交换机的端口安全之前必须申明端口的模式,比如:switchport mode access(申明为交换端口接入模式)。端口安全不能被应用到动态协商的端口模式中。
关于交换机端口安全的配置:
Switch(config-if)#switchport port-security ?* 启动交换机端口安全的指令。
mac-address Secure mac address* 设置安全的MAC地址。
maximum Max secure addresses* 设置端口允许的最大MAC数量。
violation Security violation mode* 违反端口安全后执行的动作。
mac-address:该参数以管理员定义合法的具体MAC地址,可以由管理员手工配置认为合法的MAC地址,比如:switchport port-security mac-address0009.de12.3f56,如果这样配置后,就只有MAC地址是0009.de12.3f56的主机可以接入该端口,事实上执行了一个将指定的MAC地址与该端口相绑定的结果,其它MAC地址接入就违反了端口安全的策略,上述使用手工配置MAC地址的方式不适应于大型网络,因为这样做可能会造成很大的管理开销,所以可以使用switchport port-security mac-address sticky让该端口记录下第一次交换机MAC自动学习时所记录的源地址,这样就省去了大量手工输入MAC地址时所造成管理开销与录入错误。
Maximum:该参数定义该端口可容纳的最大MAC地址数量,一般正常情况下交换机的一个端口对应一个MAC地址,所以可以配置为switchportport-security maximum 1;但这并不是绝对的,比如有些企业为了过渡,在交换机的某个端口上连接的并不是一台主机,而是一个集线器,如下图10.42所示,那么交换机S1的fa0/2端口就应该配置成switchportport-security maximum 4,因为集线器连接的所有主机的MAC地址都应该属于交换机S1的fa0/2端口。
Violation:该参数定义违反了预配置上述的端口安全原则后,将执行一个怎么的行为,具体又可以分为三个参数,protect、restrict、shutdown。
关于违反了交换机的端口安全策略后的执行动作:
Switch(config-if)#switchport port-security violation ?
protect Security violation protect mode
restrict Security violation restrict mode
shutdown Security violation shutdown mode
关键字violation是指定如果有非法接入端口的处理方式,共有3种解决方式:protect、restrict、shutdown。Protect指示当已经超过所允许学习的最大MAC地址数时,交换机将继续工作,但是将把来自新主机的数据帧丢弃,不发任何警告信息。restrict指示当发生安全违例时,交换机将继续工作,非法的数据通信仍然可以继续,但是会向console平台发警告信息。shutdown指示关闭端口为err-disable状态,除非管理员手工激活,否则该端口失效。
注意:因为安全违例造成端口被关闭后,管理员可以在全局配置模式下使用errdisable recovery将接口从错误状态中恢复过来,也可以直接进入接口重新激活接口。
关于交换机端口安全的一个配置实例:
如下图10.43所示,要求为交换机S1的fa0/1和fa0/2配置端口安全,主机A直接连接到交换机端口fa0/1,要求为它配置最大的MAC数量,认定合法的MAC地址,如果发生安全违规请直接关闭fa0/1接口。主机B、C、D、E通过一台集线器连接到交换机S1的fa0/2接口,要求为它配置合适的MAC数量,通过交换机第一次的MAC地址自学习来获得安全MAC地址,当发生安全违规时要求仍然转发违规的数据帧,但是向交换机的控制台发送相关信息。
Switch(config)#interfacefastEthernet 0/1
Switch(config-if)#switchportmode access
Switch(config-if)#switchportport-security maximum 1
Switch(config-if)#switchportport-security mac-address 0001.6367.2A33
Switch(config-if)#switchportport-security violation shutdown
Switch(config)#interfacefastEthernet 0/2
Switch(config-if)#switchportmode access
Switch(config-if)#switchportport-security maximum 4
Switch(config-if)#switchportport-security mac-address sticky
Switch(config-if)#switchportport-security violation restrict