安全的代理工具-deblocus
2015-10-28 17:04:54 阿炯

deblocus is a tunneling software that allows secure TCP connection through the server by acting as a SOCKS5/HTTP proxy server on the client side.


安全高效的局部代理(Socks5/HTTP)工具,提供多种加密算法,可满足在企业网络、公共WiFi等场景下安全通信的需要。可从项目Releases下载程序,或自行编译。可供使用的平台:Linux, Mac OS X, Windows,它采用Go语言开发并在MIT协议下授权。

Features

Traffic encrypted with dynamic session key
deblocus has perfect forward secrecy.

Tunnel's communication was provided with mildly obfuscated traffic based on special protocol
Keep communications secure and privacy over untrusted networks.

TCP multiplexing inside tunnel and Fast-Open over application layer
Optimized connectivity for massive short requests, latency greatly reduced to nearly 1-RTT.

Filtering traffic to specified country (using GeoLite2 data)
You can avoid the proxy was used for some inappropriate purposes.

High-performance encryption implementation
Could enjoy high throughput and low resource consumption.



它分为server端和client端,首先配置服务器端,假设你是下载的二进制包,解压后只有一个文件:deblocus

现在有官方的中文参考文档


关于配置

deblocus的配置使用ini文本文件(从0.13以后),配置都来自服务端生成,具体请查看后续章节。配置文件中包含密钥或者密码等,请妥善保存,linux/unix系统用户可通过chmod 600等措施加强访问权限约束。

配置文件的默认名称为deblocus.ini,典型位置和查找顺序为:当前位置, deblocus程序目录, 用户home, /etc/deblocus/ (在windows系统忽略etc位置)。若非默认名称或不在典型位置,需要使用--config/-c参数指明位置。

关于日志

命令参数 -v 或配置文件项 Verbose 为整数项,用于控制冗余日志的输出级别,其中:
 0 为关闭冗余日志,仅输出关键性错误和异常
 1 基本冗余,输出一般请求等
 2 较多冗余,输出部分连接状态和非关键异常等
 3-5 用于调试,输出大量内部状态和通信细节

默认日志仅输出在标准输出和标准错误上,如有持久化日志需要,使用--logdir/-ld命令参数,指定一个目录将写入日志文件。


server config
新建一用户配置文件:user.conf,内容如下:
user1:passwd1
user2:freeoa.net

生成server配置文件:deblocus -csc -o deblocus.d5s

生成用户使用的客户端配置文件:deblocus -ccc 207.x.y.z:9008 user2

注意:新版本的使用参数可能不一样,如上述两条指令可以改写为:
./deblocus csc -o deblocus.ini

./deblocus ccc -a SERVER_ADDRESS:PORT user1


同时会在终端下打印配置文件,大致如下:
# -----------------------------
# deblocus client configuration
# -----------------------------

Listen      :9009
Verbose     1

# client credential
-----BEGIN deblocus/CLIENT-CREDENTIAL-----
D5P: d5://user2:20121026@207.x.y.z:9008#AES128CTR
Provider: my-freeoa-serv

MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAw/IZOcZRdvr8KRANBiPD
sc+NcdNaRnEc2DwsxaQC3AuYvwQ+PLsV9su4BS0B7MykJRkx/b/CIJ0YdILhwzgC
Cue2+nmHAv8aWsohkh1dgHSDv1emsxlSYeOmQyBX956TfznhPSt0nUn7fH+7c+uc
OVZHVl9azOe5uhTn3TECw/4dzbFTde+BPfzoijijJs1fEvLT8wxZ6Xq5qVmsL2mN
5R+TwMsni1kmnPcpWwBe5TI1dHncjUm2c6rCdxUgeBixjNvW5906/SW9Qs1y5Zo/
QOWeiddtFgehoCvzlfr2OMbjNdejEF9r5nJRHifwA8BXysj8OpgvZN+oPqOpOOiU
iQIDAQAB
-----END deblocus/CLIENT-CREDENTIAL-----

将上述内容保存为:deblocus.d5c,一会要做为客户端的配置文件。

接下在远程机器上开启服务端:deblocus -serv -v=1

它在启动和支行时,会打印出很多日志,建议将其放入到Tmux中。
deblocus.d5s 内容样式如下:

配置参数是否必须说明示例
Auth必须用户密码记录文件路径file://user.conf
file:///etc/deblocus/user.conf
file://d:/user.conf
Cipher必须加密方法AES128CFB
AES192CFB
AES256CFB
CHACHA12
CHACHA20
DenyDest可选拒绝代理对指定国家的网络的访问
填2位国家代码或OFF(不过滤)
OFF US CN HK
Listen必须监听地址和端口
(无地址则为所有地址监听)
:9008
127.0.0.1:9008
ServerName必须服务器名称freeoa-server
Verbose可选日志冗余级别1-5


client config
从github上下载对应的包,解压到某目录下,同时将上述的配置文件放于其中,在终端(cmd)下执行:deblocus -v=1
即可开启,注意客户端开启的侦听端口与服务器端不同,一般大1。连接成功后会有提示:
D:\programfiles>deblocus -v=1
I1028 16:56:37.834556    7476 bootContext.go:129] deblocus version: v0.12.2970-beta
I1028 16:56:37.838557    7476 bootContext.go:130] Socks5/Http is working at :9009
I1028 16:56:38.161598    7476 client.go:84] Login to the gateway my-freeoa-serv~207.x.y.z:9008 successfully
I1028 16:56:38.165098    7476 client.go:157] Tun hk-xd-serv-L52148 is established
I1028 16:56:38.200603    7476 client.go:157] Tun hk-xd-serv-L52149 is established

当有流量从本地端口经过时,终端上会有连接的技术信息提示。另外有一图形控制工具:deblocusMonitor,也是点击运行,有时感觉不怎么好用。


最新版本:0.13


项目主页:https://github.com/Lafeng/deblocus