一种基于IPTABLES控制使用互联网的方法

申请号 CN201510167947.6 申请日 2015-04-10 公开(公告)号 CN104754564A 公开(公告)日 2015-07-01
申请人 上海斐讯数据通信技术有限公司; 发明人 朱为朋; 何家飞; 王赞;
摘要 本 发明 公开了一种基于IPTABLES控制使用互联网的方法,包含:S1,构建IPTABLES的规则链,设置移动终端的应用程序 访问 网络的策略;S2,对所述的应用程序进行访问网络的规则检查,通过规则检查的应用程序可以访问网络,不能通过规则检查的应用程序,则拒绝访问网络。本发明能够使所有的移动终端在应用程序在访问网络时,须通过设置的规则链检查,通过检查的应用才可以访问网络,方便对应用进行管控,从而达到快捷、方便对应用程序访问网络时数据通道管制的目的。
权利要求

1.一种基于IPTABLES控制使用互联网的方法,其特征在于,该方法包含如下步骤:
S1,构建IPTABLES的规则链,设置移动终端的应用程序访问网络的策略;
S2,对所述的应用程序进行访问网络的规则检查,通过规则检查的应用程序可以访问网络,不能通过规则检查的应用程序,则拒绝访问网络。
2.如权利要求1所述的基于IPTABLES控制使用互联网的方法,其特征在于,在所述步骤S1后还包含:
S3,设置应用程序为白名单或黑名单,若应用程序为黑名单,则直接从规则中拒绝访问网络;若为白名单时,则跳转到步骤S2。
3.如权利要求1所述的基于IPTABLES控制使用互联网的方法,其特征在于,在步骤S1之前还包含:
S0,将移动终端进行root。
4.如权利要求1所述的基于IPTABLES控制使用互联网的方法,其特征在于,所述的应用程序通过移动数据或WLAN尝试访问网络。
5.如权利要求4所述的基于IPTABLES控制使用互联网的方法,其特征在于,将所述的移动数据和/或WLAN网关设置进IPTABLES的规则链中,使得应用程序在通过移动数据和/或WLAN网关访问网络时,需要进行规则检查。
6.如权利要求4所述的基于IPTABLES控制使用互联网的方法,其特征在于,所述的步骤S1具体包含:
S1.1,利用IPTABLES创建wall链、wall-3g/4g链、wall-wifi链和wall-reject链;
S1.2,将OUTPUT链数据转向wall链;
S1.3,清空wall链、wall-3g/4g链、wall-wifi链和wall-reject链中的规则;
S1.4,对所述的wall链、wall-3g/4g链、wall-wifi链和wall-reject链中的增加新的规则;
S1.5,对单个应用程序的数据包进行匹配,并采取拦截或放行的操作规则。
7.如权利要求6所述的基于IPTABLES控制使用互联网的方法,其特征在于,所述的步骤S1.4具体为:
S1.4.1,将wall-reject链的目标设为拒绝;
S1.4.2,将3g/4g数据包与wifi数据包分开,并分别引向wall-3g/4g链、wall-wifi链。

说明书全文

一种基于IPTABLES控制使用互联网的方法

技术领域

[0001] 本发明涉及网路流量控制,特别涉及一种基于IPTABLES控制使用互联网的方法。

背景技术

