CN106899711A - 一种基于Linux的动态域名解析模块及其黑白名单实现方法 - Google Patents

一种基于Linux的动态域名解析模块及其黑白名单实现方法 Download PDF

Info

Publication number
CN106899711A
CN106899711A CN201710319258.1A CN201710319258A CN106899711A CN 106899711 A CN106899711 A CN 106899711A CN 201710319258 A CN201710319258 A CN 201710319258A CN 106899711 A CN106899711 A CN 106899711A
Authority
CN
China
Prior art keywords
domain name
module
black
user
determination module
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN201710319258.1A
Other languages
English (en)
Inventor
李征宇
李新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Wins Mdt Infotech Ltd
Original Assignee
Nanjing Wins Mdt Infotech Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nanjing Wins Mdt Infotech Ltd filed Critical Nanjing Wins Mdt Infotech Ltd
Priority to CN201710319258.1A priority Critical patent/CN106899711A/zh
Publication of CN106899711A publication Critical patent/CN106899711A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5053Lease time; Renewal aspects

Abstract

本发明提供了括路由器、交换机、胖AP、瘦AP以及域名解析模块,所述域名解析模块包括域名配置模块、域名拦截模块、域名判定模块和数据放行模块,所述域名配置模块工作于用户空间,所述域名拦截模块,工作于内核空间,所述域名判定模块,工作于用户空间,本发明能实时更新动态域名的黑(白)名单,即使该域名在频繁的更新其IP地址,从而避免因为只屏蔽域名而导致的错误和遗漏,实现效率高,算法简单,对路由器性能基本无影响。

Description

