著录项信息
专利名称 | 一种域名过滤系统及方法 |
申请号 | CN200910078240.2 | 申请日期 | 2009-02-23 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2009-07-22 | 公开/公告号 | CN101488965 |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04L29/06 | IPC分类号 | H;0;4;L;2;9;/;0;6;;;H;0;4;L;9;/;0;0查看分类表>
|
申请人 | 中国科学院计算技术研究所 | 申请人地址 | 北京市海淀区中关村科学院南路6号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国科学院计算技术研究所 | 当前权利人 | 中国科学院计算技术研究所 |
发明人 | 张永铮;云晓春;周勇林;纪玉春;侯春军 |
代理机构 | 北京泛华伟业知识产权代理有限公司 | 代理人 | 王勇 |
摘要
本发明提供一种域名过滤系统,包括安装有过滤代理子系统的用于实现域名过滤的域名服务器,以及用于生成过滤命令的过滤中心子系统;其中,过滤中心子系统根据用户输入的过滤信息,结合过滤代理子系统的状态信息,为过滤代理子系统生成相应的过滤命令;域名服务器中的过滤代理子系统解析并执行所接收到的过滤命令,根据过滤命令的内容修改域名服务器中的域名配置文件,域名服务器根据域名配置文件的内容实现对所要过滤域名的过滤。本发明不需要对现有运行中的域名服务器做任何修改,因而具有易实施、易维护的优点,且对现有域名服务器的稳定性和性能没有任何影响。
1.一种域名过滤系统,其特征在于,包括安装有过滤代理子系统的用于实现域名过滤的域名服务器,以及用于生成过滤命令的过滤中心子系统;其中,
所述的过滤中心子系统根据用户输入的过滤信息以及所述过滤代理子系统的状态信息,为所述过滤代理子系统生成相应的过滤命令;
所述域名服务器中的过滤代理子系统解析并执行所接收到的过滤命令,根据所述过滤命令的内容修改所述域名服务器中的域名配置文件,所述域名服务器根据所述域名配置文件的内容过滤所要过滤的域名;
所述过滤信息包括与过滤操作相关的过滤参数、以及用户所希望过滤的黑名单域名;
所述黑名单域名包括域名信息,以及将该域名及其所有子域和主机名所要解析的IP地址;
所述所要解析的IP地址包括用于表示本机的地址或其它不正确的IP地址。
2.根据权利要求1所述的域名过滤系统,其特征在于,所述域名中心子系统包括配置模块、版本管理模块、版本库、代理状态库、增量更新模块以及第一通信模块;其中,所述的配置模块接收用户所输入的过滤信息,然后将所得到的过滤信息发送到所述的版本管理模块;所述的版本管理模块对所接收到的所述过滤信息进行去重去包含处理,然后将结果保存到所述的版本库并发送到所述的增量更新模块;所述的增量更新模块根据所收到的过滤信息以及保存在所述代理状态库中的过滤代理子系统的状态信息,为所述过滤代理子系统生成相应的过滤命令;所述过滤命令通过所述第一通信模块发送出去。
3.根据权利要求2所述的域名过滤系统,其特征在于,所述的过滤代理子系统包括第二通信模块以及过滤命令执行模块;其中,
所述第二通信模块接收所述过滤命令,将接收到的所述过滤命令发送到所述过滤命令执行模块;所述过滤命令执行模块执行所述过滤命令,根据所述过滤命令的执行结果对所在域名服务器的域名配置文件进行修改。
4.根据权利要求1所述的域名过滤系统,其特征在于,所述过滤参数包括用于表示所述过滤代理子系统连接所述过滤中心子系统的时间间隔的时间间隔参数、用于规定所述过滤代理子系统重新启动该子系统所在域名服务器中的域名服务程序的时刻的重启时间参数、用于表示当黑名单域名与域名服务器上的注册域名由于一致而发生冲突时选择哪一个域名为有效值的一致冲突参数、用于表示当黑名单域名与域名服务器上的注册域名发生包含冲突时选择哪一个域名为有效值的包含冲突参数。
5.根据权利要求1所述的域名过滤系统,其特征在于,所述表示本机的地址为
127.0.0.1。
6.根据权利要求5所述的域名过滤系统,其特征在于,所述域名服务器根据所述域名配置文件的内容实现对所要过滤域名的过滤包括:
所述域名服务器接收到数据包后,根据所述域名配置文件对数据包做域名解析,为所要过滤的域名返回127.0.0.1或其他非正确IP地址。
7.根据权利要求2所述的域名过滤系统,其特征在于,所述去重去包含操作包括:
所述版本管理模块将所接收到的过滤信息中的黑名单域名集中的重复域名予以删除;
所述版本管理模块对所述过滤信息的黑名单域名集中是否存在有包含关系的域名进行判断,当存在时删除其中的子域名。
8.根据权利要求3所述的域名过滤系统,其特征在于,所述过滤代理子系统的状态信息包括:用于表示所述过滤代理子系统所在域名服务器IP的代理IP信息,用于表示所述过滤代理子系统当前正在执行的过滤信息的版本的版本号信息,用于表示由于一致冲突和包含冲突导致的未生效的黑名单域名的集合的未生效黑名单域名集。
9.根据权利要求8所述的域名过滤系统,其特征在于,所述过滤命令包括用于表示增加操作、删除操作、更新操作和设置操作的命令。
10.一种采用权利要求1-9之一所述的域名过滤系统实现域名过滤的方法,包括:
步骤1)、所述过滤代理子系统接收过滤命令;
步骤2)、所述过滤代理子系统解析、执行所述过滤命令,根据结果修改所述域名服务器中的域名配置文件,在所述域名配置文件中将所要过滤域名的IP地址配置为域名服务器本身的IP地址或不正确的IP地址;
步骤3)、所述域名服务器接收数据包后根据所述域名配置文件做域名解析,实现对域名的过滤。
11.根据权利要求10所述的域名过滤方法,其特征在于,在所述的步骤1)之前,还包括:
步骤0)、用户在所述过滤中心子系统上输入过滤信息,根据所述过滤信息以及所述过滤代理子系统的状态信息为所述过滤代理子系统生成过滤命令。
12.根据权利要求10或11所述的域名过滤方法,其特征在于,所述的步骤1)包括:
步骤1-1)、所述的过滤代理子系统处于等待状态,直至系统时钟的当前时间与上次过滤代理子系统向过滤中心子系统发起连接时间的时间间隔满足过滤参数中所设定的时间间隔参数值;
步骤1-2)、过滤代理子系统将系统时钟的当前时间与过滤参数中所设定的重启时间参数进行比较,若当前时间大于或等于重启时间,则重新启动域名服务器中的域名服务程序,使得域名过滤生效,然后执行下一步,若当前时间小于重启时间,则直接执行下一步;
步骤1-3)、过滤代理子系统向过滤中心子系统发起连接以获取最新的过滤命令。
13.根据权利要求10或11所述的域名过滤方法,其特征在于,所述过滤命令包括用于表示增加操作、删除操作、更新操作和设置操作的命令;在所述的步骤2)中,所述过滤代理子系统解析、执行所述过滤命令包括:
步骤2-1)、取一条未经处理的过滤命令,然后对所述过滤命令的类型进行判断,对用于表示设置操作的过滤命令,执行步骤2-2),对用于表示增加操作的过滤命令,执行步骤
2-3),对用于表示删除操作的过滤命令,执行步骤2-4),对用于表示更新操作的过滤命令,执行步骤2-5);
步骤2-2)、根据设置命令中所包含的过滤参数,对所在过滤代理子系统中的过滤参数进行修改;
步骤2-3)、首先判断增加命令中所包含的黑名单域名是否会与过滤代理子系统所在域名服务器中域名配置文件中的注册域名发生一致冲突或包含冲突,若不发生冲突,则根据该命令在域名配置文件中增加一条域名注册记录,若存在冲突,则根据过滤参数中所规定的一致冲突或包含冲突时的有效值规定,判断应当为黑名单域名有效还是注册域名有效,当为黑名单域名有效时,根据增加命令在域名配置文件中增加一条域名注册记录,当为注册域名有效时,生成未生效黑名单域名的信息;
步骤2-4)、根据删除命令中所包含的域名信息在过滤代理子系统所在域名服务器的域名配置文件中查找对应的注册域名,找到后删除该域名的注册记录,并删除相应的解析文件;
步骤2-5)、根据更新命令中所包含的域名信息,在过滤代理子系统所在域名服务器的域名配置文件中查找对应的注册域名,找到后将该注册域名的解析文件中的IP地址修改为更新命令中所包含的IP地址。
14.根据权利要求11所述的域名过滤方法,其特征在于,所述的过滤信息包括过滤参数和黑名单域名;所述过滤参数包括时间间隔参数、重启时间参数、一致冲突参数以及包含冲突参数;
在所述的步骤0)中,根据所述过滤信息以及所述过滤代理子系统的状态信息为所述过滤代理子系统生成过滤命令包括:
步骤0-1)、将所述过滤信息中的版本号与所述状态信息中的版本号进行比较,对版本号一致的情况,无需生成过滤命令,对版本号不一致的情况,继续后续操作;
步骤0-2)、将所述过滤信息中的过滤参数与所述状态信息中的过滤参数进行比较,对过滤参数不相等的情况,根据所述过滤信息中的过滤参数生成用于表示设置操作的过滤命令后,执行下一步,对过滤参数相等的情况,直接执行下一步;
步骤0-3)、对所述过滤信息中的黑名单域名集以及所述状态信息中的黑名单域名集进行考察,当所述过滤信息的黑名单域名集的所有黑名单域名都已经被处理,而所述状态信息的黑名单域名集中还存在未处理的黑名单域名,则为所述未处理的黑名单域名生成用于删除操作的过滤命令;当所述过滤信息的黑名单域名集中还存在未处理的黑名单域名,执行下一步;
步骤0-4)、从所述过滤信息的黑名单域名集中选择一条未处理的黑名单域名,在所述状态信息的黑名单域名集中查找该黑名单域名,若不能找到,则生成用于增加操作的过滤命令;若能找到,则将该域名是否属于状态信息的未生效黑名单域名集进行判断,当该域名不属于未生效黑名单域名集且该域名的IP地址与状态信息的黑名单域名集中对应黑名单域名的IP地址不一致时,生成用于更新操作的命令,当该域名属于未生效黑名单域名集,则对该域名所对应的一致冲突参数和包含冲突参数进行判断,当其中的一个参数值为黑名单域名,则生成用于增加操作的过滤命令。
一种域名过滤系统及方法\n技术领域\n[0001] 本发明涉及网络安全领域,特别涉及一种域名过滤系统及方法。\n背景技术\n[0002] 随着互联网的迅猛发展,互联网域名(DNS)注册和使用数量也飞速增长,2007年,我国互联网域名注册已达到1,193万个,年增长率达到190.4%。与此同时,域名也逐渐成为黑客利用的主要工具。利用域名,黑客可以灵活、隐蔽地实施大规模网页挂马、僵尸网络控制、网络仿冒等恶意活动,例如,黑客能够利用网站操作系统或网络服务程序的安全漏洞,非法获取网络服务器的控制权限,从而篡改网页内容,窃取重要内部数据,更为严重的则是在网页中植入恶意代码(俗称“网页挂马”),使得更多网站访问者受到侵害。为了有效遏制或消除诸如网页挂马、僵尸网络控制、网络仿冒等恶意侵害行为,一种传统的方法是利用IP(网络协议)地址对恶意行为进行监测和控制,然而,随着Fast-Flux等动态域名解析技术的出现和广泛应用,基于IP的传统控制方法对恶意行为的追查和阻断变得愈来愈困难,甚至无能为力。因此,采用基于域名的过滤方法对有效遏制恶意行为的侵害具有重要意义和实际价值。\n[0003] 目前,现有的域名过滤技术主要采用基于域名请求数据包的方法。该类方法通过捕获域名请求数据包,从中获得所要解析的域名,然后根据指定规则决定该域名是否需要过滤。该类方法及其对应的过滤系统具有较好的实时性,但也存在一定的缺点。在一种实现方法中,为了达到较好的过滤效果,往往需要在本地或边界域名服务器处部署单独的过滤设备。此类方法需要增加大量的额外过滤设备,因此具有部署费用昂贵的缺点。在另一种实现方法中,可以在本地或边界域名服务器上增加域名过滤模块来实现过滤,但此类方法需要修改现有运行中的域名服务器的软件程序,因此在实践中很难实施,后续维护成本也很大,并且降低了现有系统的稳定性和处理性能。此外,上述两种实现方法在过滤过程中,需要实时捕获和处理大量的域名请求数据包,对过滤系统自身的处理性能提出了更高的要求,增加了域名请求的延迟。\n发明内容\n[0004] 本发明的目的是克服现有的域名过滤系统部署费用高或用于实现过滤的域名服务器维护成本大、稳定性差的缺点,从而提供一种易部署、易维护、过滤效率高的域名过滤系统。\n[0005] 为了实现上述目的,本发明提供了一种域名过滤系统,包括安装有过滤代理子系统的用于实现域名过滤的域名服务器,以及用于生成过滤命令的过滤中心子系统;其中,[0006] 所述的过滤中心子系统根据用户输入的过滤信息以及所述过滤代理子系统的状态信息,为所述过滤代理子系统生成相应的过滤命令;\n[0007] 所述域名服务器中的过滤代理子系统解析并执行所接收到的过滤命令,根据所述过滤命令的内容修改所述域名服务器中的域名配置文件,所述域名服务器根据所述域名配置文件的内容过滤所要过滤的域名;\n[0008] 所述过滤信息包括与过滤操作相关的过滤参数、以及用户所希望过滤的黑名单域名;\n[0009] 所述黑名单域名包括域名信息,以及将该域名及其所有子域和主机名所要解析的IP地址;\n[0010] 所述所要解析的IP地址包括用于表示本机的地址或其它不正确的IP地址。\n[0011] 上述技术方案中,所述域名中心子系统包括配置模块、版本管理模块、版本库、代理状态库、增量更新模块以及第一通信模块;其中,\n[0012] 所述的配置模块接收用户所输入的过滤信息,然后将所得到的过滤信息发送到所述的版本管理模块;所述的版本管理模块对所接收到的所述过滤信息进行去重去包含处理,然后将结果保存到所述的版本库并发送到所述的增量更新模块;所述的增量更新模块根据所收到的过滤信息以及保存在所述代理状态库中的过滤代理子系统的状态信息,为所述过滤代理子系统生成相应的过滤命令;所述过滤命令通过所述第一通信模块发送出去。\n[0013] 上述技术方案中,所述的过滤代理子系统包括第二通信模块以及过滤命令执行模块;其中,\n[0014] 所述第二通信模块接收所述过滤命令,将接收到的所述过滤命令发送到所述过滤命令执行模块;所述过滤命令执行模块执行所述过滤命令,根据所述过滤命令的执行结果对所在域名服务器的域名配置文件进行修改。\n[0015] 上述技术方案中,所述过滤参数包括用于表示所述过滤代理子系统连接所述过滤中心子系统的时间间隔的时间间隔参数、用于规定所述过滤代理子系统重新启动该子系统所在域名服务器中的域名服务程序的时刻的重启时间参数、用于表示当黑名单域名与域名服务器上的注册域名由于一致而发生冲突时选择哪一个域名为有效值的一致冲突参数、用于表示当黑名单域名与域名服务器上的注册域名发生包含冲突时选择哪一个域名为有效值的包含冲突参数。\n[0016] 上述技术方案中,所述表示本机的地址为127.0.0.1。\n[0017] 上述技术方案中,所述域名服务器根据所述域名配置文件的内容实现对所要过滤域名的过滤包括:\n[0018] 所述域名服务器接收到数据包后,根据所述域名配置文件对数据包做域名解析,为所要过滤的域名返回127.0.0.1或其他非正确IP地址。\n[0019] 上述技术方案中,所述去重去包含操作包括:\n[0020] 所述版本管理模块将所接收到的过滤信息中的黑名单域名集中的重复域名予以删除;\n[0021] 所述版本管理模块对所述过滤信息的黑名单域名集中是否存在有包含关系的域名进行判断,当存在时删除其中的子域名。\n[0022] 上述技术方案中,所述过滤代理子系统的状态信息包括:用于表示所述过滤代理子系统所在域名服务器IP的代理IP信息,用于表示所述过滤代理子系统当前正在执行的过滤信息的版本的版本号信息,用于表示由于一致冲突和包含冲突导致的未生效的黑名单域名的集合的未生效黑名单域名集。\n[0023] 上述技术方案中,所述过滤命令包括用于表示增加操作、删除操作、更新操作和设置操作的命令。\n[0024] 本发明还提供了一种采用所述的域名过滤系统实现域名过滤的方法,包括:\n[0025] 步骤1)、所述过滤代理子系统接收过滤命令;\n[0026] 步骤2)、所述过滤代理子系统解析、执行所述过滤命令,根据结果修改所述域名服务器中的域名配置文件,在所述域名配置文件中将所要过滤域名的IP地址配置为域名服务器本身的IP地址或不正确的IP地址;\n[0027] 步骤3)、所述域名服务器接收数据包后根据所述域名配置文件做域名解析,实现对域名的过滤。\n[0028] 上述技术方案中,在所述的步骤1)之前,还包括:\n[0029] 步骤0)、用户在所述过滤中心子系统上输入过滤信息,根据所述过滤信息以及所述过滤代理子系统的状态信息为所述过滤代理子系统生成过滤命令。\n[0030] 上述技术方案中,所述的步骤1)包括:\n[0031] 步骤1-1)、所述的过滤代理子系统处于等待状态,直至系统时钟的当前时间与上次过滤代理子系统向过滤中心子系统发起连接时间的时间间隔满足过滤参数中所设定的时间间隔参数值;\n[0032] 步骤1-2)、过滤代理子系统将系统时钟的当前时间与过滤参数中所设定的重启时间参数进行比较,若当前时间大于或等于重启时间,则重新启动域名服务器中的域名服务程序,使得域名过滤生效,然后执行下一步,若当前时间小于重启时间,则直接执行下一步;\n[0033] 步骤1-3)、过滤代理子系统向过滤中心子系统发起连接以获取最新的过滤命令。\n[0034] 上述技术方案中,所述过滤命令包括用于表示增加操作、删除操作、更新操作和设置操作的命令;在所述的步骤2)中,所述过滤代理子系统解析、执行所述过滤命令包括:\n[0035] 步骤2-1)、取一条未经处理的过滤命令,然后对所述过滤命令的类型进行判断,对用于表示设置操作的过滤命令,执行步骤2-2),对用于表示增加操作的过滤命令,执行步骤\n2-3),对用于表示删除操作的过滤命令,执行步骤2-4),对用于表示更新操作的过滤命令,执行步骤2-5);\n[0036] 步骤2-2)、根据设置命令中所包含的过滤参数,对所在过滤代理子系统中的过滤参数进行修改;\n[0037] 步骤2-3)、首先判断增加命令中所包含的黑名单域名是否会与过滤代理子系统所在域名服务器中域名配置文件中的注册域名发生一致冲突或包含冲突,若不发生冲突,则根据该命令在域名配置文件中增加一条域名注册记录,若存在冲突,则根据过滤参数中所规定的一致冲突或包含冲突时的有效值规定,判断应当为黑名单域名有效还是注册域名有效,当为黑名单域名有效时,根据增加命令在域名配置文件中增加一条域名注册记录,当为注册域名有效时,生成未生效黑名单域名的信息;\n[0038] 步骤2-4)、根据删除命令中所包含的域名信息在过滤代理子系统所在域名服务器的域名配置文件中查找对应的注册域名,找到后删除该域名的注册记录,并删除相应的解析文件;\n[0039] 步骤2-5)、根据更新命令中所包含的域名信息,在过滤代理子系统所在域名服务器的域名配置文件中查找对应的注册域名,找到后将该注册域名的解析文件中的IP地址修改为更新命令中所包含的IP地址。\n[0040] 上述技术方案中,所述的过滤信息包括过滤参数和黑名单域名;所述过滤参数包括时间间隔参数、重启时间参数、一致冲突参数以及包含冲突参数;\n[0041] 在所述的步骤0)中,根据所述过滤信息以及所述过滤代理子系统的状态信息为所述过滤代理子系统生成过滤命令包括:\n[0042] 步骤0-1)、将所述过滤信息中的版本号与所述状态信息中的版本号进行比较,对版本号一致的情况,无需生成过滤命令,对版本号不一致的情况,继续后续操作;\n[0043] 步骤0-2)、将所述过滤信息中的过滤参数与所述状态信息中的过滤参数进行比较,对过滤参数不相等的情况,根据所述过滤信息中的过滤参数生成用于表示设置操作的过滤命令后,执行下一步,对过滤参数相等的情况,直接执行下一步;\n[0044] 步骤0-3)、对所述过滤信息中的黑名单域名集以及所述状态信息中的黑名单域名集进行考察,当所述过滤信息的黑名单域名集的所有黑名单域名都已经被处理,而所述状态信息的黑名单域名集中还存在未处理的黑名单域名,则为所述未处理的黑名单域名生成用于删除操作的过滤命令;当所述过滤信息的黑名单域名集中还存在未处理的黑名单域名,执行下一步;\n[0045] 步骤0-4)、从所述过滤信息的黑名单域名集中选择一条未处理的黑名单域名,在所述状态信息的黑名单域名集中查找该黑名单域名,若不能找到,则生成用于增加操作的过滤命令;若能找到,则将该域名是否属于状态信息的未生效黑名单域名集进行判断,当该域名不属于未生效黑名单域名集且该域名的IP地址与状态信息的黑名单域名集中对应黑名单域名的IP地址不一致时,生成用于更新操作的命令,当该域名属于未生效黑名单域名集,则对该域名所对应的一致冲突参数和包含冲突参数进行判断,当其中的一个参数值为黑名单域名,则生成用于增加操作的过滤命令。\n[0046] 本发明的优点在于:\n[0047] 1、本发明的过滤系统通过域名服务器上的过滤代理子系统对域名服务器中的域名配置文件进行修改,然后利用域名服务器自身的域名解析功能实现域名的过滤,除了要在域名服务器上安装独立的过滤代理子系统的软件外,不需要对现有运行中的域名服务器做任何修改,因而具有易实施、易维护的优点,且对现有域名服务器的稳定性和性能没有任何影响。\n[0048] 2、本发明的过滤系统在过滤过程中不需要捕获和处理域名请求数据包,因此过滤系统自身不存在性能问题,不会产生额外的请求延迟。\n[0049] 3、本发明的过滤系统在域名服务器上以软件方式安装过滤代理子系统的方式,不需要添加额外的硬件过滤设备,因此具有部署成本低的优点。\n附图说明\n[0050] 图1为本发明的域名过滤系统中的过滤中心子系统以及过滤代理子系统的功能模块示意图;\n[0051] 图2为本发明的域名过滤系统的示意图;\n[0052] 图3为本发明的域名过滤系统中的过滤中心子系统的工作流程图;\n[0053] 图4为本发明的域名过滤系统中的过滤中心子系统生成过滤命令的流程图;\n[0054] 图5为本发明的域名过滤系统中的过滤代理子系统的工作流程图。\n具体实施方式\n[0055] 下面结合附图和具体实施方式对本发明进行详细说明。\n[0056] 本发明的域名过滤系统包括过滤中心子系统以及带有过滤代理子系统的域名服务器。所述的过滤中心子系统根据用户提供的需要过滤的黑名单域名为各个过滤代理子系统生成相应的过滤命令,而带有过滤代理子系统的域名服务器则根据过滤中心子系统所生成的过滤命令实现对黑名单域名的过滤。在具体实现时,过滤中心子系统以安装在一台计算机设备上的软件服务器的形式实现,而过滤代理子系统则可以通过代理软件的形式安装在除根域名服务器外的其他所有域名服务器上。由于安装有过滤代理子系统的域名服务器响应用户域名请求越直接,过滤效果越好,因此过滤代理子系统的一种较佳安装方式是安装在本地或边界域名服务器上。在图2中给出了本发明的域名过滤系统的组成示意图。\n[0057] 在对前述域名过滤系统的总体功能进行说明的基础上,下面分别对其中的过滤中心子系统以及过滤代理子系统做进一步描述。\n[0058] 参考图1,过滤中心子系统按照功能可进一步分为配置模块、版本管理模块、增量更新模块以及通信模块,此外,过滤中心子系统中还包括有用于存储过滤信息的版本库,以及用于存储各个过滤代理子系统的状态信息的代理状态库(所述版本库与代理状态库未在图1中示出)。\n[0059] 过滤中心子系统中的配置模块用于接收用户输入的过滤信息。所述的过滤信息包括过滤参数和黑名单域名两部分,可表述为<过滤参数,黑名单域名集>的形式。\n[0060] 过滤信息中的过滤参数可进一步表述为:<时间间隔,重启时间,一致冲突,包含冲突>。过滤参数中的时间间隔参数表示过滤代理子系统连接过滤中心子系统的时间间隔,过滤代理子系统每隔该时间间隔所规定的时间会主动向过滤中心子系统发起连接,以获取最新的过滤命令。时间间隔参数的单位可为分钟。过滤参数中的重启时间参数用于规定过滤代理子系统重新启动该子系统所在域名服务器中的域名服务程序的时刻,一般来说,域名服务器只有在重新启动域名服务程序后,才能够根据新收到的过滤命令进行相应的过滤操作。过滤参数中的一致冲突参数用于表示当黑名单域名与域名服务器上的注册域名由于一致而发生冲突时,选择哪一个域名为有效值。过滤参数中的包含冲突参数用于表示当黑名单域名与域名服务器上的注册域名发生包含冲突时,选择哪一个域名为有效值。此处所述的包含冲突是指两个域名中的一个是另一个的子域或主机名。\n[0061] 过滤信息中的黑名单域名集为用户需要过滤的黑名单域名的集合。一个黑名单域名可表述为:<域名,IP地址>,其含义为将该域名及其所有子域和主机名解析成该IP地址,为了达到过滤域名的目的,IP地址默认为用于表示本机的127.0.0.1,也可以是其它不正确的IP地址。\n[0062] 为了方便理解,在一个实施例中,假设用户输入了下面一条过滤信息:\n[0063] <<5,24:00,黑名单域名,注册域名>,{,}>\n[0064] 在上述过滤信息中,<5,24:00,黑名单域名,注册域名>即为前文所提到的过滤参数,其中的5表示指定所有过滤代理子系统的连接时间间隔为5分钟;24:00表示过滤代理子系统所在域名服务器的域名服务程序的重启时间为凌晨24:00时;当发生一致冲突时以黑名单域名为有效值;当发生包含冲突时以注册域名为有效值。而{,}则为前文中所提到的黑名单域名,它表示域名服务器将域名ccc.bbb.aaa及其所有子域和主机名解析为127.0.0.1,将域名zzz.yyy.xxx及其所有子域和主机名解析为11.11.11.11。上述过滤信息中的ccc.bbb.aaa、zzz.yyy.xxx是一个示意性的抽象范例,在实际应用中可以用具体的网络域名代替,例如www.sina.com.cn、www.sohu.com等。\n[0065] 过滤中心子系统中的版本管理模块用于对配置模块所接收的过滤信息做去重去包含操作,将所得到的结果存储到版本库以及发送到增量更新模块中。在具体实现时,版本管理模块从配置模块接收到一条过滤信息后,对该过滤信息的黑名单域名集中是否具有重复的域名进行判断,若存在重复域名,则删除重复域名,此外,还需要对黑名单域名集中是否存在具有包含关系的域名进行判断,若存在此种类型的域名,则删除其中的子域名。版本管理模块在对过滤信息执行了上述的去重去包含操作后,需要将这一过滤信息存储到用于存储过滤信息的版本库中,在存储前先判断所要存储的过滤信息是否已经包含在版本库中,如果没有包含,则为该过滤信息生成一个新的版本号,然后将过滤信息连同版本号一起存储到版本库中。\n[0066] 以前文中所列举的过滤信息为例,若过滤信息中的ccc.bbb.aaa和zzz.yyy.xxx都是域名www.sina.com.cn,显然这两个域名属于重复域名,需要删除其中的一个域名。若过滤信息中的ccc.bbb.aaa为域名sina.com.cn,而zzz.yyy.xxx为域名blog.sina.com.cn,则两个域名间具有包含关系,需要删除其中的子域名blog.sina.com.cn。过滤信息在完成去重去包含操作后存储到版本库中,在存储前还需要赋予一个诸如00011之类的版本号。\n[0067] 过滤中心子系统中的版本库正如前文所述,用于保存所有的过滤信息以及过滤信息所对应的版本号。过滤信息的数据格式已经在前文中做了详细说明,因此,不再做重复描述,但需要特别说明的是,版本库中的一条过滤信息对应一个唯一的版本号。\n[0068] 过滤中心子系统中的代理状态库用于保存各个过滤代理子系统的状态信息。过滤代理子系统的状态信息可表述为:<代理IP,版本号,未生效黑名单域名集>,其中的代理IP表示该状态信息所描述的过滤代理子系统所在域名服务器的IP;版本号表示该状态信息所描述的过滤代理子系统当前正在执行的过滤信息的版本;未生效黑名单域名集表示由于一致冲突和包含冲突导致的未生效的黑名单域名的集合。一般来说,在一个过滤系统中包含有多少个过滤代理子系统,在代理状态库中就有多少条对应的状态信息。\n[0069] 过滤中心子系统中的增量更新模块用于接收版本管理模块所发送的过滤信息,并根据代理状态库中所存储的各个过滤代理子系统的状态信息,为各个过滤代理子系统生成相应的过滤命令。增量更新模块所生成的过滤命令可采用如下格式定义:命令|对象|更新值。由于各个过滤处理子系统具体情况的不同,所采用的过滤命令也具有多样性。过滤命令所要完成的操作包括增加、删除、更新、设置等,因此具有如下不同类型的过滤命令:\n[0070] a、增加|域名|IP地址。该命令表示增加一条黑名单域名记录,其中IP地址为域名将被解析成的IP地址,默认为空;\n[0071] b、删除|域名|IP地址。该命令表示删除一条黑名单域名记录,其中IP地址同样为域名将被解析成的IP地址,默认为空;\n[0072] c、更新|域名|IP地址。该命令表示更新一条黑名单域名记录,其中IP地址为更新后的IP地址;\n[0073] d、设置|过滤参数|更新值。该命令表示设置过滤参数为更新值,其中过滤参数包括时间间隔、重启时间、一致冲突、包含冲突等参数。\n[0074] 增量更新模块根据各个过滤代理子系统的状态信息,生成上述不同类型的过滤命令时,采用了图4中所示的增量更新方法。参考图4,下面对这一增量更新方法的实现步骤进行说明。假设增量更新模块从版本管理模块所得到的过滤信息的版本号为R0,而代理状态库所保存的过滤代理子系统的状态信息用表示,其中的R表示所对应的过滤处理子系统所使用的过滤信息的版本号,N表示未生效黑名单域名集,i表示用于区分不同状态信息的数字。增量更新模块需要为整个域名过滤系统中的所有过滤代理子系统生成相应的过滤命令,因此需要对代理状态库中所保存的所有过滤代理子系统的状态信息进行逐条处理。在一次处理过程中,取一条未处理的状态信息,按照如下步骤进行相应的操作:\n[0075] 步骤41、将所接收到的过滤信息的版本号R0与该状态信息中的版本号Ri进行比较,如果两者相等,显然不需要更新,从代理状态库中重新选择一条未处理的状态信息重新进行处理即可,若两者不相等,则根据版本号从版本库中提取过滤信息的具体信息,然后执行后续步骤做进一步的比较。\n[0076] 步骤42、在进一步比较的过程中,首先对R0与Ri所代表的过滤信息中的过滤参数进行比较,如果过滤参数相等,则直接执行后续步骤,如果过滤参数不相等,则根据R0所代表的过滤参数中的参数值,生成前述过滤命令中的设置命令,然后再执行下一步。\n[0077] 步骤43、对R0与Ri所代表的过滤信息中的黑名单域名集进行考察,用B0表示R0中的黑名单域名集,用Bi表示Ri中的黑名单域名集,判断B0中的黑名单域名是否都已经被处理过,若为是,则对Bi中所有未处理过的黑名单域名生成删除命令,然后重新选择一条未处理的状态信息进行处理,若为否,则对B0中未处理的黑名单域名进行考察,所述的黑名单域名设为,其中的n代表域名,ip代表该域名所对应的IP地址,0为序号。\n[0078] 步骤44、在Bi中查找n0,如果没有找到,则生成增加命令(增加|n0|ip0),然后选择一条新的未处理的黑名单域名进行考察;如果找到,则执行下一步。\n[0079] 步骤45、在Bi中找到n0,由于n0与ni的值相等,因此Bi中的黑名单域名可以表示为,判断n0是否属于未生效黑名单域名集Ni,如果不属于,则当ip0不等于ipi时,生成更新命令(更新|n0|ip0),然后再选择一条新的未处理的黑名单域名进行考察;如果n0属于Ni,则判断R0中的过滤参数“一致冲突”和过滤参数“包含冲突”,如果其中有一个参数值为黑名单域名,则生成增加命令(增加|n0|ip0),再选择一条新的未处理的黑名单域名进行考察。\n[0080] 以上是增量更新模块采用增量更新方法为各个过滤代理子系统生成对应的过滤命令的过程。根据上述过程说明可以知道,若在一个过滤代理子系统中原有的黑名单域名集中只包含有黑名单域名www.sina.com.cn,则当用户所输入过滤信息的黑名单域名集包含有www.sina.com.cn和www.sohu.com,则对该过滤代理子系统所生成的过滤命令需要有增加命令,以将域名www.sohu.com增加到黑名单域名集中。类似的,若另一个过滤代理子系统的黑名单域名集除了包含有域名www.sina.com.cn、www.sohu.com外,还包含有域名www.google.com,而用户输入的过滤信息的黑名单域名集只包含有www.sina.com.cn和www.sohu.com,则对该过滤代理子系统所生成的过滤命令应当有删除命令,以将域名www.google.com从黑名单域名集中删除。\n[0081] 过滤中心子系统中的通信模块将所述增量更新模块所生成的过滤命令发送给对应的过滤代理子系统。在发送过滤命令的过程中,为了保证数据传输的安全性,需要在过滤中心子系统与过滤代理子系统之间做身份认证和数据加密操作。所述的身份认证和数据加密操作可采用已公开的公钥基础设施(PKI,Public Key Infrastructure)技术。此外,通信模块还可接收过滤代理子系统所反馈的执行结果,以更新代理状态库中该过滤代理子系统的未生效黑名单域名。\n[0082] 参考图1,域名服务器中的过滤代理子系统按照功能可进一步分为通信模块和过滤命令执行模块。其中的通信模块用于从过滤中心子系统接收过滤命令,并向过滤中心子系统反馈过滤代理子系统的执行结果;而过滤命令执行模块则用于执行具体的过滤命令。\n[0083] 在图5中给出了过滤代理子系统的工作流程,该流程包括以下步骤:\n[0084] 步骤51、过滤代理子系统处于等待状态,直至系统时钟的当前时间与上次过滤代理子系统向过滤中心子系统发起连接时间的时间间隔满足过滤参数中所设定的时间间隔参数值;\n[0085] 步骤52、过滤代理子系统将系统时钟的当前时间与过滤参数中所设定的重启时间参数进行比较,若当前时间大于或等于重启时间,则重新启动域名服务器中的域名服务程序,使得域名过滤生效,然后执行下一步,若当前时间小于重启时间,则直接执行下一步;\n[0086] 步骤53、过滤代理子系统的通信模块向过滤中心子系统发起连接以获取最新的过滤命令,若能收到过滤命令则将所收到的过滤命令发送给过滤命令执行模块,然后执行下一步,否则直接不做任何操作,继续处于等待状态;\n[0087] 步骤54、过滤命令执行模块对所接收到的过滤命令进行解析、执行,然后将未生效黑名单域名通过通信模块反馈给过滤中心子系统,上述操作完成后继续处于等待状态。\n[0088] 在上述操作流程中,实际上包含了两方面的内容,一是在一定的时间间隔后接收过滤命令,然后执行过滤命令的过程,二是在到达重启时间后,重新启动域名服务程序的过程。由于在接收过滤命令然后执行过滤命令的过程中,需要对域名服务器中的配置文件进行修改,因此,如果在重新启动域名服务程序的同时,配置文件正在修改过程中,会导致域名服务程序重新启动的失败。基于这一原因,前述两个过程不能同时进行,而应当如上述操作流程那样使得两个过程具有时间上的先后逻辑关系。在上述操作流程中,在接收并执行过滤命令前首先进行了域名服务程序的重启操作。在实际应用中,这两个过程的先后关系并不局限于上述说明,本领域技术人员在实现时也可以先接收并执行过滤命令,再完成与域名服务程序的重启相关的操作。\n[0089] 在上述操作中,所述的过滤命令执行模块在解析并执行过滤命令时,根据过滤命令具体类型的不同会有不同的操作。在图6中,对过滤命令的具体执行流程进行了说明。从图中可以看出,过滤命令执行模块需要对所接收到的所有过滤命令进行处理,在执行一条未经处理的过滤命令时,首先判断过滤命令的类型,然后根据过滤命令的具体类型分别进行处理。在前述的说明中已经提到,过滤命令包括设置命令、增加命令、删除命令和更新命令四种类型,因此过滤命令执行模块主要是对这四种类型的过滤命令进行处理。对于设置命令而言,过滤命令执行模块根据设置命令中所包含的过滤参数,对所在过滤代理子系统中的过滤参数进行修改。对于增加命令而言,过滤命令执行模块首先判断增加命令中所包含的黑名单域名是否会与过滤代理子系统所在域名服务器中域名配置文件中的注册域名发生一致冲突或包含冲突,若不发生冲突,则根据该命令在域名配置文件中增加一条域名注册记录,若存在冲突,则根据过滤参数中所规定的一致冲突或包含冲突时的有效值规定,判断应当为黑名单域名有效还是注册域名有效,当为黑名单域名有效时,根据增加命令在域名配置文件中增加一条域名注册记录,当为注册域名有效时,即相应的黑名单域名无效,因此要生成未生效的黑名单域名的信息。对于删除命令而言,根据该命令中所包含的域名信息在过滤代理子系统所在域名服务器的域名配置文件中查找对应的注册域名,找到后删除该域名的注册记录,并删除相应的解析文件。对于更新命令而言,根据该命令中所包含的域名信息,在过滤代理子系统所在域名服务器的域名配置文件中查找对应的注册域名,找到后将该注册域名的解析文件中的IP地址修改为更新命令中所包含的IP地址。\n[0090] 在一个实例中,假设有一个增加命令:增加|ccc.bbb.aaa|127.0.0.1,则根据该命令在域名服务器的配置文件增加域名注册记录时,其中的域名区域(zone)为“ccc.bbb.aaa”,类型(type)为“master”通知(notify)为“no”,解析文件(file)为“ccc.bbb.aaa.blacklist.db”,其中“ccc.bbb.aaa.blacklist.db”的内容为将域名ccc.bbb.aaa及其子域和主机名均解析成127.0.0.1的典型配置。以已得到广泛应用的著名域名服务器BIND为例,根据上述增加命令的内容,应在其配置文件named.conf中增加如下一条记录:\n[0091] zone“ccc.bbb.aaa”IN{type master;notify no;file“ccc.bbb.aaa.blacklist.db”;};\n[0092] 解析文件“ccc.bbb.aaa.blacklist.db”的典型定义形式如下:\n[0093] @IN SOA dns.ccc.bbb.aaa.root.ccc.bbb.aaa.(\n[0094] 42;serial\n[0095] 3H;refresh\n[0096] 15M;retry\n[0097] 1W;expiry\n[0098] 1D);minimum TTL\n[0099] NS dns.ccc.bbb.aaa.\n[0100] A 127.0.0.1\n[0101] * A 127.0.0.1\n[0102] 在另一个实例中,假设有一条删除命令:删除|ccc.bbb.aaa|127.0.0.1,则根据该命令在配置文件中查找注册域名ccc.bbb.aaa,删除该域名注册记录,并删除解析文件“ccc.bbb.aaa.blacklist.db”。\n[0103] 在又一个实例中,假设有一条更新命令:更新|ccc.bbb.aaa|11.11.11.11,则根据该命令在配置文件中找到注册域名ccc.bbb.aaa,然后将其解析文件“ccc.bbb.aaa.blacklist.db”中的IP地址修改为11.11.11.11。\n[0104] 从前面的说明可以看出,安装在域名服务器上的过滤代理子系统在整个工作流程中只是将域名服务器的域名配置文件根据过滤命令做了对应的修改,对于域名服务器包括软件程序在内的其他部分并未做任何的改动,因此不会对现有域名服务器的系统稳定性、处理性能等造成影响。域名服务器在工作时,当接收到外部传输的数据包后,按照其正常工作流程,需要为这些数据包做域名解析,由于在域名配置文件中,黑名单域名的解析地址默认为127.0.0.1或其他非正确IP地址,因此,当用户请求黑名单域名时,域名服务器会将该域名解析成127.0.0.1或其他非正确IP地址,使得用户无法获取黑名单域名对应的真正IP地址,所以将无法实施正常的访问,从而达到了对黑名单域名的过滤效果。例如,假设用户要访问www.sina.com.cn,而此域名被作为黑名单域名通过过滤系统配置在该用户要请求的域名服务器上,当用户请求时,域名服务器会将www.sina.com.cn解析成127.0.0.1,使得用户只能访问本机,而无法访问www.sina.com.cn,由此,过滤系统实现了对域名www.sina.com.cn的过滤。与现有技术中需要实时捕获和处理大量的域名请求数据包相比,这种方式不会增加域名服务器的负担,也不会造成对域名请求的延迟。\n[0105] 最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
法律信息
- 2020-02-11
未缴年费专利权终止
IPC(主分类): H04L 29/06
专利号: ZL 200910078240.2
申请日: 2009.02.23
授权公告日: 2012.02.15
- 2012-02-15
- 2009-09-16
- 2009-07-22
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2008-12-10
|
2008-06-28
| | |
2
| |
2008-02-20
|
2007-09-30
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |