有些網絡的防火牆設置只允許端口53的UDP流量,就不能通過tcp搭建隧道,這種情況下我們可以通過UDP搭建DNS隧道,通過搭建一個DNS服務器委派的子域,這個子域因為使我們自己搭建的主機,這時候就可以通過這個子域搭建DNS隧道,和網絡被限制的主機1交互。
主機3為DNS服務器需要設置為固定的IP地址
它的原理是通過DNS請求頭域名的信息 TXT記錄加密傳輸信息,我們可以通過抓取DNS隧道數據包,可以看到DNS的查詢請求的域名信息test.lab.com前的一串數據,里面就是加密過后的交互數據。DNS隧道建立后,客戶端(主機1)還是會不斷地發包給服務器端(主機2),類似心跳一樣,確認服務器端處於存活狀態,保證傳輸的順暢。
在主機3上搭建一個DNS服務器,並委派一個子域給主機2,配置轉發器,除test.lab.com之外的域名用別的域名地址解析
搭建DNS隧道
在主機2
修改dns2tcpd的配置
vim /etc/dns2tcpd.conf
ssh:127.0.0.1:22
smtp:127.0.0.1:25
socks:127.0.0.1:1080
http:192.168.1.1:80
https:127.0.0.1:8087
在DNS服務器主機2上開啟ssh,smtp,socks,http,https服務,開放22,25,1080,80,8087端口
配置一下ssh,使其能夠在root權限下使用
主機2開啟ssh服務。
service ssh start
主機2開啟dns隧道
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
主機1通過DNS隧道連接主機2使用ssh服務
dns2tcp -c -k pass123 -d 1 -l 2222 -r ssh -z test.lab.com
-c 啟動流量壓縮
-d debug查看信息
-l 設置本地偵聽端口
-r 指定資源
在主機1上訪問2222端口就相當於在主機2上訪問的22端口
在主機1另開一個終端
ssh root@127.0.0.1 -p 2222
主機1就通過ssh登錄上了主機2
主機1通過DNS隧道連接主機2使用http服務
在主機1上
輸入dns2tcp -c -k pass123 -d 1 -l 2222 -r http -z test.lab.com
打開瀏覽器,輸入http://127.0.0.1:2222/,就相當於是在主機2上訪問192.168.1.1一樣
主機1通過DNS隧道連接主機2使用https服務
dns2tcp -c -k pass123 -d 1 -l 7001 -r https -z test.lab.com
DNS隧道設置網關功能
DNS隧道是沒有網關功能的,假如想將DNS隧道的客戶端主機1作為一個網卡的話,先建立一個DNS隧道里再嵌套一個ssh隧道,用ssh隧道作為一個網關使用
主機3為DNS服務器需要設置為固定的IP地址
主機2開啟ssh服務。
service ssh start
主機2開啟dns隧道
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
主機1通過DNS隧道連接主機2使用ssh服務,將2222端口作為DNS隧道的入口。
dns2tcpc -k pass123 -d 1 -l 2222 -r ssh -z test.lab.com
再再開一個終端,在主機1的DNS隧道里再搭建一個ssh隧道,並作為網關使用
ssh -CfNg root@127.0.0.1 -p 2222 -D 7002
主機1網關搭建好了,在主機4上打開瀏覽器設置代理,將主機1的ip和端口作為代理
然后主機4就能上網了,就相當於在主機2上網差不多。
通過內網的DNS服務器與外網DNS建立DNS隧道
主機1和主機3作為DNS服務器,作為DNS服務器IP地址需要設置為固定的IP地址,主機1的DNS配置上只做轉發,將所有的DNS請求都轉發給192.168.1.10,主機3委派子域給主機2的ip192.168.1.110,設置域名為test.lab.com
在主機2,停掉openvas防止占用一些特定的端口
開啟DNS隧道
dns2tcp -F -d 1 -f /etc/dns2tcpd.conf
開啟ssh
service ssh start
安裝squid3
apt-get install squid3
開啟squid
service squid start
在主機4,將DNS地址設置為內網中DNS服務器的ip地址,也就是主機1的ip:1.1.1.11
修改DNS sudo vi /etc/resolv.conf
nameserver 1.1.1.11
連接隧道
dns2tcpc -c -k <password> -d 1 -l 8080 -r http -z test.lab.com
瀏覽器的代理設置為127.0.0.1:8080,便能上網了,和在主機2上上網一樣。