一种基于Linux的动态域名解析模块及其黑白名单实现方法
技术领域
本发明涉及互联网技术领域,具体涉及一种基于Linux的动态域名解析模块及其黑白名单实现方法。
背景技术
目前业界对网络安全的要求越来越高,提出了基于动态域名的黑白名单的要求,所谓基于动态域名的黑白名单是指用户可以使用某动态域名来定义黑白名单,比如:*.sina.com 来指定用户不能访问/只能访问所有新浪的网站的,比如house.sina.comfinance.sina.com。该要求的难点在于,此域名是动态的,网络设备无法提前预测/获悉该域名所对应的IP地址,从而不能按照传统的基于固定IP地址的方式来配置黑白名单。并且由于交换机和瘦Wi-Fi路由器(以下简称瘦AP)都是工作在2层的设备,其网络效率更高,很多用户提出在交换机和瘦AP上实现上述功能,从而进一步加大了这一问题的实现难度。
目前大多数家用/商用路由器和胖AP提供的基于动态域名的黑白名单的功能的局限性在于:
1.其内部必须嵌套内置DNS 服务器,并且路由器必须工作在NAT模式,AP必须是胖AP(NAT模式)。
2.大多数厂商只能屏蔽域名解析,如果用户使用其域名对应的IP地址来直接访问,就可以绕过黑名单的设置。
目前大多数家用/商用交换机和瘦AP并不提供基于动态域名的黑白名单的功能的主要原因有二:
1.交换机和瘦AP是工作在二层的设备,而域名解析功能是七层的功能,二层设备无法提供。
2.动态域名因为其无法提前获知的特性,导致算法设计复杂度高,实时性得不到满足。
发明内容
针对上述问题,本发明提供了一种基于Linux的动态域名解析模块及其黑白名单实现方法,其目的在于:提供了路由器,交换机,胖AP,瘦AP通用的基于动态域名的黑白名单的功能。
本发明的技术解决方案:
一种基于Linux的动态域名解析模块包括:路由器、交换机、胖AP、瘦AP以及域名解析模 块,所述域名解析模块包括域名配置模块、域名拦截模块、域名判定模块和数据放行模块, 所述域名配置模块工作于用户空间,主要是接收用户从云端发来的指令配置具体哪些域名 要加入黑白名单;所述域名拦截模块,工作于内核空间,其功能是拦截DNS响应报文,并将其 通过IP组播的形式发放到用户空间的域名判定模块;所述域名判定模块,工作于用户空间, 接收从域名拦截模块发来的拦截下来的DNS响应包,查询步骤(1)中配置下来的黑白名单列 表,如果发现该域名在列表中,就从DNS响应包中提取其对应的一个或多个IP地址并通知数 据放行模块;所述数据放行模块,数据放行模块分为两个部分,一是当上述截获的DNS响应 包通过了域名判定模块的分析后,便将其放行,可利用iptables nf-queue 内核模块来实 现。另一个是符合黑白名单的IP地址加入对应的IPset后,将前往上述IP地址的数据包放行 或者阻拦,可利用iptables filter表加ipset模块来实现。
一种基于Linux动态域名解析模块的黑白名单实现方法,包括以下步骤:
(1)在iptables mangle表的POSTROUTING chain中加入对DNS服务器回送的包的拦截, 并将拦截包发送到组播队列。
(2)组播队列将DNS响应包发送到位于用户空间的“域名判定模块”。
(3)“域名判定模块”解析该DNS响应,如果发现其域名符合配置的要求,如查询的域名是house.sina.com.cn ,配置的域名是*.sina.com.cn,则提取响应中所有返回的IP地址加入到“IP数据库”。
(4)“域名判定模块”通过iptables的扩展内核模块nf_queue来放行该dns响应包。
(5)每当收到流入的数据包时要通过路由设备时,在iptables filter表的 FORWARD chain中加入对IP数据库的查询,如果IP报文的目的地址在IP数据库中就drop该 IP包,也就是不允许该IP报文通过。
本发明的有益效果:
1、提供了路由器,交换机,胖AP,瘦AP通用的配置基于动态域名的黑白名单的功能
2、能实时更新动态域名的黑(白)名单,即使该域名在频繁的更新其IP地址,从而避免因为只屏蔽域名而导致的错误和遗漏
3、实现效率高,算法简单,对路由器性能基本无影响。
附图说明
图1:本发明结构原理示意图。
图2:本发明实施流程图。
具体实施方式
下面结合附图和实施例来对本发明做进一步描述:
一种基于Linux的动态域名解析模块包括:路由器、交换机、胖AP、瘦AP以及域名解析模 块,所述域名解析模块包括域名配置模块、域名拦截模块、域名判定模块和数据放行模块, 所述域名配置模块工作于用户空间,主要是接收用户从云端发来的指令配置具体哪些域名 要加入黑白名单;所述域名拦截模块,工作于内核空间其功能是拦截DNS响应报文,并将其 通过IP组播的形式发放到用户空间的域名判定模块;所述域名判定模块,工作于用户空间, 接收从域名拦截模块发来的拦截下来的DNS响应包,查询1)中配置下来的黑白名单列表,如 果发现该域名在列表中,就从DNS响应包中提取其对应的一个或多个IP地址并通知数据放 行模块;所述数据放行模块,数据放行模块分为两个部分,一是当上述截获的DNS响应包通 过了域名判定模块的分析后,便将其放行,可利用iptables nf-queue 内核模块来实现。另 一个是符合黑白名单的IP地址加入对应的IPset后,将前往上述IP地址的数据包放行或者 阻拦,可利用iptables filter表加ipset 模块来实现。
一种基于Linux动态域名解析模块的黑白名单实现方法,包括以下步骤:
1、在iptables mangle表的POSTROUTING chain中加入对DNS服务器回送的包的拦截, 并将拦截包发送到组播队列。
2、组播队列将DNS响应包发送到位于用户空间的“域名判定模块”。
3、“域名判定模块”解析该DNS响应,如果发现其域名符合配置的要求,如查询的域名是house.sina.com.cn ,配置的域名是*.sina.com.cn,则提取响应中所有返回的IP地址加入到“IP数据库”。
4、“域名判定模块”通过iptables的扩展内核模块nf_queue来放行该dns响应包。
5、每当收到流入的数据包时要通过路由设备时,在iptables filter表的 FORWARD chain中加入对IP数据库的查询,如果IP报文的目的地址在IP数据库中就drop该 IP包,也就是不允许该IP报文通过。
本发明具体步骤参见图一详述如下:
S1 域名配置模块接收到外部指令,将黑白名单的配置,包括,配置的是黑名单还是白名单,动态域名的具体值,如(*.sina.com.cn, *.163.com, *.news.xjtu.edu.cn)等传送到域名拦截模块,域名判定模块和数据放行模块。
S2 域名拦截模块在iptables mangle表的POSTROUTING chain 中向Linux内核注 册了域名拦截通知服务,利用了iptables nf-queue 内核模块,也就是说当内核网络模块 解析到了域名解析的响应的时候,将该响应报文通过Netlink组播机制发送到用户空间的 多播组地址。
S3 域名判定模块加入该响应对应的IP多播组中,等待接收域名响应消息。
S4 数据放行模块向Linux内核发送消息,如果配置的是黑名单,就创建黑名单 IPset,并在iptables filter 表Forward chain中配置内核网络模块,使得所有目标地址 属于该黑名单IPset的非DNS协议的IP包全部拦阻,其余全部放行。如果配置的是白名单,就 创建白名单IPset,并利用iptables filter表配置内核网络模块,使得所有目标地址属于 该白名单IPset的IP包全部放行,其余非DNS协议的报文全部拦阻。
S5 当用户要上网的时候,如访问新浪新闻网站(news.sina.com.cn),用户键入该域名,浏览器解析该域名,发送域名解析请求到DNS服务器,dns服务器返回该域名解析的响应,DNS请求和响应都会经过路由设备,当路由设备的Linux 内核收到DNS响应包时,因为S2中域名拦截模块已经注册了针对该报文的通知服务,该DNS响应包会被内核发送到对应的IP多播组中,因为S3中域名判定模块已经加入了多播组所以域名判定模块将收到该报文,利用S2中nf-queue内核模块, 我们让Linux内核等待判定结果来决定是否放行还是拦阻该DNS响应报文。
S6 域名判定模块收到S5中内核传来的完整的DNS响应报文后,会进行包解析,从包里提取出该响应对应的DNS域名和该域名对应的IP地址,如果该域名匹配S1配置的域名规则,如DNS响应的域名为news.sina.com.cn 配置的域名为*.sina.com.cn。就将该域名对应的IP地址(一个或者多个)通知到域名放行模块。
S7 域名放行模块收到了此域名对应的一个或多个IP地址后,如果是配置的黑名单,就将该地址加入到黑名单IPset中,如果是配置的白名单就将该地址加入到白名单IPset中。然后向域名判定模块发送IPset更新确认消息。
S8 当域名判定模块收到了IPset更新的确认消息后,它向域名放行模块发送放行DNS响应的指令,后者再利用NF-Queue 内核模块的相关功能向Linux 内核转发此命令放行该DNS响应。
S9 当用户浏览器收到了该DNS解析响应后,浏览器就会访问该域名对应的IP地址,Linux内核网络模块会通知数据放行模块。如果配置的是黑名单,该地址包含在黑名单ipset中,该数据包将被拦阻,该访问将被拒绝,否则放行该数据包,允许此次访问。如果配置的是白名单,该地址包含在白名单ipset中,该数据包将被放行,该访问将被允许,否则拦阻该数据包,拒绝此次访问。注意这里S8的放行DNS响应的时机非常重要,一定要在ipset更新以后才可以放行dns响应,否则浏览器先于ipset更新完成访问目标地址,黑白名单就会失效。
综上,本发明达到预期目的。

