溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么用lodine建立DNS隧道

發(fā)布時(shí)間:2021-11-03 10:14:53 來(lái)源:億速云 閱讀:176 作者:小新 欄目:編程語(yǔ)言

小編給大家分享一下怎么用lodine建立DNS隧道,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

最近我在我的一個(gè)VPS上設(shè)置了DNS隧道。這項(xiàng)技術(shù)對(duì)于繞過(guò)captive portals(強(qiáng)制登錄門戶),過(guò)濾器等非常有用。由于DNS是互聯(lián)網(wǎng)不可或缺的重要服務(wù),因此在大多數(shù)網(wǎng)絡(luò)中通常都會(huì)放行53端口的進(jìn)出數(shù)據(jù)流量。

雖然有時(shí)這些DNS請(qǐng)求僅限于白名單服務(wù)器或特定域,但你通常會(huì)發(fā)現(xiàn)DNS幾乎是完全不受限制的,如果我們能控制管道的兩端,那么我們就可以通過(guò)隧道來(lái)傳輸數(shù)據(jù)。

我們可以在端口53上設(shè)置一個(gè)SSH服務(wù)器或其它類似服務(wù)器,但在某些情況下ssh協(xié)議會(huì)被過(guò)濾,從而導(dǎo)致隧道建立失敗。因此,通過(guò)DNS建立隧道才是我們最好的選擇。

Iodine

為此,我們將用到一款名為iodine的工具。Iodine是一款DNS隧道制造工具,通過(guò)一臺(tái)DNS服務(wù)器就可以為我們建立一個(gè)IPv4的數(shù)據(jù)通道,該工具常被滲透測(cè)試人員用于防火墻繞過(guò)等場(chǎng)景。

Iodine由我們?cè)诜?wù)器上運(yùn)行的DNS daemon(守護(hù)進(jìn)程)組成,該守護(hù)進(jìn)程偵聽(tīng)傳入的DNS請(qǐng)求并解包隧道數(shù)據(jù)。另外,我們還有一個(gè)客戶端用于處理隧道的另一端。

注冊(cè)DNS服務(wù)器

首先,我們要做的就是將我們的服務(wù)器注冊(cè)為DNS服務(wù)器。為此,我們需要一個(gè)域名。GoDaddy上有一些非常便宜的域名,并且支持隱私選項(xiàng)。這樣也避免了我們的個(gè)人詳細(xì)信息,被通過(guò)whois輕松地查找到。

獲取域名后,我們必須在域名控制面板中為其配置NS記錄,例如:

t1		IN	NS	ourdomain.com.		; note the dot!

如果你手頭已有一個(gè)現(xiàn)成的域,并希望你的iodine服務(wù)器能夠使用其它的服務(wù)器,那么你可以先設(shè)置子域并注冊(cè)iodine服務(wù)器的IP,然后將你的NS記錄指向此子域即可。

t1		IN	NS	t1ns.ourdomain.com.		
t1ns		IN	A	<iodine-server-ip>

設(shè)置daemon(守護(hù)進(jìn)程)

接下來(lái)我們要做的是在服務(wù)器上安裝iodine。如果你當(dāng)前使用的系統(tǒng)是基于debian的發(fā)行版,那么你可以像我一樣使用apt install iodine命令進(jìn)行安裝。

使用以下命令運(yùn)行iodine daemon:

iodined -fcP secretpassword 10.0.1.1 ourdomain.com

-f 在前臺(tái)運(yùn)行

-c 禁用檢查所有傳入請(qǐng)求的客戶端IP地址

-P secretpassword 客戶端和服務(wù)器之間用于身份驗(yàn)證的共享密鑰詳情

10.0.1.1 是服務(wù)器將在tun接口客戶端上提供的IP。客戶端將在該范圍內(nèi)給出下一個(gè)IP。

ourdomain.com 是我們之前設(shè)置的DNS服務(wù)器的域名。

如果你想要將iodine設(shè)置為在啟動(dòng)時(shí)運(yùn)行,你可以使用以下命令啟用該服務(wù):

update-rc.d iodine enable

以及

service iodine start

來(lái)啟動(dòng)該服務(wù)。但你會(huì)發(fā)現(xiàn)此時(shí)啟動(dòng)會(huì)失敗。想要順利啟動(dòng)服務(wù),我們必須要在/etc/defaults/iodine文件中設(shè)置daemon參數(shù),如下:

START_IODINED true

IODINED_ARGS -c 10.0.1.1 ourdomain.com

IODINED_PASSWORD secretpassword

配置檢查

基本配置完成后,我們可以通過(guò)iodine check頁(yè)面來(lái)檢查我們的配置是否正確。

如果配置無(wú)誤但仍無(wú)法正常工作,那么請(qǐng)檢查流量是否有被服務(wù)器上的防火墻捕獲的情況。

運(yùn)行客戶端

在客戶端機(jī)器上,我們只需運(yùn)行iodine客戶端即可。iodine的安裝方法與上面是一樣的,然后運(yùn)行:

iodine -fP secretpassword ourdomain.com

你應(yīng)該能夠看到像Connection setup complete, transmitting data這樣的輸出信息。

DNS隧道已成功建立!

設(shè)置代理

為了使我們的瀏覽器或其他工具能夠使用隧道,我們必須設(shè)置代理。我們將利用SSH動(dòng)態(tài)端口轉(zhuǎn)發(fā),在本地創(chuàng)建SOCKS代理,所有的數(shù)據(jù)流量都將使用DNS tunnel并通過(guò)SSH連接到我們的服務(wù)器。

通過(guò)以下命令來(lái)設(shè)置代理:

ssh -N -D 8080 user@10.0.1.1

-N 指示SSH不要啟動(dòng)shell,因?yàn)槲覀冎皇窍雱?chuàng)建代理

-D 設(shè)置動(dòng)態(tài)端口轉(zhuǎn)發(fā),SOCKS代理端口為8080

user 我們服務(wù)器上的用戶

10.0.1.1 tun接口上的iodine服務(wù)器

設(shè)置完成后,我們就可以在瀏覽器中使用代理了。例如我們可以使用Firefox或Chrome中的FoxyProxy。如果一切順利,你應(yīng)該能夠在瀏覽器中檢查你的IP并獲取你服務(wù)器的IP。

以上是“怎么用lodine建立DNS隧道”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI