一种基于Ceph的网络靶场后端存储系统设计方法与流程

文档序号:19827970发布日期:2020-02-04 12:05阅读:230来源:国知局
一种基于Ceph的网络靶场后端存储系统设计方法与流程

本发明涉及信息安全技术领域,具体涉及一种基于ceph的网络靶场后端存储系统设计方法。



背景技术:

网络靶场作为应对网络安全威胁、网络对抗技术装备试验、网络攻防战法演练、培育生成网络攻防对抗能力的重要基础设施,被众多网络安全部门所应用。目前网络靶场的构建大多基于openstack开源云计算平台。

网络靶场中后端存储可分为虚拟机系统存储、镜像(靶标)存储、和逻辑卷存储。目前,网络靶场的后端存储系统普遍依赖于openstack的原生组件实现。由于网络靶场的多元性,其后端存储对效率和安全性有较高的要求。openstack的原生组件并不完全适合网络靶场的后端存储架构。例如cinder作为openstack的块存储模块,可以为网络靶场提供持久性存储。但cinder单点存储模式成本高且存在故障问题,若单个节点的数据损坏,数据便会全部丢失。swift作为openstack的原生对象存储系统,并不具备块存储的功能,其异步写入方式,在高并发情况下可能导致数据不完整更新,读取到错误数据。且存在中心服务器性能带宽瓶颈问题。由此可以看出使用原生openstack组件构建网络靶场后端存储系统存在如下问题:

网络靶场部署效率低,镜像(靶标)文件在不同宿主机之间复制需要花费大量时间。

靶场内虚拟机使用单点存储模式,存在单点故障的安全隐患。

靶场内虚拟机迁移效率低,无法做到时时迁移。

虚拟机数据备份速度慢,无法利用硬件本身的存储能力实现备份、无法实现增量备份。

ceph是一种统一的、分布式存储系统。具有高性能、高可靠性和可扩展性等特点,支持数据无缝复制和并发读写。ceph可以作为块存储、文件存储和对象存储系统,最大程度上简化了存储系统部署运维工作。其去中心化的设计有效避免了大规模存储集群中吞吐量瓶颈问题。并且ceph使用c++语言开发,速度性能上要明显优于python等开发语言。

ceph的这些优秀特性,使其可以满足网络靶场后端存储系统的构建需求,但如何运用ceph构建网络靶场后端存储系统,提升网络靶场的安全性及可用性,仍是一个亟需解决的问题。



技术实现要素:

(一)要解决的技术问题

本发明要解决的技术问题是:如何运用ceph构建网络靶场后端存储系统,提升网络靶场的安全性及可用性。

(二)技术方案

为了解决上述技术问题,本发明提供了一种一种基于ceph的网络靶场后端存储系统设计方法,将该系统按照如下方式设计:将ceph集群作为网络靶场的存储后端,为openstack集群中nova、glance、cinder原生组件提供块存储服务并对外提供对象存储服务;部署完成后,nova负责计算服务,使用ceph集群作为后端存储,nova创建虚拟机时由glance服务提供镜像,并使用cinder服务提供逻辑卷;openstack集群的原生可视化组件horizon服务负责为各组件,即为nova、glance、cinder提供可视化界面。

优选地,该方法中,还将ceph集群的对象网关与openstack集群的身份认证服务keystone集成在一起,使ceph集群的对象网关接收keystone的权限认证信息,被keystone授权的账户信息同时也被ceph集群的对象网关授权,并自动生成账户记录,并且keystone验证通过的令牌将被ceph集群的对象网关视为有效访问凭证。

优选地,该方法中,使用亚马逊s3、swiftcmd接口与ceph集群进行交互,并基于openstack的原生可视化组件horizon对ceph应用进行二次开发。

优选地,该方法中,还按照如下方式设计所述ceph集群:

将ceph集群设计为包括ceph监控服务、ceph元数据服务和cephosd存储服务,每个服务作为一个节点,且任一节点都可以作为ceph集群的主节点,ceph监控服务、ceph元数据服务和cephosd存储服务分别部署在不同的服务器上,从而形成多个服务节点;

ceph集群的公共网络共享openstack集群中的覆盖网络overlaynetwork,且部署独立的ceph集群内部网络;

将ceph监控服务、cephosd存储服务分别作为ceph集群中的监控节点、数据节点,在一个ceph集群中部署3个数据节点,数据节点之间能够通信,监控节点有权限读取config配置文件,ceph集群中每个节点都能直接访问数据节点,在ceph集群的主节点上登记每个节点的名称和ip地址。

