端口安全简单介绍
Cisco交换机提供了一种基于MAC地址控制端口访问权限的安全特性。端口安全能够基于MAC地址进行流量限制,可以设定端口允许接入的主机数量(即端口的活跃MAC地址)。也可以手动在端口设置MAC地址,只有被绑定的MAC地址的流量才能被转发。
端口安全实际是一种网络介入的验证,只有符合设置规则的才可以被接入局域网,避免未授权的客户端接入网络。
可以实现:
基于MAC地址限制,允许客户端流量。
避免MAC地址扩散攻击
避免ARP欺骗和攻击
Mac地址扩散原理
交换机的转发原理:
首先当交换机收到一个数据包的时候,交换机会查询MAC地址表中该接口对应的源MAC地址条目。
如果没有这个条目,那么交换机就会将这个数据帧的源MAC地址和接口对应起来,然后保存到MAC地址表里面。然后根据目的MAC地址进行查找。
如果交换机没有目的MAC地址的条目,那么交换机就会使用广播的方式对接收端之外的所有端口进行转发。
如果交换机有目的MAC条目,那么就根据该MAC表中查找到的条目对应的端口转发出去(单播)。
从交换机的转发原理可以得知,当交换机没有在MAC地址表中找到数据帧目的地址对应条目时,将广播该数据帧。MAC地址扩散攻击利用的就是交换机的这种特性。
MAC地址溢出攻击:每台交换机的MAC地址表都有一定大小的空间,某主机发送大量伪造源MAC地址的数据帧,使得交换机的MAC地址表溢出。这时交换机再收到正常的数据帧时,MAC地址表中将找不到数据帧目的地址所对应的条目,该数据帧将被以广播的形式转发数据,攻击者就可以获得正常的通信数据。
例:在一个网络中有A、B、C三台计算机,交换机有A和B的MAC地址表。那么A和B通信就是,使用单播的方式通信。
这种情况下c 是无法获取到A和B的通信数据的,但是如果C使用恶意的软件,大量的发送MAC地址不同的数据包时,MAC地址表就会很快被占满。如果MAC地址表被不够用会被交换机自动删除旧的MAC,这个就是溢出。
那么当A和B在次通信的时候,因为交换机上面没有了A和B的MAC地址,那么A和B的通信就会使用广播通信,这是主机C就获的了主机A和主机B的直接通信数据。
使用MAC地址扩散攻击时的一个明显现象就是交换机的CPU利用率很高,很容易被发现。
命令show processes cpu 命令可以查看设备的CPU利用率。
ARP攻击和欺骗
ARP攻击原理
攻击主机制造假的ARP应答,并发送给局域网中除被攻击主机之外的所有主机,ARP应答中包含除被攻击主机之外的所有主机的IP地址和虚假MAC地址。
攻击主机制造假的arp应答,并发送给被攻击主机,arp应答中包含除被攻击主机之外的所有主机的IP地址和虚假MAC地址。
只要执行上述的ARP攻击行为中的一种就可以实现被攻击主机和其他主机无法通信。
ARP欺骗原理
一般情况下,ARP欺骗不是使网络无法正常通信,而是通过冒充网关或其他主机使得到达网关或主机的流量通过攻击主机进行转发。通过转发流量可以对流量进行控制和查看,从而得到机密信息。
ARP欺骗发送ARP应答给局域网中的其他主机,其中包含网关的IP地址和进行ARP欺骗主机的MAC地址;并且也发送ARP应答给网关,其中包含局域网中所有的主机的IP地址和进行欺骗的主机的MAC地址。当局域网中的主机收到ARP应答更新ARP表后,主机和网关之间的流量就需要通过攻击主机进行转发,那么攻击主机就可获取被攻击主机的机密信息。
欺骗网关
欺骗主机
交换机端口安全具体配置
1.启用交换机端口安全特性
要在接入层的交换机上面启用安全特性,在接口模式下配置的命令。
注:启用端口安全的接口不能是动态协商模式,必须配置接口为接入或干道模式。
命令如下:
Switch(config-if)#switchportport-security
2.配置允许访问网络的MAC地址
在启用交换机端口后,需要配置允许访问网络的Mac地址数。这些允许网络的MAC地址可以从接口数据流中动态地获悉,也可以在接口上静态的绑定。这时在有人使用第三方软件进行Mac地址扩散或者ARP攻击,就可以防御了。
动态获取地址配置。
设置允许访问网络的最多MAC地址数,命令默认是接口只可以有一个MAC地址,如果需要配置多个MAC地址可以直接在命令后面加上MAC地址的数量数量是1~8192。
例如:只允许一个接口出现三个MAC地址的命令如下。
Switch(config-if)#switchportport-security maximum 3
动态获悉的MAC地址是从客户端传输的数据帧中得到的,接口获悉的MAC地址数不能超过配置的最大值。注:静态绑定的MAC地址也占用配置的MAC地址数量。
静态绑定MAC地址配置。
例如绑定一个静态MAC地址命令如下:
Switch(config-if)#switchport port-security mac-address0030.a371.b4c3
配置静态绑定的MAC地址数必须小于等于端口允许的最大MAC地址数,为静态绑定的Mac地址数可以通过数据帧动态获悉。
3.配置老化时间
在默认情况下,交换机不删除接口获得的MAC地址。如果接到同一端口的客户端经常变化,而旧的MAC地址一直保留,这可能导致新连接到端口的客户端无法正常通讯。
为了解决这个问题,可以配置交换机接口的老化时间,让交换机删除一段时间内没有流量的MAC地址。
时间范围是1~1440分钟,默认是0,表示不删除。
Switch(config-if)#switchportport-security aning time 5
交换机提供两种老化时间到期时删除动态获悉的MAC地址的规则。
Absolute为老化时间到期后,删除所有MAC地址并重新学习;
Inactivity参数为于端口连接的客户端一段时间(老化时间)没有流量,就将其MAC地址从地址表中删除。
只有当MAC地址到期后,新的MAC地址才可以进行绑定和网络通信,不然除非管理员手工设置。
需要注意静态绑定的MAC地址可以正常访问网络,并且不受老化时间的影响。如果需要使静态MAC地址也受老化时间影响需要配置以下命令。
Switch(config-if)#switchport port-securityaning static
4.配置MAC地址违规后的策略
当出现如下情况时,就会出现Mac地址违规
1.)访问端口的MAC地址数量超过了最大的安全MAC地址数。
2)一个配置在其他端口的MAC地址试图访问这个端口。
出现违规情况时,有三种处理方式,配置命令如下。
例:设置活跃端口数超过管理员设置最大数量直接关闭端口
Switch(config-if)#switchport port-security violationshutdown
Shutdown:端口成为err-disabled状态,相当于关闭端口。
Protect:将违规的MAC地址的分组丢弃,但端口处于UP状态。交换机不记录违规分组。
Restrict:将违规的MAC地址的分组丢弃,但端口处于UP状态。交换机记录违规分组。
当端口进入err-disabled状态时,默认情况下端口不会自动恢复。恢复端口的方法有两种,即自动恢复和手动恢复。
手动恢复:需要进入err-disabled状态的端口,先关闭端口(shutdown),然后在开启端口(no shutdown),端口恢复为正常。
自动恢复:设置err-disabled计时器,端口进入err-disabled状态时开始计时,计时器超出后端口状态自动恢复。
在全局模式下配置,首先配置引起接口出现err-disabled状态的愿意,然后配置恢复时间间隔。
自动恢复命令如下:
5.配置端口安全的sticky特性
当企业内网所有端口均要启用端口安全时,为每一个端口配置静态绑定的MAC地址,是会累死的。这时可以使用端口安全的sticky特性,动态地将交换机端口学习到的MAC地址转换为sticky MAC地址,并将其加入到运行配置中,这样就自动形成了一个端口安全允许的静态MAC地址表项。然后保存配置,交换机重启的时候将不会重新学习。
命令如下:
Switch(config-if)#switchport port-security mac-addresssticky
补充部分:
查看0/1接口的端口安全状态。
Switch#show port-security interface fastethernet 0/1
查看所有端口安全配置
清除一个接口的MAC地址
Switch#clear port-security sticky interfacefastethernet 0/2
清除所有接口的MAC地址
Switch#clear port-security sticky
清空一个MAC地址
Switch#clear port-security sticky address0030.a371.b4c3