实现智能设备的操作系统中程序访问ip地址限制的方法

xiaoxiao2021-2-23  115

实现智能设备的操作系统中程序访问ip地址限制的方法
【技术领域】
[0001]本发明涉及网络技术领域,尤其涉及智能设备的操作系统技术领域,具体是指一种实现智能设备的操作系统中程序访问IP地址限制的方法。
【背景技术】
[0002]智能手机,智能路由,网关允许第三方APP或插件开发并发布自己的应用,用户隐私数据在用户不知情的情况下被开发者收集,而目前智能机操作系统10S或android都提供沙箱机制,权限管理能让用户知道APP访问用户的个人信息如联系人,照片,蓝牙设备,位置服务,并把访问绝定权交给用户。然而现有技术中Android APP权限管理只能限制用户是否能上网,无法进行更多权限的管理。

【发明内容】

[0003]本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现限制手机APP或路由器插件程序访问被用户拒绝的域名或IP地址管理、让APP或插件程序在类似虚拟机的容器中运行、通过对容器进行扩展、使APP或插件能完成直接运行在宿主机系统上的所有功能的实现智能设备的操作系统中程序访问IP地址限制的方法。
[0004]为了实现上述目的,本发明的实现智能设备的操作系统中程序访问IP地址限制的方法具有如下构成:
[0005]该实现智能设备的操作系统中程序访问IP地址限制的方法,其主要特点是,所述的方法包括以下步骤:
[0006](1)为需要在智能设备的操作系统中启动的程序创建一虚拟机容器;
[0007](2)设置所述的虚拟机容器中允许访问的IP地址;
[0008](3)启动所述的程序并使其运行在所述的虚拟机容器中;
[0009](4)由智能设备的操作系统控制所述的程序访问的IP地址。
[0010]较佳地,所述的步骤(1)包括以下步骤:
[0011](1-1)为需要在智能设备的操作系统中启动的程序创建一对一的虚拟机容器;
[0012](1-2)为所述的虚拟机容器创建虚拟网络接口 ;
[0013](1-3)为所述的虚拟网络接口分配IP地址。
[0014]更佳地,所述的为所述的虚拟机容器创建虚拟网络接口,具体为:
[0015]为所述的虚拟机容器选择VETH、H0ST或MACVLAN联网方式并创建相应的虚拟网络接口。
[0016]较佳地,所述的程序为APP程序或插件程序。
[0017]较佳地,所述的由智能设备的操作系统中控制所述的程序访问的IP地址,包括程序访问外部IP地址的控制和两个程序之间互相访问的控制。
[0018]更佳地,所述的程序访问外部IP地址的控制,包括以下步骤:
[0019](4-A-1)将外部IP地址的端口通过网络地址转换映射到所述的程序对应的虚拟机容器;
[0020](4-A-2)所述的程序通过映射后的IP地址的端口进行网络连接。
[0021 ]更佳地,所述的两个程序之间互相访问的控制,包括以下步骤:
[0022](4-B-1)为每个程序创建用以监听已知IP地址的守护进程;
[0023](4-B-2)当所述的守护进程监听到有程序连接时转发给服务提供的插件所在的虚拟机容器对应的IP地址和端口。
[0024]采用了该发明中的实现智能设备的操作系统中程序访问IP地址限制的方法,具有如下有益效果:
[0025](1)此专利提供给用户一种新的保护机制,如果APP收集到用户数据想上传到自己的服务器,那么此方法能对APP网络访问进行限制,使其无法和不被用户认可的网络域名或IP地址进行通信;
[0026](2)此方法能提供更为灵活的限制机制,只提供APP对某些网络地址的访问,即使APP为病毒程序,也无法对系统破坏,具有更广泛的应用范围。
【附图说明】
[0027]图1为采用本发明的实现智能设备的操作系统中程序访问IP地址限制的方法形成的架构图。
[0028]图2为采用本发明的实现智能设备的操作系统中程序访问IP地址限制的方法形成的网络拓扑图。
[0029]图3为本发明的两个程序之间交互的示意图。
【具体实施方式】
[0030]为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
[0031]本发明涉及一种限制手机APP或路由器插件程序访问被用户拒绝的域名或IP地址管理机制,提供一种解决方案。让APP或插件程序在类似虚拟机的容器中运行。通过对容器进行扩展,使APP或插件能完成直接运行在宿主机系统上的所有功能。其优点在于防止APP或插件程序后台运行收集用户的隐私数据,并上传到用户不知道的服务器。只有域名或IP地址被用户认可,程序才有权访问。提高路由器,网关产品的安全性。
[0032]为了实现该目的,该实现智能设备的操作系统中程序访问IP地址限制的方法包括以下步骤:
[0033](1)为需要在智能设备的操作系统中启动的程序创建一虚拟机容器;
[0034](2)设置所述的虚拟机容器中允许访问的IP地址;
[0035](3)启动所述的程序并使其运行在所述的虚拟机容器中;
[0036](4)由智能设备的操作系统控制所述的程序访问的IP地址。
[0037]在一种较佳的实施方式中,所述的步骤(1)包括以下步骤:
[0038](1-1)为需要在智能设备的操作系统中启动的程序创建一对一的虚拟机容器;
[0039](1-2)为所述的虚拟机容器创建虚拟网络接口 ;
[0040](1-3)为所述的虚拟网络接口分配IP地址。
[0041]在一种更佳的实施方式中,所述的为所述的虚拟机容器创建虚拟网络接口,具体为:
[0042]为所述的虚拟机容器选择VETH、H0ST或MACVLAN联网方式并创建相应的虚拟网络接口。
[0043]在一种较佳的实施方式中,所述的程序为APP程序或插件程序。
[0044]在一种较佳的实施方式中,所述的由智能设备的操作系统控制所述的程序访问的IP地址,包括程序访问外部IP地址的控制和两个程序之间互相访问的控制。
[0045]在一种更佳的实施方式中,所述的程序访问外部IP地址的控制,包括以下步骤:
[0046](4-A-1)将外部IP地址的端口通过网络地址转换映射到所述的程序对应的虚拟机容器;
[0047](4-A-2)所述的程序通过映射后的IP地址的端口进行网络连接。
[0048]在一种更佳的实施方式中,所述的两个程序之间互相访问的控制,包括以下步骤:
[0049](4-B-1)为每个程序创建用以监听已知IP地址的守护进程;
[0050](4-B-2)当所述的守护进程监听到有程序连接时转发给服务提供的插件所在的虚拟机容器对应的IP地址和端口。
[0051]具体到本发明的实际应用中,具体过程如下:
[0052 ] 在启动APP时,首先创建一个name space,在name space中再启动app,
[0053]通过调用clone函数传入参数CL0NE_NEWNS即能创建一个namespace。
[0054]如图1所示,SMD为管理程序,后缀为cpk的插件程序都运行在namespace里面,namespace为 轻量级虚拟机。
[0055]一个APP,或插件程序可以和系统外界进行通信,也可以做外服务程序接受外部程序的访问请求,同一系统内的两个APP可以相互通信,所以需要解决如下问题:
[0056]1、每个namespace都有独立的IP地址。
[0057]2、局域网设备如智能手机或其它电脑能和namespace中运行的插件进行通信。
[0058]3、每个namespace的IP地址随机分配,两个name space中运行的插件要进行通信,得知道另一个namespace的IP地址。
[0059]首先为了解决问题1,得为namespace创建虚拟网络接口并给虚拟网络接口分配IP地址,Namespace联网可使用3种方式,VETH,HOST,MACVLAN。其中MACVLAN又可工作在三种模式。
[0060]选择VETH可为namespace创建的网络接口拥有与HOST网络接口相同的MAC地址。这样可解决例如迅雷插件使用MAC地址作为参数用来授权的问题。
[0061]每个APP或插件所在的namespace都拥有了自己的IP地址,那么网络拓扑结构类拟图2所示。
[0062]除了手机APP为独立的物理设备,图中GateWay和所有namespace均在一台物理设备的一个操作系统上运行,namespace可看做是虚拟机。GateWay为宿主机。因此解决了每个APP和外界通信的问题。
[0063]要解决问题2,比如迅雷手机APP,去连接网关上的迅雷CPK插件,之前可连接192.168.1.1的9000端口。由于修改后的架构使迅雷插件运行在namespace中,相于对手机APP,namespace有自己的子网,这时需通过NAT将192.168.1.1:9000通过prerouting链映射至丨Jnamespace IP: 9000。通过iptables规则即可实现。
[0064]插件访问广域网不需要做任何修改。数据包出去是通过NAT,这时插件程序相当于局域网中的一台电脑。NAT会自动通过端口映射做地址转换。
[0065]解决上面第3个问题,插件之间的互联:CPK插件和0SGI插件有时需互联。原先架构中客户端插件可通过loop地址127.0.0.1直接连接服务端插件。新的结构使不同插件位于不同的Namespace中,且双方都不知道对方IP地址。
[0066]为每个namespace创建守护进程,用于监听固定已知IP地址,如192.168.1.1的某个端口。当监听到插件连接时,该进程负责转发给服务提供的插件所在的namespace对应的IP地址和端口。两个插件都运行在网关上,并且这两个插件需要相互协作。一个提供服务,一个使用服务。相当于操作系统中同时运行的两个进程做进程间通信。
[0067]tcppm proc即为插件转发进程,必需运行在宿主机中,一个namespace可对应多个端口转发进程,端口转发进程可监听或转发多个端口。即将每个namespace不同的私有地址和端口对应到宿主机地址和某个端口上。
[0068]上网限制的实现,通过iptables规则设问题1中创建的网络接口,即可实现对每个namespace能够访问的ip地址。且一个name space中所有的进程都只能按照该name space的访问规则。
[0069]采用了该发明中的实现智能设备的操作系统中程序访问IP地址限制的方法,具有如下有益效果:
[0070](1)此专利提供给用户一种新的保护机制,如果APP收集到用户数据想上传到自己的服务器,那么此方法能对APP网络访问进行限制,使其无法和不被用户认可的网络域名或IP地址进行通信;
[0071 ] (2)此方法能提供更为灵活的限制机制,只提供APP对某些网络地址的访问,即使APP为病毒程序,也无法对系统破坏,具有更广泛的应用范围。
[0072]在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
【主权项】
1.一种实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的方法包括以下步骤: (1)为需要在智能设备的操作系统中启动的程序创建一虚拟机容器; (2)设置所述的虚拟机容器中允许访问的IP地址; (3)启动所述的程序并使其运行在所述的虚拟机容器中; (4)由智能设备的操作系统控制所述的程序访问的IP地址。2.根据权利要求1所述的实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的步骤(1)包括以下步骤: (1-1)为需要在智能设备的操作系统中启动的程序创建一对一的虚拟机容器; (1-2)为所述的虚拟机容器创建虚拟网络接口; (1-3)为所述的虚拟网络接口分配IP地址。3.根据权利要求2所述的实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的为所述的虚拟机容器创建虚拟网络接口,具体为: 为所述的虚拟机容器选择VETH、HOST或MACVLAN联网方式并创建相应的虚拟网络接口。4.根据权利要求1所述的实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的程序为APP程序或插件程序。5.根据权利要求1所述的实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的由智能设备的操作系统控制所述的程序访问的IP地址,包括程序访问外部IP地址的控制和两个程序之间互相访问的控制。6.根据权利要求5所述的实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的程序访问外部IP地址的控制,包括以下步骤: (4 - A -1)将外部IP地址的端口通过网络地址转换映射到所述的程序对应的虚拟机容器; (4-A-2)所述的程序通过映射后的IP地址的端口进行网络连接。7.根据权利要求5所述的实现智能设备的操作系统中程序访问IP地址限制的方法,其特征在于,所述的两个程序之间互相访问的控制,包括以下步骤: (4-B-1)为每个程序创建用以监听已知IP地址的守护进程; (4-B-2)当所述的守护进程监听到有程序连接时转发给服务提供的插件所在的虚拟机容器对应的IP地址和端口。
【专利摘要】本发明涉及一种实现智能设备的操作系统中程序访问IP地址限制的方法,其中包括为需要在智能设备的操作系统中启动的程序创建一虚拟机容器;设置所述的虚拟机容器中允许访问的IP地址;启动所述的程序并使其运行在所述的虚拟机容器中;由智能设备的操作系统控制所述的程序访问的IP地址。采用该种实现智能设备的操作系统中程序访问IP地址限制的方法,此专利提供给用户一种新的保护机制,如果APP收集到用户数据想上传到自己的服务器,那么此方法能对APP网络访问进行限制,使其无法和不被用户认可的网络域名或IP地址进行通信;此方法能提供更为灵活的限制机制,只提供APP对某些网络地址的访问,即使APP为病毒程序,也无法对系统破坏,具有更广泛的应用范围。
【IPC分类】H04L29/06
【公开号】CN105491020
【申请号】CN201510822785
【发明人】孟晶石
【申请人】上海市共进通信技术有限公司
【公开日】2016年4月13日
【申请日】2015年11月24日

最新回复(0)