Claims (3)

1.一种基于Linux的动态域名解析模块,其特征在于:包括路由器、交换机、胖AP、瘦AP以及域名解析模块,所述域名解析模块包括域名配置模块、域名拦截模块、域名判定模块和数据放行模块,所述域名配置模块工作于用户空间,主要是接收用户从云端发来的指令配置具体哪些域名要加入黑白名单;所述域名拦截模块,工作于内核空间,其功能是拦截DNS响应报文,并将其通过IP组播的形式发放到用户空间的域名判定模块;所述域名判定模块,工作于用户空间,接收从域名拦截模块发来的拦截下来的DNS响应包,查询配置下来的黑白名单列表,如果发现该域名在列表中,就从DNS响应包中提取其对应的一个或多个IP地址并通知数据放行模块;所述数据放行模块,数据放行模块分为两个部分,一是当上述截获的DNS响应包通过了域名判定模块的分析后,便将其放行,可利用iptables nf-queue 内核模块来实现。
2.另一个是符合黑白名单的IP地址加入对应的IPset后,将前往上述IP地址的数据包放行或者阻拦,可利用iptables filter表加ipset模块来实现。
3.一种基于Linux动态域名解析模块的黑白名单实现方法,其特征在于:包括以下步骤:
步骤一:在iptables mangle表的POSTROUTING chain中加入对DNS服务器回送的包的拦截,并将拦截包发送到组播队列;
步骤二:组播队列将DNS响应包发送到位于用户空间的“域名判定模块”;
步骤三:“域名判定模块”解析该DNS响应,如果发现其域名符合配置的要求,如查询的域名是house.sina.com.cn ,配置的域名是*.sina.com.cn,则提取响应中所有返回的IP地址加入到“IP数据库”;
步骤四:“域名判定模块”通过iptables的扩展内核模块nf_queue来放行该dns响应包;
步骤五:每当收到流入的数据包时要通过路由设备时,在iptables filter表的FORWARD chain中加入对IP数据库的查询,如果IP报文的目的地址在IP数据库中就drop该IP包,也就是不允许该IP报文通过。
CN201710319258.1A 2017-05-09 2017-05-09 一种基于Linux的动态域名解析模块及其黑白名单实现方法 Pending CN106899711A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710319258.1A CN106899711A (zh) 2017-05-09 2017-05-09 一种基于Linux的动态域名解析模块及其黑白名单实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710319258.1A CN106899711A (zh) 2017-05-09 2017-05-09 一种基于Linux的动态域名解析模块及其黑白名单实现方法

