一种安全可控的公网访问虚拟资源方法
技术领域
本发明涉及一种安全可控的公网访问虚拟资源方法。
背景技术
随着云计算领域快速发展,大规模的云服务数据中心不断涌现,其中,云计算的基石是虚拟机技术,目前,大部分云主机运营商将虚拟化的服务器放在公网,租用给客户,客户在虚拟服务器运行各种网络服务,客户若需对服务器进行远程访问与控制,必然要求运营商提供虚拟服务器的公网访问权限,而且云主机申请都需要实时开通,这给云计算运营商带来一些全新的安全与管理上的挑战。众所周知,虚拟化的云主机都运行在物理主机上,而且利用物理主机的网络设备进行网络通讯和访问,目前云主机运营商采用的主要方式是虚拟主机通过物理主机的网络设备桥接到物理主机工作网络中,然后通过从管理员预先分配的ip地址池中获取虚拟主机ip地址,最后在公网路由进行NAT,将公网ip的特定端口访问请求转发到虚拟主机ip上进行处理,这种方案存在以下比较严重的问题:
1、ip地址池在主控服务器集中管理,需要资源互斥和同步机制,一般采用数据库管理,所有物理机都向主控服务器统一申请、性能偏低、容易出错,还会引入新的故障点;
2、内部网络ip地址池有限,难以满足大规模运营需要,而且必须手动预先分配、释放,工作繁琐、难以管理、容易出错;
3、由于虚拟主机与物理主机同一网段,工作在运营商内部网络上,因而当虚拟主机遭受到恶意用户控制后,恶意用户就能通过虚拟主机对运营商内部网络的所有服务器进行直接攻击,存在极大的安全隐患;
4、虚拟主机直接连接在运营商内部网络,一旦被劫持,很难迅速进行隔离或者精准控制,可靠性较低;
5、如果ip分配使用了dhcp机制,则特定虚拟机的ip可能发生变化,给NAT管理带来了极大困难。
发明内容
本发明的目的在于提供一种安全可控的公网访问虚拟资源方法,主要解决现有技术中存在的公网访问虚拟资源存在较大的安全隐患、可靠性较低、工作繁琐、难以管理的问题。
为了实现上述目的,本发明采用的技术方案如下:
一种安全可控的公网访问虚拟资源方法,包括以下步骤:
(1)物理节点创建拥有私有网段的一个以上虚拟网络;
(2)用户请求创建虚拟机时,物理节点在某一虚拟网络的私有网段中为该虚拟机分配一个固定IP,并将创建的虚拟机加入虚拟网络,获取指定IP;
(3)虚拟机用户指定需要开放的网络端口后,物理节点从本地端口池中分配一个空闲端口,该空闲端口将网络端口访问请求转发到虚拟网络中的指定端口上实现访问。
进一步地,所述步骤(2)中,分配给虚拟机的固定IP通过MAC绑定方式写入虚拟网络中。
具体地说,所述步骤(2)中,虚拟机的创建具体包括以下步骤:
(2a)用户请求创建虚拟机,并开通该虚拟机网络端口;
(2b)主控系统为该虚拟机分配公网地址和访问端口,并将创建请求发送给物理机;
(2c)物理机创建虚拟机,在虚拟网络中分配一个IP地址给该虚拟机,在虚拟网络中将虚拟机的MAC地址绑定到分配的IP地址上,并将虚拟机连接到虚拟网络;
(2d)从本地端口池中给创建的虚拟机分配一空闲端口,创建本地防火墙和路由规则,将访问该空闲端口的请求转发到本机虚拟网络中的指定端口上;
(2e)物理机将虚拟机创建成功的信息及分配给该虚拟机的空闲端口反馈给主控系统;
(2f)主控系统设置网络地址转换规则,将网络端口访问请求转发至分配的空闲端口上,并启动虚拟机;
(2g)虚拟机通过虚拟网络获取分配给其的IP地址,服务器启动。
所述步骤(3)具体包括:
(3a)用户在浏览器上输入虚拟机对应的公网地址和网络端口;
(3b)公网路由器将用户访问请求转发到物理机分配给该虚拟机的空闲端口;
(3c)空闲端口将接收到的访问请求转发到本机虚拟网络中的指定端口上,允许为该接收到请求的虚拟机提供WEB服务。
本发明中,所述防火墙和路由规则为:仅允许各虚拟机用户明确申请开放的请求通过。
与现有技术相比,本发明具有以下有益效果:
(1)本发明中,各用户只能访问运营商开放的公网ip与特定端口,只能看到自己的虚拟机和私有网段ip,无法探知到系统内其他虚拟机和物理机,因此无法发起网络攻击和嗅探,可靠性较高。
(2)本发明中,所有网络访问均由所在物理节点进行控制,一旦管理员怀疑该虚拟机被劫持或者攻击,可以随时将虚拟机从虚拟网络中彻底隔绝或者屏蔽特定访问,从而能够有效保障系统的安全性。
(3)本发明构思巧妙,将虚拟机与物理网络完全隔离屏蔽,内部网络结构对虚拟机用户不可见、不可检测、不可连接,彻底隔绝了安全隐患,且网络资源由各物理节点自行分配管理,高效可靠无冲突,易于实施部署和迁移,不需要引入中央数据库,从而有效提升了系统的可用性和稳定性。
(4)本发明无需消耗内网ip,理论上支持无限虚拟机资源,无需手动配置地址池,便于实施和管理,具有突出的实质性特点和显著进步,适合大规模推广应用。
附图说明
图1为本发明-实施例的工作流程图。
具体实施方式
下面结合附图和实施例对本发明作进一步说明,本发明的实施方式包括但不限于下列实施例。
实施例
为了提高公网访问虚拟资源的安全可靠性,如图1所示,本发明公开了一种安全可控的公网访问虚拟资源方法,该方法中,网络资源分配和控制均在虚拟资源所在的物理机进行,由物理节点全权控制虚拟资源的申请、分配、管理与释放,无需中央控制节点参与。
应用时,物理节点会创建一个或者多个拥有自己的私有网段的虚拟网络,各虚拟网络可拥有多个不重复的私有网段,物理节点创建虚拟机时,在虚拟网络的网段中为虚拟机分配一个固定IP,将该IP通过MAC绑定方式写入在虚拟网络里,确保该虚拟机每次都必定分配到该IP,并将创建后的虚拟机加入虚拟网络获取到指定IP。虚拟机用户指定需要开放的网络端口后,物理节点从本地端口池中分配一个端口,通过防火墙与网络转换(NAT)规则,将该端口访问请求转发到虚拟机的特定端口上,公网路由器将公网访问转换到物理节点的分配端口,用户即可通过公网IP、端口访问到虚拟机的指定端口,并且不暴露物理网络结构。
通过上述方法,虚拟机用户只能访问运营商开放的公网IP与特定端口,用户通过虚拟机只能看到自己的虚拟机和私有网段IP,无法探知到系统内其他虚拟机和物理机(在系统许可情况下,可以访问同一用户所属的其他虚拟机),因此无法发起网络攻击和嗅探。
如图1所示,左侧为公网,右侧为运营商内部网络,物理机地址为172.168.0.120,端口池为51001~59000,内部包含一个虚拟网络,网段为192.168.0.1,此时,虚拟机的创建步骤如下:
用户请求创建虚拟机,并开通该虚拟机tcp 80端口访问;
主控系统为该虚拟机分配公网地址10.12.13.14,端口80,将创建请求发送给物理机172.168.0.120;
物理机创建虚拟机vm001,在虚拟网络中分配ip192.168.0.21,在虚拟网络中设置vm001的mac地址绑定到ip192.168.0.21,将虚拟机连接到虚拟网络;
从本地端口池分配空闲tcp端口51001,创建本地防火墙与路由规则,将访问本地172.168.0.120:51001的请求转发到本机虚拟网络中的192.168.0.21:80;
物理机通知主控系统虚拟机创建成功,并告知分配端口为172.168.0.120:51001;
主控系统设置NAT规则,将10.12.13.14:80转发到172.168.0.120:51001;
启动虚拟机,虚拟机通过虚拟网络获取到本机ip
192.168.0.21,服务处于启动状态。
网络访问步骤如下:
公网用户在浏览器输入地址10.12.13.14:80,运营商公网路由将请求转发到物理宿主机172.168.0.120:51001;
物理宿主机51001端口接收到http请求,转发到本地私有网络192.168.0.21:80;
虚拟机80端口接收到http请求,提供web服务。
本发明中,在默认情况下,虚拟机vm001只能看到自己的私网ip
192.168.0.21,对其他网络地址(如vm002的192.168.0.22)的请求、广播、ping请求均被宿主机防火墙规则屏蔽,无法探知其他虚拟机、物理机和运营商网络架构。
当管理员怀疑某虚拟机被攻击或者劫持后,可以采取以下保护方法:关闭NAT,中断所有外部用户对该虚拟机的访问和控制;防火墙限制,中断该虚拟机所有对外的网络请求;将虚拟机从虚拟网络中断开,隔绝该虚拟机所有的网络连接和请求。
按照上述实施例,便可很好地实现本发明。