在Ubuntu上搭建FTE服务器
来源:互联网 发布:软件接口设计工具 编辑:程序博客网 时间:2024/05/16 08:55
目录
- 目录
- 关于FTE
- 下载FTE
- OSX系统
- Ubuntu
- 测试
- FTE命令详解
- 1命令格式
- 2命令参数
- 开始搭建
- 客户端设置
- 服务器端设置
- 测试
- 客户端
关于FTE
FTE的全称是Format-Transforming Encryption,由Kevin P. Dyer于2003年在文章《Protocol misidentification made easy with format-transforming encryption》中提出。使用FTE可以将普通字符串转换成符合指定格式(如正则表达式)的字符串,这可以用于协议伪装,例如,通过将被审查的字符串(或协议如Tor、TLS)转换成HTTP协议,可以穿过防火墙。更多关于FTE的资料可以阅读英文文献《Protocol misidentification made easy with format-transforming encryption》或FTE的主页。同时在GitHub上也可以查看相关资料(https://github.com/kpdyer/fteproxy)。
下载FTE
FTE当前的最新版本是0.2.19,这里只列出OSX和Ubuntu下FTE的安装,FTE的源代码和其他版本的下载请参考FTE的下载主页
OSX系统
需要先安装homebrew,然后运行如下三个命令
brew update
brew install python gmp libyaml gcc
pip install fteproxy
Ubuntu
同样的,仅仅三个命令即可安装
sudo apt-get update
sudo apt-get install python-dev python-pip libgmp-dev build-essential
sudo pip install fteprox
测试
为了测试是否安装成功,需要运行如下命令
fteproxy –mode test
若显示如下,则说明安装成功
…
OK
如:
FTE命令详解
1、命令格式
fteproxy [选项]
2、命令参数
-h, –help 显示帮助文档
–version 显示版本号
–mode (client|server|test) 模式,默认是client
–stop 关闭fteproxy,默认不关闭
–upstream-format UPSTREAM_FORMA 指定上传流的格式,默认是manual-http-request
–downstream-format DOWNSTREAM_FORMAT 指定下传流的格式,默认是manual-http-response
–client_ip CLIENT_IP 客户端监听IP,默认是127.0.0.1
–client_port CLIENT_PORT 客户端监听端口,默认是8079
–server_ip SERVER_IP 服务器端监听IP,默认是127.0.0.1
–server_port SERVER_PORT 服务器端监听端口,默认是8080
–proxy_ip PROXY_IP 转发代理(socks)监听IP,默认是 127.0.0.1
–proxy_port PROXY_PORT 转发代理(socks)监听端口,默认是8081
–quiet 完全静默模式,不打印任何字符串,默认打印
–release RELEASE 使用的定义格式的文件名称,文件名格式为 YYYYMMDD,默认是20131224
–managed 针对Tor,使用插件模式,默认关闭
–key KEY 加密key,必须是64位16进制串,默认是FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF00000000000000000000000000000000
开始搭建
我们在两台Ubuntu上分别搭建服务器和客户端,两者ip分别为192.168.197.143(客户端)、192.168.197.144(服务器)。
客户端设置
在客户端安装好fteproxy后,运行如下命令
fteproxy --client_ip $CLIENT_IP --client_port $CLIENT_PORT --server_ip $SERVER_IP --server_port $SERVER_PORT --mode client
在该命令中,需要将如下几个值进行替换:
- $CLIENT_IP:指定本机客户端监听绑定的IP地址,需要替换为本机IP地址;
- $CLIENT_PORT:指定本机客户端监听绑定的端口,一般设置为8079即可;
- $SERVER_IP:指定fte服务器的IP地址;
- $SERVER_PORT:指定fte服务器监听的端口,一般为8080;
在我的搭建过程中,客户端命令如下:
fteproxy --client_ip 192.168.197.143 --client_port 8079 --server_ip 192.168.197.144 --server_port 8080 --mode client
结果如下:
运行如下命令可以查看本机端口开放情况,如下图中8079端口处于监听状态。
netstat -antp
服务器端设置
在服务器端安装好fteproxy后,运行如下命令:
fteproxy --server_ip $SERVER_IP --server_port $SERVER_PORT --proxy_ip $PROXY_IP --proxy_port $PROXY_PORT --mode server
在该命令中,需要将如下几个值进行替换:
1. $SERVER_IP:指定fte服务器的IP地址,为本机IP地址;
2. $SERVER_PORT:指定fte服务器监听的端口,一般为8080;
3. $PROXY_IP:指定转发代理监听绑定的IP地址,设置为127.0.0.1即可;
4. $PROXY_PORT:指定转发代理监听绑定的端口,一般设置为8081即可;
在我的搭建过程中,客户端命令如下:
fteproxy --server_ip 192.168.197.144 --server_port 8080 --proxy_ip 127.0.0.1 --proxy_port 8081 --mode server
结果如下:
运行如下命令可以查看本机端口开放情况,如下图中8080端口处于监听状态。
netstat -antp
此外,还需要开启端口转发:
ssh -D $PROXY_PORT [$username]@$PROXY_IP
同样的需要对 $PROXY_PORT $PROXY_PORT $usename进行替换。在我的搭建过程中,PROXY_PORT为8081,username为root,PROXY_IP为192.168.197.144,如下:
ssh -D 8081 root@192.168.197.144
同样运行如下命令查看本机端口开放情况,如下图中8081端口处于监听状态。
netstat -antp
测试
下面开始通过使用FTE来访问网页来测试FTE的使用
客户端
首先测试目标网页是否能够访问,首先确保安装curl(若已经安装的忽略此步骤。)
sudo apt-get install curl
随后使用curl访问目标网页
curl www.baidu.com
若访问成功,则会显示如下:
最后使用curl,测试FTE的使用
curl –socks $CLIENT_IP:$CLIENT_PORT www.baidu.com
我的测试过程中使用如下命令:
curl --socks 192.168.197.143:8079 www.baidu.com
若成功,会显示网页情况。使用wireshark抓到的数据包如下图所示:
由于使用的是未设置–upstream-format和–downstream-format参数,默认的manual-http-request,因此抓出来的包很像HTTP协议。
[1] FTE 主页https://fteproxy.org/
[2] FTE 下载页https://fteproxy.org/download
[3] KP Dyer, SE Coull, T Ristenpart 《Protocol misidentification made easy with format-transforming encryption》 http://dl.acm.org/citation.cfm?id=2516657
- 在Ubuntu上搭建FTE服务器
- 在ubuntu上搭建lamp服务器+wiki
- 在Ubuntu上搭建svn服务器
- 在虚拟机Ubuntu上搭建samba服务器
- 在 Ubuntu 上搭建 VPN 服务器
- 在Ubuntu 12.04 上 搭建 Git服务器
- 在ubuntu服务器上搭建svn服务
- 在Ubuntu上搭建svn服务器
- 在Ubuntu上搭建SVN服务器
- 在ubuntu上搭建svn服务器
- 在ubuntu上搭建GitLab本地服务器
- 在ubuntu上搭建FTP服务器
- 在Ubuntu上搭建redis服务器
- 在Ubuntu服务器上搭建LAMP环境.
- 在ubuntu上搭建lamp服务器+wiki
- 在Ubuntu上搭建ssh和samba服务器
- 在 Ubuntu 上搭建 git 仓库服务器 gitolite
- 在UBUNTU 10上搭建GIT服务器
- Hadoop RPC远程过程调用源码解析及实例
- iOS-Objective-C 学习笔记一:数据类型
- 因子分析
- [从头学数学] 第17节 找规律
- hdoj1999不可摸数
- 在Ubuntu上搭建FTE服务器
- 自己对YCSB性能测试工具使用
- 就是一个进度条——C程序设计进度条51%
- Hadoop RPC使用方法(1)
- RGB和HSV
- elasticsearch-sql插件
- Hadoop RPC类详解(2)
- Hadoop RPC类详解(3)
- 未名湖边的烦恼引起的递归问题探讨