二层攻击方法可分为四大类:
1、MAC layer attacks
2、VLAN attacks
3、spoofattacks
4、attacks on switchdevices
一、MAC layerattacks
攻击方法: 1、MAC地址flooding攻击
????????? 2、MAC地址的欺骗攻击
解决方案:
??? 1、基于源MAC地址允许流量:端口安全
??? 2、基于源MAC地址限制流量:static CAM
??? 3、阻止未知的单/组播帧
??? 4、802.1x基于端口的认
二、VLAN attacks
解决方案: 1、switchmode access
????????? 2、VACL
????????? 3、PVLAN
三、spoofattacks
??? 1、DHCP spoof
?????? 解决方案:DHCP snooping
??? 2、IP spoof
?????? 解决方案:IP 源防护
??? 3、ARP spoof
?????? 解决方案:1、静态绑定ARP条目
??????????????? 2、DAI
四、attacks onswitch devices
??? 1、关闭不必要的服务,比如CDP
??? 2、限制广播/组播流量
??? 3、为交换机设置登录密码
??? 4、使用SSH实现安全的登录
?
<端口安全>
?
·SW端口安全是2层特性,提供两个方面的保护:
? 1、可以限定一个接口所能学习的MAC地址数量
? 2、可以在一个接口静态绑定MAC地址
?
1.基于主机MAC来允许流量
·可定义2个参数:授权的MAC地址/允许学习多少个MAC地址(默认=1)
·违背端口安全,采取的行为:
1.shutdown:将永久性或特定周期内Err-Disable端口(默认行为),并发送snmptrap
2.restrict:当超过所允许学习的最大MAC数时,将未授权主机的帧丢弃drop,并将violation计数器增加
3.protect :当超过所允许学习的最大MAC数时,将未授权主机的帧丢弃drop
?
int f0/1
? switchport mode access????? //启用端口安全时,必须先设为access接口
? switchport port-security??? //启用端口安全(默认只能学一个MAC)
? switchport port-security maximum 1?? //指定最多允许学多少个地址
? switchport port-security mac-addressaaaa.bbbb.cccc
? switchport port-security violation[protect|restrict|shutdown] //指定行为
?
? switchport port-security aging time 1 (分钟)//设定多长时间后能重新学习MAC地址,也就是设定现有MAC地址的有效期
?
? switchport port-security mac-addresssticky? //将动态学到的地址粘住,永久使用
showport-security????????????????? //可以看到哪些接口应用了端口安全
showport-security address????????? //可以看到授权的MAC地址
showport-security interface f0/1?? //可以看到接口的具体状态
showinterfaces fastEthernet 0/1
?
FastEthernet0/1is down, line protocol is down (err-disabled)
?
通常做接口安全,要先把接口shutdown,这样它就不会自动学习
?
让err-disable接口自动恢复
errdisablerecovery cause psecure-violation
showerrdisable
?
2.基于主机MAC来限制流量 (3550上才可以做)
列表中定义的MAC将被限制流量
?
mac-address-tablestatic 0010.7b80.7b9b vlan 1 drop
?
3.阻塞未知单(组)播扩散 (3550上才可以做)
对未知MAC地址,SW将从本VLAN的其他端口转发出去,但对于某些端口(端口安全只需要一个MAC/已到最大MAC)没必要再转发这些单(组)播。就可以在这些端口上设定这一特性,通常结合端口安全来做。
int f0/1
? switchport block [unicast | multicast
show int f0/1switchpor
...Unknownunicast blocked: enabled
...Unknownmulticast blocked: disabled
4、802.1x基于端口的认证
一第二层的访问控制方法,通过AAA服务器对接入一个接口的用户进行认证,以决定客户能否访问网络。
配置:
aaa new-model
aaaauthentication dot1x default group radius
dot1xsystem-auth-contro
interface f0/1
? dot1x port-control auto
Vlan 的 access-map (可以基于mac与ip)
VACL也叫VLAN映射表,通过VACL可以实现对一个VLAN中的流量进行过滤。VACL可以根据二层信息进行过滤,也可以根据三层信息来进行过滤
1、通过调用IP? ACL,可以根据三层的IP地址、协议以及端口号等信息进行过滤。
2、通过调用MAC? ACL,可以根据MAC地址进行过滤,还可以过滤其它的非IP流量。
???? 每一个VACL可以包含多条语句,每一条语句对于匹配的流量可以有三种不同的操作:
???? 1、forward?? 转发,对数据帧或数据包进行正常转发
???? 2、drop?? 丢弃,当数据流与某个拒绝语句匹配上,将被丢弃
???? 3、重定向? 对于数据流的转发方向作重定向?? (高端交换机才支持)
???? 注意:如果没有说明一条语句的操作行为,默认的行为是forward。如果进入VLAN的数据流没有匹配上任何一条语句,最后将被丢弃掉。
基于IP的
access-list 1 permit192.168.1.1 0.0.0.0
vlanaccess-map CCNP 10
? match ip address 1
? action drop
vlanaccess-map CCNP 20
? action forword
vlan filterCCNP vlan-list 100?? //全局模式下调用,要指明用在哪个VLAN中,也可对所有AL
注意:每一条语句默认是转发的? show run 可以看到有 action forword
show vlanaccess-map
show vlanfilter
基于mac地址的(MAC地址列表):
1、先写MAC地址列表
mac access-list extended ccnp
?permit host00e0.1e3d.d18c any
2、再写access-map
vlan access-map CCNP 10
?action drop
?match macaddress ccnp
vlan access-map CCNP 20
?action forward
3、调用:
R1(config)#vlan filter CCNP vlan-list 10? ? ? ? ? ? ? ? ? ? Access-map的名字?? vlan号
R1(config)#vlanfilter CCNP vlan-list all?? 对所有VLAN
注意:做这个实验时,要在每一台路由器上先cleararp-cache
DHCP snooping
原理:
--启用后,可以将交换机的端口分为trusted接口和Untrusted接口,默认在交换机上启用后,所有接口变为Untrusted接口,需要手动设置trusted接口。
--对于Untrusted接口,只能接收DHCP的请求消息,不会向这个接口发送出DHCP的请求消息。并且drop掉接口进来的DHCP的响应消息。
--对于trusted接口,没有任何限制,也不做检测。
注意:早期的IOS不支持
?
配置实例:
第一步:
SW1(config)#ipdhcp snooping???????? 必须先开启这一命令,相当于总开关
SW1(config)#ipdhcp snooping vlan 1? 再指定VLAN,这一步也必须要
?
第二步:指定trusted接口,通常是trunk接口、连接真实DHCP服务器的接口。
SW1(config-if)#ip dhcp snooping trust
?
第三步:还要在被信任的DHCP服务器上打上下列命令:(如果是用路由器做DHCP服务器的话才需要)
R1(config)#ipdhcp relay information trust-all
?
SW1#show ipdhcp snooping
?
关键点:DHCPsnooping会在接入的交换机上建立一个DHCP绑定表,为每一个分配的IP建立一个表项,其中包括客户端的IP地址、MAC地址、端口号、VLAN编号、租用和绑定类型等信息。也可手动向这个绑定表中添加表项。
?
SW1#show ipdhcp snooping binding?? 只显示动态的绑定项
SW1#show ipdhcp snooping database
SW1#show ipsource binding?? 显示动态和静态绑定项
?
SW1(config)#ipdhcp snooping binding 1234.5678.abcd vlan 20 172.16.1.1 interface f0/5 静态绑定一个条目
?
其它命令:
SW1(config)#ipdhcp snooping information option?? //启用option82选项,默认就已开启
SW1(config)#ipdhcp snooping limit rate 100?????? //限定接口每秒可收多少个DHCP请求包
?
IPSG源?;?/span>
源?;ぬ匦钥煞乐狗欠ㄉ璞傅劣煤戏ㄉ璞傅腎P接入网络,只能用于二层端口
?
需要用到IP绑定表,有两种方式获得绑定条目:
??? 1、静态绑定IP源地址
??? 2、使用DHCP snooping技术中动态生成的源IP绑定表
?
原理:一旦在一个接口启用了源?;?,这个接口默认拒绝所有IP,除非在IP绑定表中有这个接口对应的IP地址绑定条目。
?
ip sourcebinding aaaa.bbbb.cccc vlan 1 100.1.1.1 interface f0/1? 静态绑定
?
ip dhcpsnooping?
ip dhcpsnooping vlan 1
?
interfacef0/10
? ip verify source??????????????? //开启源?;?,只基于IP进行检查,在3560和3750上这样配
? ip verify source port-security? //开启源?;?,基于IP和MAC进行检查,默认对于所有的IP是deny-any,对于mac的动作是permit-any,如果做了端口安全,对于mac的动作就是deny-any。
? 2025. All Rights Reserved. 沪ICP备2023009024号-1