[0002] 在当前移动终端应用程序中,对应用程序的移动数据流量限制一种是通过对设置中的移动数据开关进行设置,此方法会把移动数据网络完全关闭,对用户来说不方便;另一种方法是对通过APN的方式进行流量设置,此方法是通过修改数据库的操作的方式,对各个应用进行流量管控,当你通过这个方式关闭APN后,你在通过手机上的快捷开关开启移动数据网络时,是没效果的,也就是说开启不了,除非你再用同样的方法开启APN。
[0003] 对移动终端应用程序的WIFI流量管制,当前只有直接关闭WLAN开关的选项,对单个应用进行WIFI数据流量限制没有一个有效的方法。
[0004] IPTABLES技术是:是用于实现Linux内核访问控制的功能的,应用于IP信息过滤和配置防火墙策略;工作的地方是在网络的边缘,任务是需要去定义到底防火墙如何工作;用户可以自定义防火墙的策略,以达到让它对出入网络的IP、数据进行检测,用户还可以将规则组成一个列表,构成一个规则链,实现绝对详细的访问控制功能。
[0005] 在当前移动终端应用程序中,对应用程序的移动数据流量限制一种是通过对设置中的移动数据开关进行设置,操作方法是调用系统(ConnectivityManager)的setMoblieDataEnabled方法,从而实现开启和关闭移动数据网络,此开启和关闭是直接开启和关闭移动数据,所有的应用对不能通过此通道进行网络数据访问,不能对单个应用程序进行设置,对用户来说不方便;另一种方法是对通过APN的方式进行流量设置,此方法是通过修改数据库的操作的方式,就是对网络接入点进行修改,对各个应用进行流量管控,当你通过这个方式关闭APN后,你在通过手机上的快捷开关开启移动数据网络时,没有效果,也就是说开启不了,除非你再用同样的方法开启APN。
[0006] 对移动终端应用程序的WIFI流量管制,当前只有直接关闭WLAN开关的选项,主是要通过WifiManager的setWifiApEnabled方法来打开和关闭WLAN的开头,对整个移动终端的WLAN状态进行设置,对单个应用进行WIFI数据流量限制没有一个有效的方法。
[0007] 上述方法对应用数据流量限制不是很完全,当某个应用取得了系统相关的权限,可不需要获取root权限,通过反射方法通过系统的(ConnectivityManager)的setMoblieDataEnabled方法,就可以对应用直接进行移动数据流量打开和关闭操作,从而使得对此应用的流量限制设置无效,使用户的相关利益受损。在应用要访问网络是时,大部分应用都会去直接获取WLAN的状态,调用setWifiApEnabled方法对WLAN进行相关设置,从而使用户的设置无效。

发明内容

[0008] 本发明的目的是提供一种基于IPTABLES控制使用互联网的方法,自定义IPTABLES的规则链策略,所有的移动终端在应用程序在访问网络时,须通过设置的规则链检查,通过检查的应用才可以访问网络;在规则链定义时,可对移动数据流量、WIFI数据流量进行分别控制,也可以把应用设置白名单或黑名单,以方便对应用进行管控,从而达到快捷、方便对应用程序访问网络时数据通道管制的目的。
[0009] 为了实现以上目的,本发明是通过以下技术方案实现的:一种基于IPTABLES控制使用互联网的方法,其特点是,该方法包含如下步骤:
S1,构建IPTABLES的规则链,设置移动终端的应用程序访问网络的策略;
S2,对所述的应用程序进行访问网络的规则检查,通过规则检查的应用程序可以访问网络,不能通过规则检查的应用程序,则拒绝访问网络。
[0010] 在所述步骤S1后还包含:S3,设置应用程序为白名单或黑名单,若应用程序为黑名单,则直接从规则中拒绝访问网络;若为白名单时,则跳转到步骤S2。
[0011] 在步骤S1之前还包含:S0,将移动终端进行root。
[0012] 所述的应用程序通过移动数据或WLAN尝试访问网络。
[0013] 将所述的移动数据和/或WLAN网关设置进IPTABLES的规则链中,使得应用程序在通过移动数据和/或WLAN网关访问网络时,需要进行规则检查。
[0014] 所述的步骤S1具体包含:S1.1,利用IPTABLES创建wall链、wall-3g/4g链、wall-wifi链和wall-reject链;
S1.2,将OUTPUT链数据转向wall链;
S1.3,清空wall链、wall-3g/4g链、wall-wifi链和wall-reject链中的规则;
S1.4,对所述的wall链、wall-3g/4g链、wall-wifi链和wall-reject链中的增加新的规则;
S1.5,对单个应用程序的数据包进行匹配,并采取拦截或放行的操作规则。
[0015] 所述的步骤S1.4具体为:S1.4.1,将wall-reject链的目标设为拒绝;
S1.4.2,将3g/4g数据包与wifi数据包分开,并分别引向wall-3g/4g链、wall-wifi链。
[0016] 本发明与现有技术相比,具有以下优点:1、本发明技术方案实现了从软硬件级保护系统的完整性,在启动阶段和运行阶段都可以对系统的完整性运行可信衡量。
[0017] 2、本发明技术方案在启动过程中启动完整性通过检测的程序,对系统程序被恶意修改过和程序实施不启动和报告操作;3、本发明技术方案实现了对移动终端进入系统时作了安全防护技术,提高了系统的抗攻击性;
4、本发明技术实现了在系统运行阶段实现的检测系统的安全性,对关键参数和代码作完整性度量。
附图说明
[0018] 图1为本发明一种基于IPTABLES控制使用互联网的方法流程图;图2为本发明一种基于IPTABLES控制使用互联网的总体设计图。

