新睿云

> 知识库 > 域名服务器的作用,不良小厂DNS劫持赚取黑心钱背后的哪些套路

域名服务器的作用,不良小厂DNS劫持赚取黑心钱背后的哪些套路

作者/来源:新睿云小编 发布时间:2019-09-25

您有没有过打开自己心仪的网站却跳转到领一个页面?浏览器里面铺天盖地的全部都是广告?就比如下图,您打www.xinruiyun.cn这种正规的云计算厂商却跳转到骗局站之中,如果您出现过这种情况哪我很不幸的告诉您,你的DNS已经被劫持了!避免任人宰割那您就看下去,本文将详尽为您分析额搭建自己的域名解析系统。

DNS劫持后跳转的页面

域名系统(英语:Domain Name System,缩写:DNS)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。DNS使用TCP和UDP端口53。当前,对于每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符。

开始时,域名的字符仅限于ASCII字符的一个子集。2008年,ICANN通过一项决议,允许使用其它语言作为互联网顶级域名的字符。使用基于Punycode码的IDNA系统,可以将Unicode字符串映射为有效的DNS字符集。因此,诸如“XXX.中国 ”、“XXX.台湾”的域名可以在地址栏直接输入并访问,而不需要安装插件。但是,由于英语的广泛使用,使用其他语言字符作为域名会产生多种问题,例如难以输入,难以在国际推广等。

一、域名服务器(DNS)工作原理

网络客户端就是我们平常使用的电脑,打开浏览器,输入一个域名。比如输入www,xinruiyun.cn,这时,你使用的电脑会发出一个DNS请求到本地DNS服务器。本地DNS服务器一般都是你的网络接入服务器商提供,比如中国电信,中国移动。

查询www,xinruiyun.cn的DNS请求到达本地DNS服务器之后,本地DNS服务器会首先查询它的缓存记录,如果缓存中有此条记录,就可以直接返回结果。如果没有,本地DNS服务器还要向DNS根服务器进行查询。

根DNS服务器没有记录具体的域名和IP地址的对应关系,而是告诉本地DNS服务器,你可以到域服务器上去继续查询,并给出域服务器的地址。

本地DNS服务器继续向域服务器发出请求,在这个例子中,请求的对象是.cn域服务器。.cn域服务器收到请求之后,也不会直接返回域名和IP地址的对应关系,而是告诉本地DNS服务器,你的域名的解析服务器的地址。

最后,本地DNS服务器向域名的解析服务器发出请求,这时就能收到一个域名和IP地址对应关系,本地DNS服务器不仅要把IP地址返回给用户电脑,还要把这个对应关系保存在缓存中,以备下次别的用户查询时,可以直接返回结果,加快网络访问。

下面这张图是详细的工作原理:

域名服务器工作原理

二、域名服务器DNS劫持

1、错误域名解析到纠错导航页面,导航页面存在广告。判断方法:访问的域名是错误的,而且跳转的导航页面也是官方的,如电信的114,联通移网域名纠错导航页面。

2、错误域名解析到非正常页面,对错误的域名解析到导航页的基础上,有一定几率解析到一些恶意站点,这些恶意站点通过判断你访问的目标HOST、URI、 referrer等来确定是否跳转广告页面,这种情况就有可能导致跳转广告页面(域名输错)或者访问页面被加广告(页面加载时有些元素的域名错误而触发)这种劫持会对用户访问的目标HOST、URI、referrer等会进行判定来确定是否解析恶意站点地址,不易被发现。

3、直接将特点站点解析到恶意或者广告页面,这种情况比较恶劣,而且出现这种情况未必就是运营商所为,家里路由器被黑,或者系统被入侵,甚至运营商的某些节点被第三方恶意控制都有可能。具体情况要具体分析,这里就不展开了。

DNS劫持常见于使用自动的DNS地址,所以,不管有没有被劫持,尽量不要使用运营商默认的DNS。

DNS设置

就上面这种默认网关我们自己配置一下,默认虽然方便,但劫持全屏都是广告。更令人生气的是会随便跳转诈骗网站,让您防不胜防……

三、默认不可靠自己搭建DNS域名服务器才是王道

