您好,登錄后才能下訂單哦!
小編給大家分享一下怎么用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是一款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è)客戶端用于處理隧道的另一端。
首先,我們要做的就是將我們的服務(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>
接下來(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ù)器上的防火墻捕獲的情況。
在客戶端機(jī)器上,我們只需運(yùn)行iodine客戶端即可。iodine的安裝方法與上面是一樣的,然后運(yùn)行:
iodine -fP secretpassword ourdomain.com
你應(yīng)該能夠看到像Connection setup complete, transmitting data這樣的輸出信息。
DNS隧道已成功建立!
為了使我們的瀏覽器或其他工具能夠使用隧道,我們必須設(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è)資訊頻道!
免責(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)容。