DNS协议隧道
DNS服务,UDP 53端口用于应付查询,TCP 53端口用于域名服务器同步数据
防火墙禁止TCP出战流量,SSH隧道端口转发全部失效。
使用基于UDP协议的隧道,DNS的工作原理适合用于实现隧道
缓存DNS服务器没有固定写好的记录。默认只有根域的域名服务器(.域),如果没有缓存就转发查询请求,迭代查询,查到的记录都缓存下来,不是永久保存,有时间限制(TTL)。查到目标的时候会在最后的一个节点上会返回一个数据包带着建立SSH隧道的数据
DNS工作原理
前提条件是:注册受自己控制的DNS记录
dns2tcp
利用合法的DNS服务器实现DNS协议隧道
C/S(dns2tcpc客户端/dns2tcpd服务端)架构
通过TXT记录(做反向域名查询,做反垃圾邮件)加密传输数据(A记录长度有限)
建立后保持连接,发送类似心跳的信号,间隔很多的一段的时间就发送一个确认包,确实连接是否还有效
默认记录生存时间TTL值为3秒
fqdn最大255个字节
dns2tcp服务端的配置文件
/etc/dns2tcpd.conf
或者在当前登录帐号的主目录下.dns2tcprcd
启动
dns2tcpd -F -d 1 -f /etc/dns2tcpd.conf
-F 前端运行
-d debug level 1-3
-f 指定配置文件
dns2tcpc -c -k pass -d 1 -l 2222 -r ssh -z test.lab.com
-k key相当一个密码 服务器端配置的米按摩
-c 启动流量压缩
-d debug
-l 在本地的侦听,访问对面的资源通过这个端口
-r 指定利用的的,SSH,HTTPS什么的
-z zone 指定用哪个域名去建立隧道