优选地,所述系统在网络靶场后端存储底层实现时,设计为:

存储系统的底层使用rados机制实现,将数据节点配置rados机制,利用配置了rados机制的数据节点,使数据和负载动态地分布在不均匀的存储集群上;

使用亚马逊s3接口与ceph的对象网关,即自动可信分布式对象网关radosgw进行交互,使用keystone进行认证,通过亚马逊s3接口中的s3cmd的工具将集群的信息返回到web界面上;

基于horizon开发,将ceph的信息返回到horizon的dashboard组件上。

本发明还提供了一种在所述的系统中实现将ceph块存储作为网络靶场镜像靶标的后端存储功能的方法,该方法中,将glance作为openstack的原生组件为openstack提供镜像及元数据注册服务,glance与ceph完成对接后,glance上传的镜像文件会作为块设备储存在ceph集群中,该方法的具体步骤如下:

1.1对/etc/glance/glance-api.conf文件进行如下配置:

开启写时拷贝copy-on-writecloning功能;

设置镜像存储类型为rbd;

设置存储池为ceph中镜像文件所在的存储池;

设置镜像文件的可访问用户为glance;

设定ceph中镜像配置文件位置;

设定镜像服务所使用的存储对象容量为8mb;

设定镜像服务访问认证机制为keystone;

1.2重启镜像服务;

1.3使用raw格式创建镜像靶标文件,镜像靶标创建过程如下:

检查原始镜像,确认原有镜像文件可以使用;

将原始镜像文件转化为raw格式;

将原始镜像文件上传至openstack集群,设置上传后的镜像类型为非保护类型,并设定访问权限为“public”。

本发明又提供了一种在所述的系统中实现将ceph块存储作为网络靶场逻辑卷存储的后端功能的方法,该方法中,将cinder作为openstack原生组件提供卷服务,将cinder对接ceph后,cinder组件创建的卷为ceph的块存储设备,当卷被网络靶场中虚拟机挂载后,虚拟机以rbd协议的方式使用这些磁盘设备,创建卷的过程如下:

2.1配置/etc/cinder/cinder.conf文件:

将存储后端设置为cpeh及逻辑卷管理;

设置镜像存储服务的版本为第二版;

配置镜像存储服务的网络地址;

配置存储驱动程序为lvm及rbd;

设定卷存储后端的名称为lvm和ceph;

设定卷组的名称为cinder-volumes;

设定传输协议为iscsi;

设置存储池为ceph中卷文件所在的存储池;

配置ceph管理文件路径;

设置丛快照创建卷的时启用克隆功能;

配置镜像最大克隆深度为5;

配置卷存储对象大小为4mb;

配置rbd访问用户为cinder;

配置ceph连接超时时间为-1,表示永不超时;

开启ceph身份验证功能;

配置cinder用户访问ceph时所使用的secretuuid;

2.2创建卷:

1.创建卷类型模板,模板中设置访问权限为“public”,存储后端名称设置为“ceph”;

2.使用创建的模板创建卷,并设置卷容量。

本发明还提供了一种在所述的系统中实现将ceph块存储作为网络靶场虚拟机的后端存储的方法,该方法中,nova做为openstack原生组件为openstack提供计算服务,将其对接ceph存储集群后,虚拟机实例的系统磁盘将被储存到ceph集群中,该方法具体步骤如下:

在各个节点上配置ceph:

创建日志目录及socket管理目录,并配置虚拟机用户可访问的权限;

修改/etc/ceph/ceph.conf配置文件,启用rbd客户端缓存,日志管理及socket管理;

3.2修改各节点上虚拟机配置:

将虚拟机类型设置为qemu。

将虚拟机存储类型设置为rbd;

配置自动可信分布式块存储网关librbd地址;

将虚拟机存储池设置为cpeh中对应的存储池;

配置ceph管理文件路径;

配置用于访问ceph的用户名及uuid号;

禁止使用文件注入功能;

启用磁盘缓存机制;

3.3创建虚拟。

本发明又提供了一种在所述的系统中实现基于ceph存储后端完成网络靶场内虚拟机热迁移的方法,该方法中包括以下步骤:

4.1热迁移前条件检查:权限检查,检查执行迁移的用户是否有足够的权限执行动态迁移;

参数检查,如是否指定了block-migrate参数;

检查目标物理主机是否存在;

