目录
一般情况下的ARP响应:
arp欺骗攻击(欺骗的是PC或者路由器):
mac地址欺骗(欺骗交换机):
mac地址泛洪攻击与arp泛洪攻击:
总结:
如何防御:
端口安全详解:
不能启用端口安全的特列:
(1)trunk接口
( 2)连接AP的接口:
AP(无线访问接入点(WirelessAccessPoint))简介:
AC(无线接入控制服务器)简介:
端口安全配置命令:
pc1发送arp请求到pc2,及pc2对pc1的arp响应所生成的MAC地址表、arp缓存表如下:
pc1的arp缓存表:
10.1.1.2 |
0..........B |
sw上的mac地址表:
0...........A |
F0/1 | vlan 10 |
0...........B | F0/2 | vlan 10 |
pc2的arp缓存表:
10.1.1.1 |
0..........A |
注: 交换机动态生成的mac地址表老化时间为300s
pc生成的arp缓存表老化时间为20分钟
任何一款交换机存放mac地址的条目是有限的
此时,假设再加入一台PC,如图:
假设当前交换机sw最多只能存放三个mac地址条目,那现在sw的mac地址表为:
0...........A |
F0/1 | vlan 10 |
0...........B | F0/2 | vlan 10 |
0...........C | F0/3 | vlan 10 |
现在假如有人在pc3上安装恶意攻击软件(比如 Yersinia),然后在pc3上伪造一个数据报文发给交换机,假设伪造arp请求:
mac欺骗 | arp欺骗 |
smac:0.......A | 我是10..1.1.1,我的mac地址是0.....C 谁是10..1.1.2,你的mac发给我 |
dmac:12个F | |
type:0x0806 |
现在sw上只能存放三个mac地址条目,而现在有了第四个,所以sw会把第一个mac地址条目删除,存放第四个条目:
然后交换机发现arp请求中dMAC为12个F(二层广播)接着泛洪给pc2,而arp请求相信后到的,后来者居上,而原来的pc2收到的arp请求为:
10.1.1.1 |
0..........A |
现在又收到另一个:
10.1.1.1 |
0..........C |
由于arp请求是后来者居上,现在pc2要进行arp缓存表的更新,删除原来的:
现在pc2发送的所有数据包 目的ip都为10.1.1.1,目的mac都为0.....C,当数据包到达交换机sw时,查询自己的mac地址表发现,0......C是连接在接口为F0/3下面的,所以pc2给pc1发送的所有数据,都会发送给了pc3,而pc3采用特定的技术就能把数据全部还原 (数据加密除外)
0...........C | F0/3 | vlan 10 |
--------------------------------------------------------------------------------------------------------------------------------
假设arp请求之中只有mac地址的欺骗,没有arp的欺骗,那么原来pc2收到的arp不变即为:
10.1.1.1 |
0..........A |
而当pc2发送的数据到达交换机时,查看自己的mac地址表发现目的mac地址:0......A是连接在F0/3接口下的,所以数据也会发给pc3
当PC恶意大量产生以上没有价值的mac地址和arp时,就造成了mac地址的泛洪和arp的泛洪攻击
--------------------------------------------------------------------------------------------------------------------------------
一般情况下,mac地址的欺骗和arp的欺骗组合使用,共同欺骗交换机和PC,增加欺骗成功率。
1、手工绑定ARP表(防止arp的欺骗和泛洪攻击)--------->PC
2、静态MAC地址绑定:防御MAC欺骗和泛洪攻击---------->交换机
sw(config)#mac-address-table static 0001.0001.0001 interface f0/2 vlan 10-----配置命令
弊端:比较麻烦,但现在仍然被使用
3、F0/3接口启用端口安全技术
---------------------------------------------------------------------------------------------------------------------------------
因为一般情况下一个trunk接口学习到多个mac地址属于正常行为:列如下图核心交换机的F0/8接口
手机、PC、等上网终端通过AP上访问服务器,所以会在F0/4接口学习到多个mac地址,这是正常的连接,如果在F0/4启用端口安全的话,F0/4接口会立即shutdown,所以这些终端访问会全部中断。
无线AP(Access Point):即无线接入点,它用于无线网络的无线交换机,也是无线网络的核心。无线AP是移动计算机用户进入有线网络的接入点,主要用于宽带家庭、大楼内部以及园区内部,可以覆盖几十米至上百米。无线AP(又称会话点或存取桥接器)是一个包含很广的名称,它不仅包含单纯性无线接入点(无线AP),同样也是无线路由器(含无线网关、无线网桥)等类设备的统称。
接入控制器(AC) 无线局域网接入控制设备,负责把来自不同AP的数据进行汇聚并接入Internet,同时完成AP设备的配置管理、无线用户的认证、管理及宽带访问、安全等控制功能。
---------------------------------------------------------------------------------------------------------------------------------
开启端口安全:
sw-3550(config)#int f0/1
sw-3550(config-if)#switchport mode access //必须指定一个模式
sw-3550(config-if)#switchport port-security //开启端口安全
sw-3550(config-if)#exit
开启端口安全默认行为:此接口只允许学习到1个MAC地址,如果违规则把此接口置为err-disable关闭状态
可选配置命令:
(config)#int f0/1
(config-if)#switchport port-security maximum 1 可以允许此接口学习1个MAC
(config-if)#switchport port-security violation ?
protect Security violation protect mode // 丢弃、告警,告警日志通过syslog产生的
restrict Security violation restrict mode //无声丢弃
shutdown Security violation shutdown mode //默认的违规行为err-disable
(config-if)#switchport port-security //开启端口安全
端口安全下MAC地址绑定:配置这条命令先把端口关闭情况下配置
(config)#int f0/1
(config-if)#switchport port-security mac-address 0001.0001.0001
(config-if)#switchport port-security
强制指定此接口连接的PC的MAC地址为0001.0001.0001
注:只有特定的终端在指定的接口才能上网
把动态学习的MAC地址做一个静态映射,且没有老化时间概念,也就意味着这个接口以后只能连接特定PC,除非在交换机上面做相对应修改:
sw-3550(config)#in f0/1
sw-3550(config-if)#switchport port-security mac-address sticky
sw-3550(config-if)#switchport port-security
sw-3550(config-if)#exit
sw-3550(config)#
(config-if)#switchport port-security aging time 2----仅仅针对动态学习到的MAC地址生效
(config-if)#switchport port-security aging static---即能针对动态学习到的MAC地址生效也能针对纯静态绑定的MAC地址生效,如果超时,同时也会把接口下这些相关的配置也删除掉
(switchport port-security mac-address 0001.0001.0001
switchport port-security mac-address 0002.0002.0002
switchport port-security mac-address 0003.0003.0003)
switchport port-security mac-address sticky---------把动态学习的MAC地址做一个静态映射,且没有老化时间概念,也就意味着这个接口以后只能连接特定PC,除非在交换机上面做相对应修改
(通过show run 看到的:switchport port-security mac-address sticky 848f.69bf.2f42)