具体实施方式

[0019] 以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
[0020] 一种基于IPTABLES控制使用互联网的方法,该方法包含如下步骤:S1,构建IPTABLES的规则链,设置移动终端的应用程序访问网络的策略;
S2,对所述的应用程序进行访问网络的规则检查,通过规则检查的应用程序可以访问网络,不能通过规则检查的应用程序,则拒绝访问网络。
[0021] 在具体实施例中,在步骤S1之前还包含:S0,将移动终端进行root。
[0022] 在具体实施例中,在所述步骤S1后还包含:S3,设置应用程序为白名单或黑名单,若应用程序为黑名单,访问网络通过检查名单时,则直接从规则中拒绝访问网络;若为白名单时,则跳转到步骤S2。
[0023] 上述的应用程序通过移动数据或WLAN尝试访问网络。
[0024] 将所述的移动数据和/或WLAN网关设置进IPTABLES的规则链中,使得应用程序在通过移动数据和/或WLAN网关访问网络时,需要进行规则检查。
[0025] 所述的步骤S1具体包含:S1.1,利用IPTABLES创建wall链、wall-3g/4g链、wall-wifi链和wall-reject链;
$IPTABLES -L wall >/dev/null 2>/dev/null || $IPTABLES --new wall || exit 2$IPTABLES -L wall-3g/4g >/dev/null 2>/dev/null || $IPTABLES --new wall-3g/4g || exit 2
$IPTABLES -L wall-wifi >/dev/null 2>/dev/null || $IPTABLES --new wall-wifi || exit 2
$IPTABLES -L wall-reject >/dev/null 2>/dev/null || $IPTABLES --new wall-reject || exit 2;
S1.2,将OUTPUT链数据转向wall链;
$IPTABLES -L OUTPUT | $GREP -q droidwall || $IPTABLES -A OUTPUT -j droidwall || exit 6;
S1.3,清空wall链、wall-3g/4g链、wall-wifi链和wall-reject链中的规则;
$IPTABLES -F 链名称(例:wall) || exit 7;
S1.4,对所述的wall链、wall-3g/4g链、wall-wifi链和wall-reject链中的增加新的规则;
所述的步骤S1.4具体为:
S1.4.1,将wall-reject链的目标设为拒绝,即直接拒绝数据包;
$IPTABLES -A droidwall-reject -j REJECT || exit 11;
S1.4.2,将3g/4g数据包与wifi数据包分开,并分别引向wall-3g/4g链、wall-wifi链;
$IPTABLES -A wall -o 3g/4g接口名 -j wall-3g/4g || exit;
$IPTABLES -A wall -o wifi接口名 -j wall-wifi || exit。
[0026] S1.5,对单个应用程序的数据包进行匹配,并采取拦截或放行的操作规则。
[0027] $IPTABLES -A wall-3g/4g -m owner --uid-owner app_uid -j TARGET || exit;$IPTABLES -A wall-wifi -m owner --uid-owner app_uid -j TARGET || exit;
其中,app_uid表示单个引用的uid,TARGET设为RETURN表示放行(可以访问网络),引向wall-reject链后表示拦截数据包(不能访问网络)。
[0028] 综上所述,本发明一种一种基于IPTABLES控制使用互联网的方法,自定义IPTABLES的规则链策略,所有的移动终端在应用程序在访问网络时,须通过设置的规则链检查,通过检查的应用才可以访问网络;在规则链定义时,可对移动数据流量、WIFI数据流量进行分别控制,也可以把应用设置白名单或黑名单,以方便对应用进行管控,从而达到快捷、方便对应用程序访问网络时数据通道管制的目的。
[0029] 尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
QQ群二维码
意见反馈