2013年(28)
分类: 网络与安全
2013-02-26 21:12:52
交换机端口安全
交换机上的MAC地址表
sw1#show int f0/1 //查看接口f0/1的MAC地址
sw1#show mac-address-table //查看MAC地址表
sw1#clear mac-address-table //清除MAC地址表
sw1(config)#mac-address-table static 00d0.d3bd.d001 vlan 1 int f0/1
//把PC1的MAC地址静态添加到MAC表中
说明:静态配置了MAC地址表,该记录的类型为“STATIC”,永不从MAC表中超时。
注意:对于服务器等位置较为稳定的计算机,为了安全起见,建议配置静态MAC地址表。
sw1#show mac-address-table aging-time //查看MAC地址表的超时时间,默认300s
sw1#(config)#mac-address-table aging-time 120 vlan 1 //改变VLAN1的MC地址表的超时时间为120s
老化时间(aging time):
①从一个地址记录加入地址表后开始计时,默认300s;
②当在老化时间内,并且该链路正常连接网络时,各端口未收到源地址为该MAC地址的帧,那么,这些地址将从
动态转发地址表中被删除;
③当该MAC地址所处链路状态为Down时:H3C(comware)的动态地址表会将该条目删除,而Cisco则会保留该条目。
静态安全MAC地址
sw1(config)#int f0/1
sw1(config-if)#shutdown
sw1(config-if)#switchport mode access
sw1(config-if)#switchport access vlan 1
sw1(config-if)#switchport port-security /启用端口安全功能
sw1(config-if)#switchport port-security maximum 1
//只允许该端口下的MAC条目最大数量为1,即只允许一个设备接入
sw1(config-if)#switchport port-security violation shutdown
//配置发生攻击时端口要采取的动作:关闭接口
sw1(config-if)#switchport port-security mac-address 00d0.bab2.2611
//允许该MAC地址的设备(即PC1)从本端口接入网络
sw1(config-if)#no shutdown
①在“switchport port-security violation{protect|restrict|shutdown}”命令中:
1>protect---当新计算机接入时,如果该端口的MAC条目超过最大数量,则这个新的计算机将无法接入,而原
有的计算机不受影响,交换机也不发送警告信息;
2>restrict--当新计算机接入时,如果该端口的MAC条目超过最大数量,则这个新的计算机无法接入,并且交
换机将发送警告信息;
3>shutdown--当新计算机接入时,如果该端口的MAC条目超过最大数量,则该端口将会被关闭,则这个新的计
算机和原有的计算机都无法接入网络,这时需要接入原有的计算机并在交换机中的该端口下使用
“shutdown”和“no shutdown”命令重新打开端口。
②使用“switchport port-security mac-address 00d0.bab2.2611”命令后,该MAC将变为“STATIC”类型。
模拟非法入侵--静态安全MAC地址测试
PC1的MAC地址(00D0.BAB2.2611)改为00D0.BAB2.2612模拟非法设备。
几秒种后,则在交换机sw1上出现:
以上输出表明f0/1接口被关闭,交换机的f0/1接口只能是某一固定的设备(PC1)接入。
sw1#show int f0/1
以上输出表明f0/1接口因为错误而被关闭,非法设备移除后(PC1的MAC地址改回 00D0.BAB2.2611),在交换机上执行以下命令:
sw1(config)#int f0/1
sw1(config-if)#shutdown
sw1(config-if)#no shutdown
此时,接口又恢复了正常。
动态安全MAC地址
动态安全MAC地址和静态安全MAC地址的差别仅仅在于:
后者比前者多配置了“switchport port-security mac-address 00d0.bab2.2611”命令。
sw1(config)#default int f0/1 //接口上的配置恢复到默认配置(即出厂时的配置)
sw1(config)#int f0/1
sw1(config-if)#shutdown
sw1(config-if)#switchport mode access
sw1(config-if)#switchport access vlan 1
sw1(config-if)#switchport port-security
sw1(config-if)#switchport port-security maximum 1
sw1(config-if)#switchport port-security violation shutdown
sw1(config-if)#no shutdown
说明:当交换机f0/1接口的第一台计算机接入时,该计算机的MAC将作为“STATIC”类型添加到MAC表中。当第二台计算机接入时,由于交换机f0/1接口最大MAC地址数为1,该计算机将被认为是入侵设备,交换机关闭该接口。
最终的效果是:交换机的f0/1接口只能有一台计算机接入(但是不能限制是哪个MAC)。
模拟非法入侵--动态安全MAC地址测试
略,同上:模拟非法入侵--静态安全MAC地址测试。
粘滞安全MAC地址
静态安全MAC地址可以使得交换机的接口(f0/1)只能接入某一固定的计算机,然而需要使用“switchport port-security mac-address 00d0.bab2.2611”命令,这样就需要一一查出计算机的MAC地址,这是一个工作量巨大的事情,粘滞安全MAC地址可以解决这个问题。
sw1(config)#default int f0/1
sw1(config)#int f0/1
sw1(config-if)#shutdown
sw1(config-if)#switchport mode access
sw1(config-if)#switchport access vlan 1
sw1(config-if)#switchport port-security
sw1(config-if)#switchport port-security maximum 1
sw1(config-if)#switchport port-security violation shutdown
sw1(config-if)#switchport port-security mac-address sticky //配置交换机接口自动粘滞MAC地址
sw1(config-if)#no shutdown
实验调试
从PC1上ping交换机172.16.0.1,然后在交换机上:
sw1#show running-config int f0/1
以上输出表明交换机自动把PC1的MAC地址粘滞在了该端口下,这时相当于执行了“switchport port-security mac-address 00d0.bab2.2611”命令,以后该端口只能接入PC1。
sw1#show port-security //查看端口安全的设置情况
sw1#(config)#mac-address-table aging-time 120 vlan 1
sw1(config)#mac-address-table static 00d0.d3bd.d001 vlan 1 int f0/24 //配置服务器的MAC地址
sw1(config)#int range f0/1 - 12 //批量配置接口f0/1到f0/12
sw1(config-if)#shutdown
sw1(config-if)#switchport mode access
sw1(config-if)#switchport access vlan 1
sw1(config-if)#switchport port-security
sw1(config-if)#switchport port-security maximum 1
sw1(config-if)#switchport port-security violation shutdown
sw1(config-if)#switchport port-security mac-address sticky
sw1(config-if)#no shutdown
sw1(config)#errdisable recovery cause psecure-violation
//允许交换机自动恢复因端口安全而关闭的端口
sw1(config)#errdisable recovery interval 60 //配置交换机60s后自动恢复端口
说明:
①等交换机f0/1到f0/12接口上的计算机都开过机后,在交换机上检查确认已经粘滞了MAC地址后,把配置保存下
来(“copy running-config startup-config”命令)。
②当配置了接口自动恢复后,交换机发现有入侵时关闭了接口时,就不需要管理员手工重新打开接口了。