检查被迁移的虚拟机是否是运行状态;

检查源和目的物理主机上的nova-computeservice是否正常运行;

检查目的物理主机和源物理主机是否是同一台机器;

检查目的物理主机是否有足够的内存;

检查目的和源物理主机器虚拟机服务程序版本是否相同;

计算节点之间可以通过主机名互相访问;

计算节点和控制节点的novauid和gid保持一致;

设置vnc服务监听ip为本地ip;

ceph存储集群已经配置完毕时,实例存放在ceph共享存储中,且每个计算节点都可访问共享存储;

4.2热迁移配置文件:

修改虚拟机nova的配置文件,在[libvirt]段下添加如下字段:

live_migration_flag=

"vir_migrate_undefine_source,

vir_migrate_peer2peer,vir_migrate_live,

vir_migrate_persist_dest,vir_migrate_tunnelled"

配置/etc/libvirt/libvirtd.conf文件:启动tcp协议监控功能;设置监控端口为16509;设置本机ip地址;关闭tcp安全认证功能;

在/etc/sysconfig/libvirtd文件中修改虚拟机配置文件路径;

重启libvirt服务;完成迁移。

本发明还提供了一种在所述的系统中实现将ceph与openstackkeystone集成的方法,包括以下步骤:

在ceph中配置keystone认证文件,内容包括:开启keystone认证;设置keystone服务认证地址;关闭令牌环admin_token认证;启用用户口令admin_user登录方式,并设置用户名及密码;关闭ssl认证;接受keystone中已认证的角色名称;

配置keystone对象存储终结点endpoint指向ceph对象网关。

(三)有益效果

本发明针对现有网络靶场后端存储系统中存在的问题,提供一种云架构下网络靶场后端存储系统的构建方法。这种方法将ceph与openstack相结合,使ceph作为openstack中nova,glance,cinder原生组件的存储后端,将openstack的身份认证服务keystone与ceph对象网关绑定,并基于ceph网关模块进行管理应用的二次开发。该方法能够有效提高网络靶场的部署效率及存储安全性。从而实现网络靶场内虚拟机秒速启动、虚拟机实时迁移、数据分片存储、数据全备份,数据增量备份等功能。

附图说明

图1为本发明设计的云架构下网络靶场后端存储系统总体设计图;

图2为本发明系统中ceph存储集群整体设计结构图;

图3为本发明设计的网络靶场后端存储底层逻辑结构图;

图4为本发明设计的网络靶场内虚拟机后端存储逻辑图。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

针对现有网络靶场后端存储系统中存在的问题,本发明的目的在于提供一种云架构下网络靶场后端存储系统的构建方法。这种方法将ceph与openstack相结合,使ceph作为openstack中nova,glance,cinder原生组件的存储后端,将openstack的身份认证服务keystone与ceph对象网关绑定,并基于ceph网关模块进行管理应用的二次开发。该方法能够有效提高网络靶场的部署效率及存储安全性。从而实现网络靶场内虚拟机秒速启动、虚拟机实时迁移、数据分片存储、数据全备份,数据增量备份等功能。

本发明提供了一种云架构下网络靶场后端存储系统的构建方法,参考图1,将该系统按照如下方式设计:将ceph集群作为网络靶场的存储后端,为openstack集群中nova、glance、cinder原生组件提供块存储服务并对外提供对象存储服务;部署完成后,nova负责计算服务,使用ceph集群作为后端存储,nova创建虚拟机时由glance服务提供镜像,并使用cinder服务提供逻辑卷;openstack集群的原生可视化组件horizon服务负责为各组件,即nova、glance、cinder提供可视化界面;

该方法中,还将ceph集群的对象网关与openstack集群的身份认证服务keystone集成在一起,使ceph集群的对象网关接收keystone的权限认证信息,被keystone授权的账户信息同时也被ceph集群的对象网关授权,并自动生成账户记录(如果之前不存在),并且keystone验证通过的令牌将被ceph集群的对象网关视为有效访问凭证;

该方法中,使用亚马逊s3、swiftcmd接口与ceph集群进行交互,并基于openstack的原生可视化组件horizon对ceph应用进行二次开发。

该方法中,还按照如下方式设计所述ceph集群,如图2所示:

