久久精品国产99国产精品,农村大炕弄老女人,人马配速90分钟,香蕉成人伊视频在线观看

DNS隧道

DNS tunnel 即 DNS隧道。從名字上來看就是利用DNS 查詢過程建立起隧道,傳輸數據。為什么使用DNS tunnel?當你在酒店、機場等公共場所,通常有Wifi 信號,但是當你訪問一個網站時

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端口發送數據,請求一個域名,比如

b.xxx.org 。這臺DNS 服務器上沒有b.xxx.org ,那么它將向root ,也就是根域名服務器請求,看看根知道不。root 一看

是.org 的域名,就交 給.org 域名服務器進行解析。.org 的域名服務器一看是.xxx.org 那么就會去找.xxxi.org 的域名服務器

(f1g1ns1.dnspod.net),看看它有沒有這條記錄。.xxx.org 的域名服務器上一看是b.xxx.org ,如果它有這 條A 記錄,

那么就會返回b.xxx.org 的地址。

但是,如果沒有,你可以再在guanwei.org 的域名服務器上設定一個NS 類型的記錄人,如:xxx.org NS

111.222.333.444(通常這里不讓設置為地址,那么也好辦,你可以先在DNS 服務器上添加一條A 記錄,如ns.xxx.org

111.222.333.444,再添加NS 記錄:guanwei.org NS ns.xxx.org),這里指定一個公網服務器,也就是上圖綠色的

服務器,這臺服務器中跑著DNS tunnel 的server 端,是一臺假的DNS 服務器,他不會返回b.xxx.org 的地址,但是它會將你的請求轉

發到已經設定的端口中,比如 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 的域名了xxx.org 。給該域名指定一個DNS 服務器(在域名管理的控制面板即可看到) ,本 環境

為DNSpod 的服務器:f1g1ns1.dnspod.net 。一個公網服務器server(運行著BT4系統,主要使用里面的dns2tcpd

V4程序) 。這里使用局域網中的一臺PC ,在防火墻上做端口映射,將UDP 的53端口映射出去。公網IP 為111.222.333.444一 個客戶端

client(運行著BT4系統,主要使用里面的dns2tcpc V4程序) 。這里模擬在機場的環境,能連接局域網(與上面的服務器不在一個局域網

內,是另一個連接公網的局域網) ,能夠獲取到DNS 服務器,如遼寧網通的202.96.64.68,并可以通過它進行DNS 查詢(測試方法:

nslookup 202.96.64.68,后面的域名服務器請根據實際情況替換) 。

前期配置

客戶端client 可以使用域名服務器查詢域名,這里設定該域名為dnstunnel.xxx.org (該域名不能在dnspod 的域名服務器上有任何

記錄,因為這個記錄是由server 進行應答的)

在xxx.org 的域名服務器上建立兩條DNS 記錄

ns.xxx.org A 111.222.333.444(這里的目的就是給DNS 服務器設定一個域名,按原理來說是可以舍去的,但是DNSpod 上

不可以將NS 記錄配置為IP ,只能配置為域名,所以需要加上這條記錄)

xxx.org NS ns.xxx.org(這里建立一條NS 記錄,意思是如果本臺DNS 服務器上沒有客戶端查詢的域名

(dnstunnel.xxx.org),請去ns.xxx.org(也就是111.222.333.444) 上去查詢)

在server 上開啟SSH 服務。用以進行測試,如果DNS tunnel 建立,client 可以使用SSH 連接到服務器上。

詳細配置方法

server 端:

,

編輯/etc/dns2tcpd.conf文件,內容如下:

listen = 192.168.10.88(Linux 服務器的IP )

port = 53

user = nobody

chroot = /var/empty/dns2tcp/

domain = dnstunnel.xxx.org(對該域名的請求進行轉發,將返回數據包進行封裝) resources = ssh:127.0.0.1:22(可以為客戶端提供的服務,也可以為http:127.0.0.1:3128,如果該服務器

開啟了http 代理服務)

然后,運行dns2tcpd 服務器程序: #./dns2tcpd-F -d 1 -f /etc/dns2tcpd.conf

================================================

client 端:#./dns2tcpc-z dnstunnel.xxx.org ns.xxx.org

如果ns.xxx.org 生效了,便可以連接服務器,提示:

Available connection(s ):

ssh

但是如果ns.xxx.org 還沒有生效,會提示:no response from dnsserver 。這時可以先使用: #./

dns2tcpc -zdnstunnel.xxx.org 202.96.64.68

如 果成功連接服務器,則說明dnstunnel 可以成功建立了,如果沒有,請測試你獲取到得dns 服務器地址是否可用,并且xxx.org 的ns 記

錄是否生效。測試方法:將111.222.333.444映射到另外一個真正的dns 服務器上,加一條A 記錄,如:test.xxx.org A

192.168.10.254 。然后使用nslookup test.xxx.org 202.96.64.68,觀察能否成功解析。如果不能解析,

請檢查dnspod 的配置及dns 記錄生效情況。

測試可以成功連接服務器后, 使用#./dns2tcpc -r ssh -l 4430 -z dnstunnel.xxx.org

202.96.64.68 這時會在本地監聽一個端口,類似一個反彈木馬。使用ssh 127.0.0.1 -p 4430 便可以成功連接

server 的22端口。如果server 提供http 代理服務,那么你就可以設置http 代理服務器免費上網了

標簽:
主站蜘蛛池模板: 台北县| 河北区| 昌邑市| 综艺| 临桂县| 宜宾市| 天台县| 库车县| 武山县| 盐亭县| 顺平县| 石楼县| 沁水县| 山东省| 余姚市| 竹溪县| 西林县| 贵定县| 绍兴县| 陵水| 蒲江县| 阜新市| 昭觉县| 湖口县| 长兴县| 汕头市| 定襄县| 西华县| 曲松县| 章丘市| 南丹县| 贵南县| 子长县| 泊头市| 齐齐哈尔市| 民乐县| 栖霞市| 庆城县| 兴文县| 大宁县| 平南县|