DNSmasq 是一个小巧且方便地用于配置 DNS 和 DHCP 的工具,适用于小型网络,它提供了 DNS 功能和可选择的 DHCP 功能。自己搭建公共 DNS 更加灵活,如果是在本地搭建,还可以大幅提高解析速度。

本地解析

1、安装

可以下载软件包编译安装,不过一般 Linux 软件仓库已经提供了 DNSmasq,相关命令如下:


#centos安装
yum -y install dnsmasq
#如果是ubuntu系统
apt-get -y install dnsmasq


2、配置

DNSmasq 配置文件在 /etc/dnsmasq.conf,我们需要修改几个参数,分别为:

resolv-file=/etc/resolv.dnsmasq.conf 这个参数表示 dnsmasq 会从这个指定的文件中寻找上游 dns 服务器。

取消注释的 strict-order,表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析,

直到第一个成功解析成功为止。

注释掉 no-hosts, 默认情况下这是注释掉的,dnsmasq 会首先寻找本地的 hosts 文件再去寻找缓存下来的域名,最后去上游 dns 服务器寻找。

设置 listen-address=0.0.0.0, 0.0.0.0 改成服务器公网 IP

我们来整理下上面我们修改了那些配置内容


#需要新建一个resolv.dnsmasq.conf文件,这个是配置上游DNS,也就是真正的公共DNS
vi /etc/resolv.dnsmasq.conf
#内容如下
nameserver 119.29.29.29
nameserver 1.2.4.8


#修改/etc/dnsmasq.conf
#上游DNS路径
resolv-file=/etc/resolv.dnsmasq.conf
#取消strict-order注释
strict-order
#监听地址0.0.0.0对所有网络有效
listen-address=0.0.0.0


3、使用方法

DNSmasq 可以设置不同的域名指定不同的 DNS 进行解析,修改 /etc/dnsmasq.conf 文件即可,若不对域名设置 DNS,则从上游 DNS 获取记录。


#指定淘宝使用114 DNS进行解析
server=/taobao.com/114.114.114.114
#google指定8.8.8.8进行解析
server=/google.com/8.8.8.8
也可以对指定的域名进行解析,相当于就是本地 hosts 指向,可以利用这个功能实现广告屏蔽等效果。也是需要修改 /etc/dnsmasq.conf 文件,DNSmasq 也可以对域名进行泛解析,填写 *.moewah.com, 这样的格式即可。
#将广告域名指向到127.0.0.1实现广告屏蔽
address=/ad.youku.com/127.0.0.1
address=/ad.iqiyi.com/127.0.0.1
#对moewah.com进行泛解析
address=/*.moewah.com/119.23.184.172
4、启动与测试
#启动
/etc/init.d/dnsmasq start
#停止
/etc/init.d/dnsmasq stop
#重新启动
/etc/init.d/dnsmasq restart


比如我在本地一台 Linux 服务器(192.168.20.127)安装了 DNSmasq,并在局域网内其它 PC 将 DNS 配置为 192.168.20.127,使用 dig 命令进行测试,第一次查询相对较长,第二次几乎再 10ms 内,如下截图。

服务器解析

如果是在内网搭建 DNSmasq,不仅可以提高解析速度,还可以有效的防止 DNS 劫持,实现屏蔽广告等作用。如果是在公网搭建 DNSmasq,还可以对指定的域名解析 hosts 指向,从而避免 DNS 污染,实现 fq。

如果您发现 DNSmasq 启动正常,但就是无法解析,请注意防火墙是否放行 tcp/upd 53 端口。本文固然全也不敢说涵盖全面,相关可以进行参考的文章:《DNS服务器是什么?新睿云教您配置最优的DNS(视频教程)》、《什么是DNS域名解析?新睿云详细给您阐明原理》、《dns服务器有什么用?本文详尽分析dns工作原理

本文新睿云参考多家资料,但凡有侵权之处还请联系管理员删除侵权部分。如果要转载整篇文章还请注明出处,谢谢合作!

热门标签
new year
在线咨询
咨询热线 400-1515-720
投诉与建议
{{item.description}}

—您的烦恼我们已经收到—

我们会将处理结果发送至您的手机

请耐心等待