将ceph集群设计为:包括ceph监控服务、ceph元数据服务和cephosd存储服务,每个服务作为一个节点,且任一节点都可以作为ceph集群的主节点,ceph监控服务、ceph元数据服务和cephosd存储服务分别部署在不同的服务器上,从而形成多个服务节点,服务节点数量随存储集群规模扩大而增加,从而增强存储集群的稳定性及安全性;

还将ceph集群设计为:ceph集群的公共网络共享openstack集群中的覆盖网络(overlaynetwork),且部署独立的ceph集群内部网络,从而缓解ceph集群的公共网络中数据复制和心跳流量的传输压力;

将ceph监控服务、cephosd存储服务分别作为ceph集群中的监控节点、数据节点,为确保ceph集群数据的安全,在一个ceph集群中部署3个数据节点,数据节点之间能够通信,监控节点有权限读取config配置文件,ceph集群中每个节点都能直接访问数据节点,在ceph集群的主节点上登记每个节点的名称和ip地址。

所述系统在网络靶场后端存储底层实现时,设计为:

1、存储系统的底层使用rados机制实现;rados是一个可靠的自动的分布式对象存储机制,将数据节点配置rados机制,利用配置了rados机制的数据节点,来解决集群中存在的数据一致性访问,冗余存储,错误检测和数据恢复等问题,使得数据和负载动态地分布在不均匀的存储集群上。

2、使用亚马逊s3接口与ceph的对象网关,即自动可信分布式对象网关(radosgw)进行交互,使用keystone进行认证,通过亚马逊s3接口中的s3cmd的工具将集群的信息返回到web界面上。

3、基于horizon开发,将ceph的信息返回到horizon的dashboard组件上,使得用户可以直观地管理所存储的数据。

本发明还提供了一种在所述系统中实现将ceph块存储作为网络靶场镜像靶标的后端存储功能的方法,glance作为openstack的原生组件为openstack提供镜像及元数据注册服务,glance与ceph完成对接后,glance上传的镜像(靶标)文件会作为块设备储存在ceph集群中,该方法的具体步骤如下:

1.1对/etc/glance/glance-api.conf文件进行如下配置:

开启写时拷贝(copy-on-writecloning)功能。

设置镜像存储类型为rbd。

设置存储池为ceph中镜像文件所在的存储池。

设置镜像文件的可访问用户为glance。

设定ceph中镜像配置文件位置,例如/etc/ceph/ceph.conf。

设定镜像服务所使用的存储对象容量为8mb。

设定镜像服务访问认证机制为keystone。

1.2重启镜像服务:

1.3使用raw格式创建镜像靶标文件。利用ceph的写时拷贝特性避免创建虚拟机时进行的镜像复制操作。镜像靶标创建过程如下:

检查原始镜像,确认原有镜像文件可以使用。

将原始镜像文件转化为raw格式。

将原始镜像文件上传至openstack集群,设置上传后的镜像类型为非保护类型,并设定访问权限为“public”。

本发明还提供了一种在所述系统中实现将ceph块存储作为网络靶场逻辑卷存储的后端功能的方法,cinder作为openstack原生组件提供卷服务,将cinder对接ceph后,cinder组件创建的卷,其本质就是ceph的块存储设备,当卷被网络靶场中虚拟机挂载后,虚拟机会以rbd协议的方式使用这些磁盘设备。创建过程如下:

2.1配置/etc/cinder/cinder.conf文件:

将存储后端设置为cpeh及逻辑卷管理(lvm)。

设置镜像存储服务的版本为第二版。

配置镜像存储服务的网络地址。例如,http://controller:9292

配置存储驱动程序为lvm及rbd。

设定卷存储后端的名称为lvm和ceph。

设定卷组的名称为cinder-volumes。

设定传输协议为iscsi。

设置存储池为ceph中卷文件所在的存储池。例如,volumes。

配置ceph管理文件路径,例如/etc/ceph/ceph.conf。

设置丛快照创建卷的时启用克隆功能。

配置镜像最大克隆深度为5。

配置卷存储对象大小为4mb。

配置rbd访问用户为cinder。

配置ceph连接超时时间为-1,表示永不超时。

开启ceph身份验证功能。

配置cinder用户访问ceph时所使用的secretuuid。

例如rbd_secret_uuid=4810c760-dc42-4e5f-9d41-7346db7d7da2

2.2创建卷:

1.创建卷类型模板。模板中设置访问权限为“public”,存储后端名称设置为“ceph”。

2.使用之前创建的模板创建卷,并设置卷容量。