Publications (1)

Publication Number Publication Date
CN106899711A true CN106899711A (zh) 2017-06-27

Family

ID=59197237

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710319258.1A Pending CN106899711A (zh) 2017-05-09 2017-05-09 一种基于Linux的动态域名解析模块及其黑白名单实现方法

Country Status (1)

Country Link
CN (1) CN106899711A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109922030A (zh) * 2017-12-13 2019-06-21 南京领创信息科技有限公司 基于Android设备的全局网络访问控制系统及方法
CN111787028A (zh) * 2020-07-29 2020-10-16 成都飞鱼星科技股份有限公司 一种网络访问控制方法、设备及存储介质
CN113221106A (zh) * 2021-05-25 2021-08-06 杭州安恒信息安全技术有限公司 一种车辆的防护方法、装置和计算机可读存储介质
CN115225394A (zh) * 2022-07-21 2022-10-21 北京天融信网络安全技术有限公司 一种基于域名的报文拦截方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102006286A (zh) * 2010-10-29 2011-04-06 北京星网锐捷网络技术有限公司 信息系统的访问管理方法、装置、系统和接入设备
CN102045331A (zh) * 2009-10-22 2011-05-04 成都市华为赛门铁克科技有限公司 查询请求报文处理方法、装置及系统
US20130097691A1 (en) * 2011-10-17 2013-04-18 Canon Kabushiki Kaisha Information processing apparatus communicating with external device via network, and information processing method thereof
CN103338211A (zh) * 2013-07-19 2013-10-02 腾讯科技(深圳)有限公司 一种恶意url鉴定方法及装置
CN103546434A (zh) * 2012-07-13 2014-01-29 中国电信股份有限公司 网络访问控制的方法、装置和系统
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN103634315A (zh) * 2013-11-29 2014-03-12 杜跃进 域名服务器的前端控制方法及系统
CN105141712A (zh) * 2015-08-24 2015-12-09 深圳市宏电技术股份有限公司 一种离线域名解析方法及装置
CN105491045A (zh) * 2015-12-09 2016-04-13 福建星网锐捷网络有限公司 一种免认证接入控制方法、装置、设备和系统
CN106330849A (zh) * 2015-07-07 2017-01-11 安恒通(北京)科技有限公司 防止域名劫持的方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102045331A (zh) * 2009-10-22 2011-05-04 成都市华为赛门铁克科技有限公司 查询请求报文处理方法、装置及系统
CN102006286A (zh) * 2010-10-29 2011-04-06 北京星网锐捷网络技术有限公司 信息系统的访问管理方法、装置、系统和接入设备
US20130097691A1 (en) * 2011-10-17 2013-04-18 Canon Kabushiki Kaisha Information processing apparatus communicating with external device via network, and information processing method thereof
CN103546434A (zh) * 2012-07-13 2014-01-29 中国电信股份有限公司 网络访问控制的方法、装置和系统
CN103338211A (zh) * 2013-07-19 2013-10-02 腾讯科技(深圳)有限公司 一种恶意url鉴定方法及装置
CN103581363A (zh) * 2013-11-29 2014-02-12 杜跃进 对恶意域名和非法访问的控制方法及装置
CN103634315A (zh) * 2013-11-29 2014-03-12 杜跃进 域名服务器的前端控制方法及系统
CN106330849A (zh) * 2015-07-07 2017-01-11 安恒通(北京)科技有限公司 防止域名劫持的方法和装置
CN105141712A (zh) * 2015-08-24 2015-12-09 深圳市宏电技术股份有限公司 一种离线域名解析方法及装置
CN105491045A (zh) * 2015-12-09 2016-04-13 福建星网锐捷网络有限公司 一种免认证接入控制方法、装置、设备和系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
张永斌等: "基于组行为特征的恶意域名检测", 《计算机科学》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109922030A (zh) * 2017-12-13 2019-06-21 南京领创信息科技有限公司 基于Android设备的全局网络访问控制系统及方法
CN109922030B (zh) * 2017-12-13 2021-11-19 南京领创信息科技有限公司 基于Android设备的全局网络访问控制方法
CN111787028A (zh) * 2020-07-29 2020-10-16 成都飞鱼星科技股份有限公司 一种网络访问控制方法、设备及存储介质
CN113221106A (zh) * 2021-05-25 2021-08-06 杭州安恒信息安全技术有限公司 一种车辆的防护方法、装置和计算机可读存储介质
CN115225394A (zh) * 2022-07-21 2022-10-21 北京天融信网络安全技术有限公司 一种基于域名的报文拦截方法及系统

