dns tunnel的原理及实战_第1页
dns tunnel的原理及实战_第2页
dns tunnel的原理及实战_第3页
dns tunnel的原理及实战_第4页
dns tunnel的原理及实战_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DNS tunnel 的原理及实战 什么是 DNS tunnel? DNS tunnel 即 DNS 隧道。从名字上来看就是利用 DNS 查询过程建立起隧道, 传输数据。 为什么使用 DNS tunnel? 当你在酒店、机场等公共场所,通常有 Wifi 信号,但是当你访问一个网站时, 如 /, 可能会弹出个窗口,让你输入用户名、密码,登陆之 后才可以继续上网(该技术一般为透明 http 代理,不在本文讨论范围之内,以后 再讲)。这时,你没有账 号,就无法上网。但是有时你会发现,你获取到得 DNS 地址是有效的,并且可以用以进行 DNS 查询,这时你便可以用 DNS tunnel 技术来实现免费上网了! DNS tunnel 的原理 首先,要知道 DNS 系统的工作原理,见:DNS 系统(服务器)的工作原理及攻 击防护方法论 。你在做 DNS 查询的时候,如果查的域名在 DNS 服务器本 机的 cache 中没有,它就会去互联网上查询,最终把结果返回给你。如果你在 互联网上有台定制的服务器。只要依靠 DNS 的这层约定,就可以交换数据包 了。从 DNS 协议上看,你是在一次次的查询某个特定域名,并得到解析结果。 但实际上,你在和外部通讯。你没有直接连到局域网外的机器,因为网关不会 转发你的 IP 包出去。但局域网上的 DNS 服务器帮你做了中转。这就是 DNS Tunnel 了。 上 图简单介绍了 DNS tunnel 的原理。当你连接上 wifi 后,你可以使用 DNS 服 务器,向这个服务器的53端口发送数据,请求一个域名,比如 。这台 DNS 服务器上没有 ,那么它将向 root,也就是根域名服务器请求,看 看根知道不。root 一看是.org 的域名,就交 给.org 域名服务器进行解析。.org 的域名服务器一看是. 那么就会去找. 的域名服务器 (),看看它有没有这条记录。. 的域名服务器上一看是 ,如果它有这 条 A 记录,那么就会返回 的地址。 但是,如果没有,你可以再在 的域名服务器上设定一个 NS 类型的 记录人,如: NS 111.222.333.444(通常这里不让设置为地址,那么也好 办,你可以先在 DNS 服务器上添加一条 A 记录,如 111.222.333.444,再添加 NS 记录: NS ),这里指定一个 公网服务器,也就是上图绿色的服务器,这台服务器中跑着 DNS tunnel 的 server 端,是一台假的 DNS 服务器,他不会返回 的地址,但是它会将 你的请求转发到已经设定的端口中,比如 SSH 的22端口,22端口返回的数据它 将转发到53端口返回给客户端(也就是你的电脑)。这时,你就可以用这台公网 服务器的资源了,如果是一台 http 或者 sock 代理,那么你就可以用这个代理 免费上网了。 DNS tunnel 实现的工具 DNS tunnel 实现的工具有很多,比如:OzymanDNS、tcp-over- dns、heyoka、iodine、dns2tcp。由于 BT4、5系统自带了 dns2tcp 工 具。这里仅介绍 dns2tcp 的使用方法。 DNS2TCP 的 DNS tunnel 实验 环境准备 一个已经申请好的公网域名,在这里我就用本 blog 的域名了 。给该域名指定一个 DNS 服务器(在域名管理的控制面板即可 看到),本 环境为 DNSpod 的服务器:。一个公网 服务器 server(运行着 BT4系统,主要使用里面的 dns2tcpd V4程序)。 这里使用局域网中的一台 PC,在防火墙上做端口映射,将 UDP 的53端 口映射出去。公网 IP 为111.222.333.444一 个客户端 client(运行着 BT4系统,主要使用里面的 dns2tcpc V4程序)。这里模拟在机场的环境, 能连接局域网(与上面的服务器不在一个局域网内,是另一个连接公网 的局域网),能够获取到 DNS 服务器,如辽宁网通的8,并 可以通过它进行 DNS 查询(测试方法:nslookup 8,后面的域名服务器请根据实际情况替换)。 前期配置 客户端 client 可以使用域名服务器查询域名,这里设定该域名为 (该域名不能在 dnspod 的域名服务器上有任何记 录,因为这个记录是由 server 进行应答的) 在 的域名服务器上建立两条 DNS 记录 A 111.222.333.444(这里的目的就是给 DNS 服务器设定 一个域名,按原理来说是可以舍去的,但是 DNSpod 上不可以将 NS 记 录配置为 IP,只能配置为域名,所以需要加上这条记录) NS (这里建立一条 NS 记录,意思是如果本台 DNS 服务器上没有客户端查询的域名(),请去 (也就是111.222.333.444)上去查询) 在 server 上开启 SSH 服务。用以进行测试,如果 DNS tunnel 建立, client 可以使用 SSH 连接到服务器上。 详细配置方法 server 端: 编辑/etc/dns2tcpd.conf 文件,内容如下: listen = 8(Linux 服务器的 IP) port = 53 user = nobody chroot = /var/empty/dns2tcp/ domain = (对该域名的请求进行转发,将返回数 据包进行封装) resources = ssh::22(可以为客户端提供的服务,也可以 为 http::3128,如果该服务器开启了 http 代理服务) 然后,运行 dns2tcpd 服务器程序: #./dns2tcpd-F -d 1 -f /etc/dns2tcpd.conf = client 端:#./dns2tcpc-z 如果 生效了,便可以连接服务器,提示: Available connection(s): ssh 但是如果 还没有生效,会提示:no response from dnsserver 。这时可以先使用: #./dns2tcpc - 8 如 果成功连接服务器,则说明 dnstunnel 可以成功建立了,如果没有, 请测试你获取到得 dns 服务器地址是否可用,并且 的 ns 记 录是否生效。测试方法:将111.222.333.444映射到另外一个真正的 dns 服务器上,加一条 A 记录,如: A 54 。然后使用 nslookup 8,观察能否成功解析。 如果不能解析,请检查 dnspod 的配置及 dns 记录生效情况。 测试可以成功连接服务器后, 使用#./dns2tcpc -r ssh -l 44

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论