本发明又提供了一种在所述系统中实现将ceph块存储作为网络靶场虚拟机的后端存储的方法,nova做为openstack原生组件为openstack提供计算服务,将其对接ceph存储集群后,虚拟机实例的系统磁盘将被储存到ceph集群中。因为librbd早已原生集成到openstack中,所以也可以理解为将ceph存储集群集成到qemu-kvm/libvirt中。如图4所示。该方法具体步骤如下:

在各个节点上配置ceph:

创建日志目录及socket管理目录,并配置虚拟机用户可访问的权限。

修改/etc/ceph/ceph.conf配置文件,启用rbd客户端缓存,日志管理及socket管理,提升性能,方便查看故障日志。

3.2修改各节点上虚拟机配置:

将虚拟机类型设置为qemu。

将虚拟机存储类型设置为rbd。

配置自动可信分布式块存储网关(librbd)地址。

将虚拟机存储池设置为cpeh中对应的存储池,例如vms。

配置ceph管理文件路径。

配置用于访问ceph的用户名及uuid号。

禁止使用文件注入功能。

启用磁盘缓存机制。

3.3创建虚拟。

本发明又提供了一种在所述系统中实现基于ceph存储后端完成网络靶场内虚拟机热迁移的方法,网络靶场所承担的网络对抗演练,技术装备试验等任务都具有多元化的特点,演练角色和装备试验地点经常会发生变化。并且随着靶场规模的增加,物理服务器也会存在重启或故障等问题。在这种情况下靶场中虚拟机的热迁移(livemigration),又叫动态迁移、实时迁移,就显得非常重要。

该方法能够将网络靶场中整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,靶场中演练人员不会察觉到任何差异。虚拟机热迁移步奏如下:

4.1热迁移前条件检查:

权限检查,执行迁移的用户是否有足够的权限执行动态迁移。

2.参数检查,如是否指定了block-migrate参数。

3.检查目标物理主机是否存在。

4.检查被迁移的虚拟机是否是运行状态。

5.检查源和目的物理主机上的nova-computeservice是否正常运行。

6.检查目的物理主机和源物理主机是否是同一台机器。

7.检查目的物理主机是否有足够的内存。

8.检查目的和源物理主机器虚拟机服务程序版本是否相同。

9.计算节点之间可以通过主机名互相访问

10.计算节点和控制节点的novauid和gid保持一致

11.设置vnc服务监听ip为本地ip

12.ceph存储集群已经配置完毕,实例存放在ceph共享存储中,且每个计算节点都可以访问共享存储。

4.2热迁移配置文件:

修改虚拟机nova的配置文件,在[libvirt]段下添加如下字段:

live_migration_flag=

"vir_migrate_undefine_source,

vir_migrate_peer2peer,vir_migrate_live,vir_migrate_persist_dest,vir_migrate_tunnelled"

配置/etc/libvirt/libvirtd.conf文件:

启动tcp协议监控功能

设置监控端口为16509

设置本机ip地址

关闭tcp安全认证功能。

在/etc/sysconfig/libvirtd文件中修改虚拟机配置文件路径。例如:

libvirtd_config=/etc/libvirt/libvirtd.conf

libvirtd_args="--listen"

重启libvirt服务;

完成迁移:

novalive-migration“虚拟机id”computer1

本发明还提供了一种ceph与openstackkeystone集成的方法,包括以下步骤:

5.1在ceph中配置keystone认证文件,内容包括:

开启keystone认证。

设置keystone服务认证地址。

关闭令牌环(admin_token)认证。

启用用户口令(admin_user)登录方式,并设置用户名及密码。

关闭ssl认证。

接受keystone中已认证的角色名称。

5.2配置keystone对象存储终结点(endpoint)指向ceph对象网关,命令代码如下:

可以看出,本发明将网络靶场中镜像(靶标)存储、逻辑卷存储、虚拟机系统存储都对接到ceph分布式存储集群之后,虚拟机直接通过rbd协议访问ceph存储集群中的块设备,不需要从远程下载镜像文件。从镜像启动的虚拟机以及从镜像卷启动的虚拟机,都可以通过cephrbdcowclone机制快速得到镜像。虚拟机的快照,实际上是ceph块存储设备的快照,可以在ceph集群中直接创建。因此本方法解决了网络靶场中后端存储、存储过程认证和存储应用管理问题。可以有效解决靶场内虚拟机启动速度慢,达到秒级启动虚拟机的效果,实现虚拟机时时迁移,大幅提高网络靶场的部署效率。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1