Similar Documents

Publication Publication Date Title
KR102138619B1 (ko) 서버 클러스터에 기초한 메시지 생성 방법 및 부하 균형기
US10009271B2 (en) Routing method and network transmission apparatus
CN105323173B (zh) 网络规则条目的设置方法及装置
CN106899711A (zh) 一种基于Linux的动态域名解析模块及其黑白名单实现方法
EP2940970B1 (en) Nat implementation system, method, and openflow switch
CN1232080C (zh) 网络中节省ip地址提供内部服务器的方法
WO2019061522A1 (zh) 域名解析方法、客户端、边缘节点及域名解析系统
US20120207167A1 (en) Method of searching for host in ipv6 network
CN100407704C (zh) 媒体接入控制层地址的动态学习方法
CN102148765B (zh) 一体化标识网络与传统IPv4互联网互联互通的实现方法
US20170111389A1 (en) Method and system for protecting domain name system servers against distributed denial of service attacks
CN105554179A (zh) 局域网内DNS解析方法、系统、Openflow交换机及控制器
US20140025804A1 (en) Flow routing protocol by querying a remote server
US20180007054A1 (en) Website filtering using bifurcated domain name system
US20160210366A1 (en) Method and apparatus for providing media resource
CN110493366A (zh) 一种接入点加入网络管理的方法及装置
CN102821020B (zh) 通过复制中转ip包来透传vpn通信的方法
CN107071075B (zh) 网络地址动态跳变的装置及方法
CN104253796A (zh) 域名系统中基于网络地址绑定区层级的快速区识别方法
US20230350966A1 (en) Communicating url categorization information
CN106790502B (zh) 一种基于NAT64前缀的IPv4终端、IPv6服务互通业务的负载均衡系统
CN103001966A (zh) 一种私网ip的处理、识别方法及装置
US11580163B2 (en) Key-value storage for URL categorization
CN108833284B (zh) 一种云平台和idc网络的通信方法及装置
CN101969478A (zh) 一种智能dns报文处理方法及处理装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20170627