关于绿盟科技

智慧安全2.0

【产品】硬件盒子在云中获取网络流量的方法

时间:2017-01-25 来源: 作者: 打印 字号:T|T


概述


随着云计算和虚拟化技术的优势显现,越来越多企业开始部署云环境。在新技术和新服务模式带来利益的同时,黑客对云端资源的觊觎以及攻击手段的不断升级,也引发了新的安全风险和挑战。虚拟化安全漏洞、虚拟机之间流量不可见和虚拟机逃逸等安全问题给企业带来了不安。如何最大程度利用已部署的“硬件盒子”覆盖云端安全,降低企业安全投入成本,为新一轮的安全布局争取更长的过渡期,是企业正在面临的问题。


提及云安全,“硬件盒子”在云环境下有些不适应,由于这些“硬件盒子”在传统网络中均采用旁挂的部署形态,决定了其获得网络流量的方式依赖于被旁挂设备,如通过交换机端口镜像技术或Flow技术等。但在云环境下,租户的网络通常是虚拟化的网络,而且绝大多数的流量为业务的东西向流量,因此很难将这些“硬件盒子”放入云环境内部对用户的流量进行安全防护。


既然在云平台等虚拟化的网络中“硬件盒子”放不进去,那么为何不转变一种思路,将流量引出来。由于不同厂商采用的虚拟化类型和技术存在差异,虚拟化结构复杂,而且虚拟化的网络又有着各种各样的形式,因此“硬件盒子”获取流量的制约因素多,难度大。


常见方法
随着计算、存储虚拟化的发展,在云平台建设中,这两类资源的实现方式已经相对成熟。而发展相对滞后的网络虚拟化成为了各种云平台实现技术的主要区别之一,同时也是云环境中最复杂的模块之一,各厂家的实现方式各有不同。比如VMware有使用虚拟交换机的原生模式,也有使用NSX的SDN方案;OpenStack就更多了,比如使用其虚拟化组件Neutron的方案,激进一些的云服务提供商有使用DragonFlow、OpenDove等与Neutron集成的SDN方案,还有利用硬件SDN交换机与开源Open vSwitch自主设计的网络方案,还有一些云服务提供商自成一体,集成网络厂商的虚拟化和SDN方案。因此很难用固定的方式实现云平台内网络流量向外部安全设备牵引。

 

从各云平台的网络设计来看,可以大体的将其网络分为基于SDN的虚拟化网络和非SDN的虚拟化网络。SDN网络由于其控制、转发相分离的架构,逻辑上集中的控制平面成为了流量调度天然的优势,因此在这种网络中实现云平台内网络流量向安全设备牵引,相对比较简单,而且容易实现自动化。


 另一种就是没有SDN的虚拟化网络,这种情况下如果要实现流量的调度,只能是结合用户的业务部署情况以及安全设备防护任务和防护策略情况,手动的去修改云平台内虚拟的网络设备,进而实现其流量的定向移动。或者可以在云平台内,针对特定的网络结构,通过脚本的方式,实现网络配置的更改,完成相对自动化的流量调度。


获取流量示例方法描述


  以VMware为例,其云环境内网络流量的获取方法主要有以下几种方式:
 基于VMware vSphere平台的端口镜像技术或Flow技术;
 基于NSX的虚拟机流量重定向技术;
 基于其提供的虚拟化平台安全API接口,通过这类接口获取到虚拟机的流量。


下文主要从方式一的角度展开介绍。以VMware vSphere云场景获取网络流量,网络数据包副本实际上需经过两次中转。第一次中转发生在vSphere内部,虚拟机流入/流出分布式交换机(vSphere distributed switches,以下简称VDS)的数据包,无论是ESXi主机内的虚拟机流量,还是主机间的虚拟机流量,通过VDS的端口镜像功能,流量可被镜像至VDS的上行端口(Uplink),由于ESXi主机网卡连接着vSphere外部的物理交换机,流量会经Uplink管道流向vSphere外部物理交换机。此时,通过在该交换机上再次配置port-Mirroring,即可完成第二次网络流量的中转,“硬件盒子”由于旁挂在这台物理交换机上,通过监听口即可获得网络数据包副本。

 

 

具体配置流程
 背景知识一:VMware vSphere场景下的端口镜像技术的使用,需满足两个条件
1) 虚拟机通过vSphere分布式交换机连网;
2) vSphere版本在5以上(vSphere 5开始引入VDS);
 背景知识二:分布式交换机上的接口类型主要分为两种,与ESXi主机物理网卡相连接的级联口,以及与虚拟机的虚拟网卡相连接的虚拟口。虚拟口还包括管理口,VMKernel口和VMotion等特殊功能接口。
下述场景以两台ESXi主机为例,ESXi主机上原本采用的是标准交换机(以下简称:vSwitch)进行连网,分别管理各自的虚拟机。要完成两次流量中转,前提是将vSwitch上的虚拟机迁移至VDS,配置步骤如下:
  
1. 新建vNetwork分布式交换机 

 

 

2. 选择分布式交换机的版本

 

 

  

3. 指定级联端口(dvUplink)的数量,保持与主机上的物理适配器的最大数相同,本场景中两台ESXi主机都各有两块网卡,其中一块配置到了vSwitch上,这里指定为1,可自行添加。

 

 

 


4. 添加主机与物理网卡到分布式交换机中

 

 

 

 

5. 自动创建默认端口组

 

 


 

6. 分布式交换机创建完成

 

 

 

 

7. 原本vSwitch没有变化,虚拟机原有通讯都可以正常进行,接下来把vmnic0从标准交换机上移除,并加入分布式交换机,

 

 

 

 

8. 初步调整后的情况如下,注意,因为还没有将虚拟机迁移到分布式交换机,所以现在vm01与vm02暂时无法与外界通讯了。将虚拟机也迁移到分布式交换机上,完成配置过程。

 

 

 

9. 开始VDS上端口镜像的配置。用户可以定义端口镜像会话的名称,并选择是否想要在目标端口允许正常I/O。还可以选择VLAN进行镜像数据包封装。

 

 

 

 

10. 点击下一步后,选择监控的镜像源(IngressEgress或者Ingress/Egress)。然后,指定源虚拟机的端口ID,如果不知道虚拟机的dvPort号或者Port ID号,可参考下述方法:


1) 首页>目录>网络视图
2) 选择dvSwitch并选择右侧面板中的端口选项,向下滚动以查看虚拟机和相关端口IDPort ID框输入端口号,并将其移动到右侧面板,然后点击下一步。


 

 

 

11. 选择镜像流量的目的地。在目的地下拉菜单中,有两个选项,分别为portUplink,选择Uplink并执行下一步。

 

 

 

12. 启用该端口镜像会话, dvSwitch Setting > Port Mirroring > Edit 窗口下,在Status状态栏处选择“启用”,如下图所示,这样就启用了该端口镜像会话,VDS会将流量镜像到选定的目标端口。 

 

 

 

 

13. 通过在vSphere外部的物理交换机再次配置端口镜像,将连接ESXi主机物理适配器的接口指定为镜像口,将连接“硬件盒子”的接口设置为监听口,“硬件盒子”即可获得云场景下的内部流量。