DNS隧道搭建:DNS2TCP

需求背景:

假设有如上图所示的问题场景, 办公电脑通过防火墙与互联网相连,防火墙被配置为仅允许DNS数据通过。在此场景下,办公电脑显然无法直接访问互联网。现在我们想做的是通过使用dns2tcp建立DNS隧道,使得办公电脑可以访问互联网。

实验环境:

内网环境:centos6.5-32bit

dns2tcp服务器:阿里云公网服务器centos6.8-32bit,120.25.xx.xx

dns2tcp分服务端与客户端,分别安装配置

配置DNS服务器域名

配置dns.test-domain.com–>指向公网服务器120.25.xx.xx

dns2tcp服务端:

(1)、需要安装dns2tcp服务端软件、dante socks代理软件;

(2)、安装dns2tcp:

上传dns2tcp源码到服务器;

cd dns2tcp目录

./configure

make && make install

(3)、配置dns2tcp

vi /etc/dns2tcpd.conf

listen = 0.0.0.0
port = 53
user = nobody
chroot = /tmp
domain = dns.test-domain.com
resources = socks:120.25.xx.xx:1080

(4)、安装dante1.4.2 socks代理软件

上传dante源码到服务器;

cd dante目录

./configure

make && make install

(5)、配置dante

vi /etc/dante.conf

logoutput: /var/log/sockd.log
internal: eth0 port = 1080
external: eth0
socksmethod:username none
user.privileged: root
user.unprivileged: nobody

extension: bind

client pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect disconnect
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0 port gt 1023
command: bind
log: connect disconnect
}
socks pass {
from: 0.0.0.0/0 to: 0.0.0.0/0
command: connect udpassociate
log: connect disconnect
}
socks block {
from: 0.0.0.0/0 to: 0.0.0.0/0
log: connect error
}

(6)、运行dante代理软件

/usr/local/sbin/sockd -f /etc/ dante.conf

如果启动失败,可以通过查看/var/log/sockd.log日志文件进一步排错;

(7)、运行dns2tcp服务端软件

dns2tcpd -f /etc/dns2tcpd.conf -F -d 2

dns2tcp客户端

(1)、安装运行客户端

dns2tcpc -r socks -z dns.test-domain.com dns.test-domain.com -l 16666 -d 2

(2)、启动firefox浏览器,菜单edit->preference->Advanced->Network->Setting

(3)、访问百度,搜索ip,即可看到访问ip记录的是服务器公网ip:120.25.xx.xx

Copyright © 2017 ITGATHER.COM - 闽ICP备19016859号-1
扫二维码--> 返回顶部