成长值: 62320
|
思科知识点汇总贴
http://bbs.hh010.com/thread-529979-1-1.html
(出处: 鸿鹄论坛)
交换机安全问题
1.内部安全性的模块化
2.针对交换机的攻击类型
①MAC地址泛洪攻击
a)交换机基础知识
i)根据数据帧中的源MAC地址进行学习,目标MAC地址进行数据的转发(2层交换机);
ii)转发过程中依靠对 CAM 表的查询来确定正确的转发接口,一旦在CAM表中无法找到相关目的 MAC 对应的条目,此数据帧将被泛洪到除接收端口外的所有端口;
iii)CAM 表的容量有限只能储存不多的条目,当 CAM 表记录的 MAC 地址达到上限后,新的条目将无法添加到 CAM 表中。
b)攻击原理
攻击主机通过伪造大量包含随机源MAC地址的数据帧不断发往未知目的地,交换机根据数据帧中的源MAC地址进行学习。当交换机的CAM表被伪造的MAC地址填满后,在CAM表被刷新之前将不再学习任何的MAC地址。那么任何一个经过交换机的正常数据帧都将被泛洪处理。
c)使用端口安全性阻止基于MAC的攻击
i)端口安全性限制MAC泛洪攻击并锁定端口
ii)端口安全性产生SNMP Trap消息
iii)只有允许的数据帧被转发
iv)超出限制的新的MAC地址将被禁止
d)配置端口安全性
Switch(config-vlan)#int f0/24
Switch(config-if)#switchport mode access
Switch(config-if)#switchport access vlan 2
Switch(config-if)#switchport port-security #启用端口安全性
Switch(config-if)#switchport port-security maximum 2 #设置MAC地址的限制数量
Switch(config-if)#switchport port-security mac-address 0000.1111.2222
Switch(config-if)#switchport port-security mac-address 0000.1111.3333 #指定允许的MAC地址
Switch(config-if)#switchport port-security violation restrict #定义违规动作(protect/restrict/shutdown)
e)检查端口安全性
Switch#show port-security int f0/24 #查看端口安全性的基本信息
Switch#show port-security #查看哪些接口启用了端口安全性、违规动作等
Switch#show port-security #查看端口所对应的允许的MAC地址
f)配置Sticky MAC地址
Switch(config-if)#switchport port-security mac-address sticky
Switch(config-if)#switchport port-security mac-address sticky 0000.1111.2222
②VLAN攻击
a)802.1Q和ISL标记攻击
标记攻击属于恶意攻击,利用它一个 VLAN 上的用户可以非法访问另一个VLAN。例如,如果将交换机端口配置成dynamic auto或者dynamic desirable或是直接设置成trunk模式,它将与邻居设备进行协商,那么它将有可能成为干道端口(只要邻居设备开启DTP协商功能),并可以接收通往任何VLAN 的流量。由此,恶意用户可以通过受控制的端口与其它 VLAN 通信。有时即便只是接收普通分组,交换机端口也可能违背自己的初衷,像全能干道端口那样操作(例如,从本地以外的其它 VLAN 接收分组),这种现象通常称为“VLAN 渗漏”。
对于这种攻击,只需将所有不可信端口(不符合信任条件)上的DTP(DynamicTrunk Protcol)协商设置为“关”,即可预防这种攻击的侵袭。
b)双封装 802.1Q/ 嵌套式VLAN攻击
在交换机内部,VLAN数字和标识用特殊扩展格式表示,目的是让转发路径保持端到端 VLAN 独立,而且不会损失任何信息。在交换机外部,标记规则由 ISL 或 802.1Q 等标准规定。
ISL 属于思科专有技术,是设备中使用的扩展分组报头的紧凑形式,每个分组总会获得一个标记,在离开access端口之前没有标识剥离的风险,因而可以提高安全性。
而另一方面,制订了802.1Q的IEEE委员会决定,为实现向下兼容性,最好支持本征VLAN,即支持与802.1Q链路上任何标记显式不相关的VLAN。这种VLAN以隐含方式被用于接收802.1Q端口上的所有无标记流量。这种功能是用户所希望的,因为利用这个功能,802.1Q端口可以通过收发无标记流量直接与老802.3端口对话。但是,在所有其他情况下,这种功能可能会非常有害,因为通过 802.1Q 链路传输时,与本征VLAN 相关的分组将丢失其标记,例如丢失其服务等级( 802.1p 位)。
当双封装802.1Q分组恰巧从一个VLAN与干道的本征VLAN相同的接口进入交换机时,这些分组的VLAN标识将无法端到端保留,因为802.1Q干道总会对离开trunk端口的分组进行修改,即剥离掉其外部标记。删除外部标记之后,内部标记将成为分组的惟一 VLAN标识符。因此,如果用两个不同的标记对分组进行双封装,流量就可以在不同VLAN之间跳转。
这种情况将被视为误配置,因为802.1Q标准并不强制用户在这些情况下使用本征VLAN。事实上,应一贯使用的适当配置是从所有 802.1Q 干道清除本征VLAN (将其设置为 802.1q-all-tagged 模式能够达到完全相同的效果)。在无法清除本地 VLAN 时, 应选择未使用的 VLAN 作为所有干道的本征VLAN,而且不能将该VLAN用于任何其它目的。STP、DTP(DynamicTrunk Protcol)和UDLD等协议应为本征VLAN 的唯一合法用户,而且其流量应该与所有数据分组完全隔离开。
c)VLAN跳跃攻击
虚拟局域网(VLAN)是对广播域进行分段的方法。VLAN还经常用于为网络提供额外的安全,因为一个VLAN上的计算机无法与没有明确访问权的另一个VLAN上的用户进行对话。不过VLAN本身不足以保护环境的安全,恶意黑客通过VLAN跳跃攻击,即使未经授权,也可以从一个VLAN跳到另一个VLAN。
VLAN跳跃攻击(VLAN hopping)依靠的是动态中继协议(DTP(DynamicTrunk Protcol))。如果有两个相互连接的交换机,DTP(DYNAMIC TRUNK PROTCOL)就能够对两者进行协商,确定它们要不要成为802.1Q中继,洽商过程是通过检查端口的配置状态来完成的。
VLAN跳跃攻击充分利用了DTP(DYNAMIC TRUNK PROTCOL),在VLAN跳跃攻击中,黑客可以欺骗计算机,冒充成另一个交换机发送虚假的DTP(DynamicTrunk Protcol)协商报文,宣布它想成为中继。真实的交换机收到这个DTP报文后,以为它应当启用中继功能,而一旦中继功能被启用,通过所有VLAN的信息流就会发送到黑客的计算机上。
中继建立起来后,黑客可以继续探测信息流,也可以通过给帧添加VLAN标签信息,指定想把攻击流量发送给哪个VLAN。
d)VTP攻击
VLAN中继协议(VTP,VLAN Trunk Protocol)是一种管理协议,它可以减少交换环境中的配置数量。就VTP而言,交换机可以是VTP服务器、VTP客户端或者VTP透明交换机,这里着重讨论VTP服务器和VTP客户端。用户每次对工作于VTP服务器或VTP客户端的交换机进行配置改动时,无论是添加、修改还是移除VLAN,VTP配置版本号都会增加1,VTP服务器和VTP客户端看到VTP的配置版本号大于目前的版本号后,就自动与高VTP配置版本号进行同步。
恶意黑客可以让VTP为己所用,移除网络上的所有VLAN(除了默认的VLAN外),这样他就可以进入其他每个用户所在的同一个VLAN上。不过,用户可能仍在不同的网段,所以恶意黑客就需要改动他的IP地址,才能进入他想要攻击的主机所在的同一个网段。
恶意黑客只要连接到交换机,并在自己的计算机和交换机之间建立一条中继,就可以充分利用VTP。黑客可以发送高于目前网络的VTP配置版本号到网络中,这会导致所有交换机都与恶意黑客的计算机进行同步。
e)缓解VLAN攻击
i)不使用的端口
– 关闭所有不使用的端口
– 配置所有不使用的端口为Access模式
– 将所有不使用的端口划分到一个未使用的VLAN中
– 将所有不使用的端口的native VLAN配置为一个未使用的VLAN
ii)Trunk端口
– 在接口模式下使用命令switchport mode trunk配置Trunk端口,并且禁用DTP协商
– 将Trunk端口的native VLAN配置为一个未使用的VLAN
– 配置Trunk端口的允许VLAN列表,且不允许native VLAN通过
③DHCP欺骗攻击
a)DHCP工作原理
DHCP服务分为两个部分:服务器端和客户端。所有的IP网络配置资料都由服务器集中管理,并负责处理客户端的DHCP请求;而客户端则会使用从服务器分配下来的网络配置数据进行网络配置。这种网络配置数据的分配是动态的,是会变化的,称为“租约”分配。 “租约”的形成有4个阶段:
i)发现阶段:客户端寻找服务器的阶段。客户端开始时并不知道服务器的IP地址,因此,它会向本地网络广播发送DISCOVER发现信息来寻找服务器,本地网络中的所有计算机都会接收到这种广播,但只有DHCP服务器才会做出响应。
ii)提供阶段:服务器向客户端提供网络配置参数的阶段。在网络中接收到客户端DISCOVER发现信息的DHCP服务器都会做出响应,它们会从尚未出租的IP地址中挑选一个,向客户端发送包含预备出租的IP地址和其他设置的OFFER提供信息。
iii)选择阶段:客户端选择某台服务器提供的网络配置参数的阶段。如果网络中存在多台DHCP服务器,它们都会向客户端发送OFFER信息,客户端可能会收到多台DHCP服务器发送的OFFER信息,但它只选择接收到的第一个OFFER信息,然后它就以广播形式发送一个REQUEST请求信息,该信息中包含向它所选定的第一个OFFER信息中的网络配置参数和它选择的DHCP服务器的信息。
iv)确认阶段:DHCP服务器确认所提供的网络配置参数。在网络中接收到客户端REQUEST请求信息的对应DHCP服务器会做出响应,如果服务器能满足客户端的请求,它便会向客户端发送一个包含网络配置参数的ACK确认信息,告诉客户端可以使用它所提供的服务,客户端根据该ACK信息来配置其网络参数,否则,它便会向客户端发送一个不能满足请求的NACK信息,并且收回OFFER信息中欲分配给客户端的地址,客户端会回到第一步,重新发起DISCOVER信息。
“租约”形成后,DHCP服务发挥作用,在不同的“租用期限”将会经历以下几个阶段:
i)重新登录:DHCP Clinet每次重新登录网络时,就不需要再发送DHCP discover发现信息了,而是直接发送包含前一次所分配的IP地址的DHCP request请求信息。当DHCP Server收到这一信息后,它会尝试让DHCP Clinet继续使用原来的IP地址,并回答一个DHCP ack确认信息。如果此IP地址已无法再分配给原来的DHCP Clinet使用时(比如此IP地址已分配给其它DHCP Clinet使用),则DHCP Server给DHCP Clinet答一个DHCP nack否认信息。当原来的DHCP Clinet收到此DHCP nack否认信息后,它就必须重新发送DHCP discover发现信息来请求新的IP地址。
ii)更新租约:DHCP Server向DHCP Clinet出租的IP地址一般都有一个租借期限,期满后DHCP Server便会收回出租的IP地址。如果DHCP Clinet要延长其IP租约,则必须更新其IP租约。
– DHCP Clinet启动和IP租约期限过50%时,DHCP Clinet都会主动向DHCP Server发送DHCP request来更新其IP租约。使用单播发送。
–若步骤①中更新租约失败。DHCP Clinet将在IP租约期限过87.5%时,再次发出DHCP request消息。不过这次的目标是广播域中所有的DHCP Server,所以使用的是广播发送。
b)DHCP欺骗原理
从DHCP工作原理可以看出,如果客户端是第一次、重新登录或租期已满不能更新租约,客户端都会用到广播报文,并且只接收第一个到达的服务器提供的网络配置参数,如果在网络中存在多台DHCP服务器(有一台或更多台是非授权的),谁先应答,客户端就采用其提供的网络配置参数。假如非授权的DHCP服务器先应答,这样客户端最后获得的网络参数即是非授权的,客户端即被欺骗了。而在实际应用DHCP的网络中,基本上都会采用DHCP中继,这样的话,本网络的非授权DHCP服务器一般都会先于其余网络的授权DHCP服务器的应答(由于网络传输的延迟),在这样的应用中,DHCP欺骗更容易完成。
c)DHCP欺骗防范
防范原理:为了防止DHCP欺骗,只要不让非授权的的DHCP服务器的应答通过网络即可,目前网络基本都采用交换机直接到桌面,并且交换机的一个端口只接一台计算机,因此,可以在交换机上做控制,只让合法的DHCP应答通过交换机,阻断非法的应答,从而防止DHCP欺骗,并且对用户的计算机不用做任何的改变。
i)防范方法:在交换机上启用DHCP Snooping功能
DHCP Snooping通过建立和维护DHCP Snooping绑定表并过滤不可信任的DHCP信息来防止DHCP欺骗。当交换机开启了DHCP Snooping后,会对DHCP报文进行侦听,并可以从接收到的DHCP Request或DHCP Ack报文中提取并记录IP地址和MAC地址信息。建立一张包含有用户MAC地址、IP地址、租用期、VLAN ID、交换机端口等信息的一张表,并且DHCP Snooping还将交换机的端口分为可信任端口和不可信任端口,当交换机从一个不可信任端口收到DHCP服务器的报文时,比如DHCP OFFER报文、DHCP ACK报文、DHCP NACK报文,交换机会直接将该报文丢弃;对信任端口收到的DHCP服务器的报文,交换机不会丢弃而直接转发。一般将与用户相连的端口定义为不可信任端口,而将与DHCP服务器或者其他交换机相连的端口定义为可信任端口,也就是说,当在一个不可信任端口连接有DHCP服务器的话,该服务器发出的报文将不能通过交换机的端口。因此只要将用户端口设置为不可信任端口,就可以有效地防止非授权用户私自设置DHCP服务而引起的DHCP欺骗。
ii)配置DHCP Snooping
switch(config)#ip dhcp snooping
switch(config)#ip dhcp snooping information option
switch(config)#ip dhcp snooping vlan 10 , 20
switch(config)#int f0/1
switch(config-if)#ip dhcp snooping limit rate 10 #dhcp包的转发速率,超过接口就shutdown,默认不限制;
switch(config-if)#ip dhcp snooping trust #配置端口成为信任端口,信任端口可以正常接收并转发DHCP Offer报文,不记录ip和mac地址的绑定,默认所有端口都是非信任端口
switch(config)#ip dhcp snooping binding 0000.1111.2222 vlan 7 192.168.10.5 interface f0/1 #静态ip和mac绑定
switch(config)#ip dhcp snooping database tftp:// 10.1.1.1/dhcp_table #因为掉电后,这张绑定表就消失了,所以要选择一个保存的地方,ftp,tftp,flash皆可。本例中的dhcp_table是文件名,而不是文件夹,同时文件名要手工创建一个。
switch#show ip dhcp snooping #显示DHCP探测状态
④ARP欺骗
a)ARP欺骗原理
在 TCP/IP 网络环境下,一个 IP 数据包到达目的地所经过的网络路径是由路由器根据数据包的目的 IP 地址查找路由表决定的。但是IP 地址只是主机在网络层中的地址,要在实际的物理链路上传送数据包,还需要将 IP 数据包封装到数据帧后才能发送到网络中。同一链路上的哪台主机接收这个MAC帧是依据该MAC帧中的目的MAC地址来识别的,即除了同一链路上将网卡置为混杂模式的主机外,只有当某台主机的MAC地址和链路中传输的数据帧的目的MAC地址相同时,该主机才会接收这个MAC帧并拆封为IP数据包交给上层模块处理。因此,每一台主机在发送链路层数据帧前都需要知道同一链路上接收方的MAC地址。地址解析协议ARP正是用来进行 IP地址到MAC地址的转换的。同时为了避免不必要的ARP报文查询,每台主机的操作系统都维护着一个ARP高速缓存ARP Cache,记录着同一链路上其它主机的IP地址到MAC地址的映射关系。ARP高速缓存通常是动态的,该缓存可以手工添加静态条目,由系统在一定的时间间隔后进行刷新。
ARP协议虽然是一个高效的数据链路层协议,但作为一个早期的协议,它是建立在各主机之间相互信任的基础上的,所以ARP协议存在以下缺陷:
i)ARP 高速缓存根据所接收到的ARP 协议包随时进行动态更新;
ii)ARP 协议没有连接的概念,任意主机即使在没有ARP请求的时候也可以做出应答;
iii)ARP 协议没有认证机制,只要接收到的协议包是有效的,主机就无条件的根据协议包的内容刷新本机ARP缓存,并不检查该协议包的合法性。因此攻击者可以随时发送虚假ARP包更新被攻击主机上的ARP缓存,进行地址欺骗或拒绝服务攻击。
针对交换机根据目的MAC地址来决定数据包转发端口的特点,ARP欺骗的实现:
假设主机C为实施ARP欺骗的攻击者,其目的是截获主机B和主机A之间的通数据,且主机C在实施ARP欺骗前已经预先知道A和B的IP地址。这时C先发送ARP包获得主机B的 MAC地址,然后向B发送ARP Reply数据包,其中源IP地址为A的IP地址,但是源MAC地址却是主机C的MAC地址。主机B收到该ARP Reply后,将根据新的IP地址与MAC映射对更新自己的ARP缓存。这以后当B给A发送数据包时,目标MAC地址将使用C的MAC地址,因此交换机根据C的MAC地址就将数据包转发到攻击者C所在的端口。同理,攻击者C发送ARP Reply使主机A确信主机B的MAC地址为C的MAC地址。在间歇的发送虚假ARP Reply的同时,攻击者C打开本地主机的路由功能,将被劫持的数据包转发到正确的目的主机,这时攻击者对主机A和B来说是完全透明的,通信不会出现异常,但实际上数据包却被C非法截获,攻击者C成为了“中间 人”。
b)Cisco的DAI技术
思科 Dynamic ARP Inspection,DAI在交换机上提供IP地址和MAC地址的绑定, 并动态建立绑定关系。DAI以DHCP Snooping绑定表为基础,对于没有使用DHCP的服务器个别机器可以采用静态添加ARP access-list实现。DAI配置针对VLAN,对于同一VLAN内的接口可以开启DAI也可以关闭。DAI可以设置每个接口为信任或非信任状态,信任端口不进行DAI,非信任端口进行DAI校验(缺省为非信任端口)。通过DAI可以控制某个端口的ARP请求报文数量。通过这些技术可以防范"中间人"攻击。
switch(config)#ip dhcp snooping
switch(config)#ip dhcp snooping vlan 10 , 20
switch(config)#ip arp inspection vlan 10 , 20
switch(config)#int f0/1
switch(config-if)#ip dhcp snooping limit rate 10 #dhcp包的转发速率,超过接口就shutdown,默认不限制;
switch(config)#int f0/24
switch(config-if)#description uplink
switch(config-if)#switchport mode trunk
switch(config-if)#switchport trunk allowed vlan 10 , 20
switch(config-if)#ip dhcp snooping trust
switch(config-if)# ip arp inspection trust
c) IP 源防护(IP Source Guard, IPSG)
交换机内部有一个IP源绑定表(IP Source Binding Table)作为每个端口接收到的数据包时的检测标准。只有在两种情况下,交换机会转发数据:i)所接收到的IP包满足IP源绑定表中Port/IP/MAC的对应关系;ii)所接收到的是DHCP 数据包。其余数据包将被交换机做丢弃处理。IP 源绑定表可以由用户在交换机上静态添加,或者由交换机从DHCP snooping绑定表(DHCP Snooping Binding Table)自动学习获得。 静态配置是一种简单而固定的方式,但灵活性很差,因此Cisco建议用户最好结合 DHCP Snooping 技术使用 IP Source Guard,由 DHCP 监听绑定表生成 IP 源绑定表。
switch(config-if)# ip verify source [port-security] #在接口下开启IP源防护功能。此命令是35系列交换机的命令。不加port-security 参数,表示IP源防护功能只执行“源 IP 地址过滤”模式;加上port-security参数以后,就表示 IP 源防护功能执行“源 IP 和源 MAC 地址过滤”模式当执行“源 IP 和源 MAC 地址过滤”模式时,还可以通过以下命令限制非法 MAC 包的速度
switch (config-if)#switchport port-security limit rate invalid-source-mac 50 #限制非法二层报文的速度为每秒 50 个;可以用参数 none 表示不限制。只在“源 IP 和源 MAC 地址过滤”模式下有效,并且只有 45 系列及以上才支持该命令。
switch (config)#ip source binding 000f.1fc5.1008 vlan 10 192.168.10.131 interface fa0/2 #添加一条静态 IP 源绑定条目
switch#show ip source binding #显示当前的 IP 源绑定表
switch#show ip verify source #显示当前的 IP 源地址过滤器的实际工作状态
⑤邻居发现协议
switch(config)#[no] cdp/lldp run #全局模式下[禁用]开启cdp或lldp
switch(config-if)#[no] cdp/lldp enable #接口模式下[禁用]开启cdp或lldp
switch#show cdp/lldp neighbor [detail] #查看cdp或lldp邻居状态
⑥telnet协议
a)将telnet协议更换为SSH
switch(config)#username xyz password abc123 #配置用户名和密码
switch(config)#ip domain-name xyz.com #配置域名
switch(config)#crypto key generate rsa #生成RSA密钥。此时SSH进程自动启动
switch(config)#ip ssh version 2 #配置为SSH版本2
switch(config)#line vty 0 15
switch(config-line)#login local
switch(config-line)#transport input ssh #在VTY线路上允许SSH协议
b)在vty线路上配置ACL
switch(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 any
switch(config)#line vty 0 15
switch(config-line)#access-class 100 in
⑦HTTP服务
switch(config)#access-list 100 permit ip 10.1.1.0 0.0.0.255 any
switch(config)#username xyz password abc123 #配置用户名和密码
switch(config)#ip domain-name xyz.com #配置域名
switch(config)#crypto key generate rsa #生成RSA密钥。此时SSH进程自动启动
switch(config)#no ip http server #关闭HTTP服务
switch(config)#ip http secure-server #启用HTTPS服务
switch(config)#http access-class 100 in #配置ACL控制HTTP访问
switch(config)#http authentication local #配置HTTPS验证
3.交换机安全性的建议
①交换机访问的安全性
–配置系统密码
–使用AAA服务器对管理员访问进行验证
–配置加密或哈希的密码
– Console口的物理安全性
–使用ACL提高Telnet访问的安全性
–若可能,使用SSH
–若可能,使用HTTPS(SSL)
–配置系统警告提示信息
–使用syslog记录系统消息
–禁用未使用的服务
②交换机协议的安全性
–禁用CDP和LLDP,仅在必要时使用
–生成树的安全性
③缓解通过交换机造成的危害
–注意Trunk链路的配置,禁用DTP协商
–限制物理端口的访问
–为使用和未使用的端口制定标准的接入端口配置
–关闭未使用的端口
|
|