小編給大家分享一下怎么用lodine建立DNS隧道,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
成都創(chuàng)新互聯(lián)公司專注于企業(yè)全網(wǎng)營銷推廣、網(wǎng)站重做改版、輝南網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5開發(fā)、購物商城網(wǎng)站建設(shè)、集團(tuán)公司官網(wǎng)建設(shè)、外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為輝南等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
最近我在我的一個(gè)vps上設(shè)置了DNS隧道。這項(xiàng)技術(shù)對(duì)于繞過captive portals(強(qiáng)制登錄門戶),過濾器等非常有用。由于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幾乎是完全不受限制的,如果我們能控制管道的兩端,那么我們就可以通過隧道來傳輸數(shù)據(jù)。
我們可以在端口53上設(shè)置一個(gè)SSH服務(wù)器或其它類似服務(wù)器,但在某些情況下ssh協(xié)議會(huì)被過濾,從而導(dǎo)致隧道建立失敗。因此,通過DNS建立隧道才是我們最好的選擇。
為此,我們將用到一款名為iodine的工具。Iodine是一款DNS隧道制造工具,通過一臺(tái)DNS服務(wù)器就可以為我們建立一個(gè)IPv4的數(shù)據(jù)通道,該工具常被滲透測(cè)試人員用于防火墻繞過等場景。
Iodine由我們?cè)诜?wù)器上運(yùn)行的DNS daemon(守護(hù)進(jìn)程)組成,該守護(hù)進(jìn)程偵聽傳入的DNS請(qǐng)求并解包隧道數(shù)據(jù)。另外,我們還有一個(gè)客戶端用于處理隧道的另一端。
首先,我們要做的就是將我們的服務(wù)器注冊(cè)為DNS服務(wù)器。為此,我們需要一個(gè)域名。GoDaddy上有一些非常便宜的域名,并且支持隱私選項(xiàng)。這樣也避免了我們的個(gè)人詳細(xì)信息,被通過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
接下來我們要做的是在服務(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
來啟動(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
基本配置完成后,我們可以通過iodine check頁面來檢查我們的配置是否正確。
如果配置無誤但仍無法正常工作,那么請(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并通過SSH連接到我們的服務(wù)器。
通過以下命令來設(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)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!