PTProxy和obfs4proxy
最近对流量混淆方面的内容很感兴趣,有一个新工具可以独立调用obfs4proxy,据说obfs4proxy在穿越gfw时提供了更高的难度。具体可以查看作者的简单描述。
1,安装ptproxy
git clone https://github.com/gumblex/ptproxy.git
2,安装python3
yum search python
yum install python34
3,在go环境下编译获得obfs4proxy
export GOPATH=/file/path
go get git.torproject.org/pluggable-transports/obfs4.git/obfs4proxy
Copy `$GOPATH/bin/obfs4proxy` to a permanent location (Eg: `/usr/local/bin`)
4,修改server.json
注意以下#的注释在实际使用时都要去除
修改 “local”: “127.0.0.1:1080”, 本例为运行在本地的socks5代理
修改 “server”: “0.0.0.0:23456”, 最好将0.0.0.0 改为具体的ipv4 ip不然,好像只能监听ipv6
{
# client|server 客户端或服务器
“role”: “server”,
# 状态文件储存位置
“state”: “.”,
# 转发服务器的什么地址
# (例如 HTTP 代理服务器地址,不必对外监听)
# 或监听客户端的什么地址
“local”: “127.0.0.1:1080”,
# 监听服务器的什么地址(对外监听端口)
# 或连接服务器的地址
“server”: “0.0.0.0:23456”,
# 执行混淆插件的命令行(这里是 obfs4)
“ptexec”: “obfs4proxy -logLevel=ERROR -enableLogging=true”,
# 混淆插件名称
“ptname”: “obfs4”,
# [客户端] 混淆插件参数
“ptargs”: “cert=AAAAAAAAAAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA;iat-mode=0”,
# [可选][服务器] 混淆插件参数
# 格式
“ptserveropt”: “”,
# [可选][客户端] 混淆插件的前置代理
# 格式
}
5,运行服务器端
#/bin/sh
killall python3.4
python3.4 ptproxy.py -s a.json
以下为系统提示
python3.4: no process found
2015-10-01 10:31:41 Starting PT…
===== Server information =====
“server”: “XXX.XXX.XXX.XXX:23456”,
“ptname”: “obfs4”,
“ptargs”: “cert=WjxcZGx2R+o8aJVdJkzOPGW3wMQXX12LBA7BHYtbxqrq+wLsW4bd62+D+ZuHJtbb4oKgCg;iat-mode=0”,
==============================
2015-10-01 10:31:41 PT started successfully.
(隐藏发包的时间特征,服务端在第一次运行后修改 obfs4_state.json,并将 iat-mode 设为 1 或 2)。
6,windows下面python3客户端的安装
获得最新的python3版本 https://www.python.org/downloads/
注意对python不大熟悉,原先装有python2.7,调试半天没结果,后来卸载ok。
7,从tor安装目录获得obfs4proxy.exe,将它拷贝到ptproxy目录里
Tor Browser\Browser\TorBrowser\Tor\PluggableTransports
8,修改client.json
{
“role”: “client”,
“state”: “.”,
“local”: “127.0.0.1:1085”,
“server”: “XXX.XXX.XXX.XXX:23456”,
“ptexec”: “./obfs4proxy.exe -logLevel=ERROR -enableLogging=true”,
“ptname”: “obfs4”,
“ptargs”: “cert=WjxcZGx2R+o8aJVdJkzOPGW3wMQXX12LBA7BHYtbxqrq+wLsW4bd62+D+ZuHJtbb4oKgCg;iat-mode=1”,
“ptserveropt”: “”,
“ptproxy”: “”
}
注意iat-mode=1 处值要跟服务器端一致。
9,加载客户端
taskkill /f /im python.exe
taskkill /f /im obfs4proxy.exe
%localappdata%\Programs\Python\Python35\python.exe ptproxy.py -c example.json
其它说明
今天在安装好obfsproxy obfs4proxy后并没有特别大的惊喜。总体速度赶不上obfuscated-openssh。当然影响因素比较多,本身廉价vps速度就不怎么样,而且由于obfs系列混淆的是tcp连接,还依赖一个服务像socks5代理服务端,如果socks5代理软件性能就不怎么样就也会有相应的影响。
参考文档
独立使用 Tor 的流量混淆插件
https://gumble.tk/
obfs4 – The obfourscator
https://gitweb.torproject.org/pluggable-transports/obfs4.git/tree/README.md
using in windows
https://github.com/gumblex/ptproxy/issues/2
* 2015年10月01日星期四
– 生成文档