交换机安全.docx
《交换机安全.docx》由会员分享,可在线阅读,更多相关《交换机安全.docx(12页珍藏版)》请在冰点文库上搜索。
交换机安全
二层安全:
二层攻击方法可分为四大类:
1、MAClayerattacks
2、VLANattacks
3、spoofattacks
4、attacksonswitchdevices
一、MAClayerattacks
攻击方法:
1、MAC地址flooding攻击
2、MAC地址的欺骗攻击
解决方案:
1、基于源MAC地址允许流量:
端口安全
2、基于源MAC地址限制流量:
staticCAM
3、阻止未知的单/组播帧
4、802.1x基于端口的认证
二、VLANattacks
解决方案:
1、switchmodeaccess
2、VACL
3、PVLAN
三、spoofattacks
1、DHCPspoof
解决方案:
DHCPsnooping
2、IPspoof
解决方案:
IP源防护
3、ARPspoof
解决方案:
1、静态绑定ARP条目
2、DAI
四、attacksonswitchdevices
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
intf0/1
switchportmodeaccess//启用端口安全时,必须先设为access接口
switchportport-security//启用端口安全(默认只能学一个MAC)
switchportport-securitymaximum1//指定最多允许学多少个地址
switchportport-securitymac-addressaaaa.bbbb.cccc
switchportport-securityviolation[protect|restrict|shutdown]//指定行为
switchportport-securityagingtime1(分钟)//设定多长时间后能重新学习MAC地址,也就是设定现有MAC地址的有效期
switchportport-securitymac-addresssticky//将动态学到的地址粘住,永久使用
showport-security//可以看到哪些接口应用了端口安全
showport-securityaddress//可以看到授权的MAC地址
showport-securityinterfacef0/1//可以看到接口的具体状态
showinterfacesfastEthernet0/1
FastEthernet0/1isdown,lineprotocolisdown(err-disabled)
通常做接口安全,要先把接口shutdown,这样它就不会自动学习
让err-disable接口自动恢复
errdisablerecoverycausepsecure-violation
showerrdisable
2.基于主机MAC来限制流量(3550上才可以做)
列表中定义的MAC将被限制流量
mac-address-tablestatic0010.7b80.7b9bvlan1drop
3.阻塞未知单(组)播扩散(3550上才可以做)
对未知MAC地址,SW将从本VLAN的其他端口转发出去,但对于某些端口(端口安全只需要一个MAC/已到最大MAC)没必要再转发这些单(组)播。
就可以在这些端口上设定这一特性,通常结合端口安全来做。
intf0/1
switchportblock[unicast|multicast]
showintf0/1switchport
...Unknownunicastblocked:
enabled
...Unknownmulticastblocked:
disabled
4、802.1x基于端口的认证
一种第二层的访问控制方法,通过AAA服务器对接入一个接口的用户进行认证,以决定客户能否访问网络。
配置:
aaanew-model
aaaauthenticationdot1xdefaultgroupradius
dot1xsystem-auth-control
interfacef0/1
dot1xport-controlauto
Vlan的access-map(可以基于mac与ip)
VACL也叫VLAN映射表,通过VACL可以实现对一个VLAN中的流量进行过滤。
VACL可以根据二层信息进行过滤,也可以根据三层信息来进行过滤。
1、通过调用IPACL,可以根据三层的IP地址、协议以及端口号等信息进行过滤。
2、通过调用MACACL,可以根据MAC地址进行过滤,还可以过滤其它的非IP流量。
每一个VACL可以包含多条语句,每一条语句对于匹配的流量可以有三种不同的操作:
1、forward转发,对数据帧或数据包进行正常转发
2、drop丢弃,当数据流与某个拒绝语句匹配上,将被丢弃
3、重定向对于数据流的转发方向作重定向(高端交换机才支持)
注意:
如果没有说明一条语句的操作行为,默认的行为是forward。
如果进入VLAN的数据流没有匹配上任何一条语句,最后将被丢弃掉。
基于IP的:
access-list1permit192.168.1.10.0.0.0
vlanaccess-mapCCNP10
matchipaddress1
actiondrop
vlanaccess-mapCCNP20
actionforword
vlanfilterCCNPvlan-list100//全局模式下调用,要指明用在哪个VLAN中,也可对所有ALL
注意:
每一条语句默认是转发的showrun可以看到有actionforword
showvlanaccess-map
showvlanfilter
基于mac地址的(MAC地址列表):
1、先写MAC地址列表
macaccess-listextendedccnp
permithost00e0.1e3d.d18cany
2、再写access-map
vlanaccess-mapCCNP10
actiondrop
matchmacaddressccnp
vlanaccess-mapCCNP20
actionforward
3、调用:
R1(config)#vlanfilterCCNPvlan-list10
Access-map的名字vlan号
R1(config)#vlanfilterCCNPvlan-listall对所有VLAN
注意:
做这个实验时,要在每一台路由器上先cleararp-cache
DHCPsnooping
原理:
--启用后,可以将交换机的端口分为trusted接口和Untrusted接口,默认在交换机上启用后,所有接口变为Untrusted接口,需要手动设置trusted接口。
--对于Untrusted接口,只能接收DHCP的请求消息,不会向这个接口发送出DHCP的请求消息。
并且drop掉接口进来的DHCP的响应消息。
--对于trusted接口,没有任何限制,也不做检测。
注意:
早期的IOS不支持
配置实例:
第一步:
SW1(config)#ipdhcpsnooping必须先开启这一命令,相当于总开关
SW1(config)#ipdhcpsnoopingvlan1再指定VLAN,这一步也必须要
第二步:
指定trusted接口,通常是trunk接口、连接真实DHCP服务器的接口。
SW1(config-if)#ipdhcpsnoopingtrust
第三步:
还要在被信任的DHCP服务器上打上下列命令:
(如果是用路由器做DHCP服务器的话才需要)
R1(config)#ipdhcprelayinformationtrust-all
SW1#showipdhcpsnooping
关键点:
DHCPsnooping会在接入的交换机上建立一个DHCP绑定表,为每一个分配的IP建立一个表项,其中包括客户端的IP地址、MAC地址、端口号、VLAN编号、租用和绑定类型等信息。
也可手动向这个绑定表中添加表项。
SW1#showipdhcpsnoopingbinding只显示动态的绑定项
SW1#showipdhcpsnoopingdatabase
SW1#showipsourcebinding显示动态和静态绑定项
SW1(config)#ipdhcpsnoopingbinding1234.5678.abcdvlan20172.16.1.1interfacef0/5静态绑定一个条目
其它命令:
SW1(config)#ipdhcpsnoopinginformationoption//启用option82选项,默认就已开启
SW1(config)#ipdhcpsnoopinglimitrate100//限定接口每秒可收多少个DHCP请求包
IPSG源保护
源保护特性可防止非法设备盗用合法设备的IP接入网络,只能用于二层端口
需要用到IP绑定表,有两种方式获得绑定条目:
1、静态绑定IP源地址
2、使用DHCPsnooping技术中动态生成的源IP绑定表
原理:
一旦在一个接口启用了源保护,这个接口默认拒绝所有IP,除非在IP绑定表中有这个接口对应的IP地址绑定条目。
ipsourcebindingaaaa.bbbb.ccccvlan1100.1.1.1interfacef0/1静态绑定
ipdhcpsnooping
ipdhcpsnoopingvlan1
interfacef0/10
ipverifysource//开启源保护,只基于IP进行检查,在3560和3750上这样配
ipverifysourceport-security//开启源保护,基于IP和MAC进行检查,默认对于所有的IP是deny-any,对于mac的动作是permit-any,如果做了端口安全,对于mac的动作就是deny-any。
SW1(config-if)#ipverifysourcevlandhcp-snoopingport-security好像4500以上才这样开启
showipverifysource查看所允许的IP地址
showipsourcebinding
DAI(dynamicarpinspection)
是一种能够验证网络中ARP数据包的安全特性,可以防止中间人攻击。
通常需要和DHCP的snooping结合使用,因为要利用到DHCPsnooping技术生成的绑定表。
也可静态写IP和MAC的绑定表
原理:
启用DAI后,将接口分为trusted和untrusted。
对于untrusted接口,要进行ARP的检查,必须是和绑定表中的条目相匹配的ARP包才允许通过。
iparpinspectionvlan1//启用
intf0/1
iparpinspectiontrust//指定arp检测的trust接口,一定要做
iparpinspectionlimitrate100//限制每秒所接收的arp包个数
showiparpinspectioninterfaces
showiparpinspectionvlan1
一个实际案例:
(不跟DHCP的snooping结合,单独使用DAI)
arpaccess-listCCNP
permitiphost162.16.40.1machost0000.0c07.ac28
Cisco7609_2(config)#iparpinspectionvlan40
Cisco7609_2(config)#iparpinspectionfilterCCNPvlan40static
注意:
ARP包是直接封装进二层的,所以上面的源保护技术没法对付ARP欺骗
广播/组播抑制:
用于对流入端口的广播和组播流量进行监控,超过阀值后丢弃数据包。
3550(config-if)#storm-controlbroadcastlevel5按百分比进行监控
3550(config-if)#storm-controlbroadcastbps10按实际流量,注意单位是M
PVLAN(privateVLAN)私有VLAN
作用:
能够为VLAN内不同端口之间提供隔离的VLAN,能够在一个VLAN之中实现端口之间的隔离。
注意:
配置时,VTP必须为透明模式
组成:
每个PVLAN包括两种VLAN:
1、主VLAN
2、辅助VLAN又分为两种:
隔离VLAN、联盟VLAN
辅助VLAN是属于主VLAN的,一个主VLAN可以包含多个辅助VLAN。
在一个主VLAN中只能有一个隔离VLAN,可以有多个联盟VLAN
三种端口类型:
host隔离端口---属于隔离VLAN
host联盟端口---属于联盟VLAN
promiscuous混杂端口---可以和其它端口通信,不属于任何一个子VLAN,通常是连接网关的端口或是连接服务器的端口。
规则:
在一个主VLAN中只能有一个隔离VLAN,可以有多个联盟VLAN
隔离VLAN中的主机相互间不能访问,也不能和其它子VLAN访问,也不能和外部VLAN访问,只能与混杂端口访问
联盟VLAN中的主机可以相互访问,可以和混杂端口访问,但不能和其它子VLAN访问,也不能和外部VLAN访问
1、设置主VLAN
SW1(config)#vlan200
private-vlanprimary
2、设置二级子VLAN
SW1(config)#vlan201
private-vlanisolated设置为隔离VLAN
SW1(config)#vlan202
private-vlancommunity设置为联盟VLAN
3、将子VLAN划入主VLAN中,建立一个联系
SW1(config)#vlan200
private-vlanassociation201-202
SW1(config)#vlan200
private-vlanassociationadd203加入一个子VLAN
private-vlanassociationremove203移除一个子VLAN
4、将端口设定一个模式,并划入相应的VLAN中
inte0
switchportmodeprivate-vlanhost设置端口的模式,根据子VLAN的类型成为相应的端口
switchportprivate-vlanhost-association200201-----将端口划入VLAN200中的子VLAN201
inte0
switchportmodeprivate-vlanpromiscuous设置混杂端口
switchportprivate-vlanmapping200201-202设定混杂端口所能管理的子VLAN
switchportprivate-vlanmapping200add/remove203增加或移除一个可管理的子VLAN
showvlanprivate-vlan
5、将辅助VLAN映射到主VLAN的第3层SVI接口,从而允许PVALN入口流量的第3层交换。
intvlan200
private-valnmapping201-202设置给予哪几个子VLAN特权,允许这几个子VLAN下的端口访问外部的网段。
showinterfacesprivate-vlanmapping