曲径通幽论坛

 找回密码
 立即注册
搜索
查看: 4414|回复: 0
打印 上一主题 下一主题

[openvpn]利openVPN自带的http-proxy突破防火墙的封锁

[复制链接]

4917

主题

5879

帖子

3万

积分

GROAD

曲径通幽,安觅芳踪。

Rank: 6Rank: 6

积分
34382
跳转到指定楼层
楼主
发表于 2014-4-16 17:22:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
openVPN是差不多是大家用来做VPN服务器的首先,那openVPN如何突破防火墙的封锁咧,有两种解决方案,一是用openVPN自带的http-proxy,二是用HttpTunnel

一、利openVPN自带的http-proxy突破防火墙的封锁

OpenVPN本身可以使用http代理,也就是说,OpenVPN客户端不是直接和OpenVPN服务器连接,而是使用http代理进行连接。这个特性是OpenVPN的外围特性,不是其核心的,然而却能解决很多实际问题,它相当于隧道外面又套了一个隧道,不过这个外面的隧道并不是真实的隧道,因为它并没有封装,而仅仅是伪装了端口信息而已,然而不管怎么说,它还是使用http代理服务器的connect方法的。具体流程就是:

1.OpenVPN客户端连接http代理服务器(CONNECT方法);

2.http代理服务器连接OpenVPN服务器;

3.http代理服务器在OpenVPN客户端和OpenVPN服务器之间中转数据。

OpenVPN客户端 -->  http代理服务器  -->  OpenVPN服务器

http代理服务器和OpenVPN服务器可安装在同一台机器上

配置OpenVPN服务器(安装过程可见以前的博文):

cat /etc/openvpn/server.conf
port 9091     
proto tcp   #协议启用tcp  
dev tap  
ca ca.crt  
cert server.crt  
key server.key  
dh dh1024.pem  
server 10.9.0.0 255.255.255.0  
#ifconfig-pool-persist ipp.txt  
client-config-dir /etc/openvpn/ccd  
push "route 10.9.0.0 255.255.255.0"  
push "redirect-gateway def1 bypass-dhcp"  
push "dhcp-option DNS 8.8.8.8"  
keepalive 10 120  
comp-lzo  
user nobody  
group nobody  
persist-key  
persist-tun  
status status.log  
log openvpn.log  
verb 3


配置http代理服务器,这里就用squid(安装过程见以前博文)

cat /etc/squid/squid.conf
http_port 8080 #启用一般不会被封的端口  
access_log /var/log/squid/access.log squid  
auth_param basic program /usr/lib/squid/ncsa_auth /etc/squid/userpw   #用户名密码认证  
acl password proxy_auth REQUIRED  
http_access allow password  
acl all src 0.0.0.0/0.0.0.0  
http_access allow all  
coredump_dir /var/spool/squid  
header_access Via deny all  
header_access X-Forwarded-For deny all


OpenVPN客户端配置:
client  
dev tap0  
dev-node vpn    #tap网卡名称  
proto tcp  
remote 222.101.202.303 9091   
nobind  
persist-key  
persist-tun  
ca ca.crt  
cert client001.crt  
key client001.key  
ns-cert-type server  
comp-lzo  
verb 3  
http-proxy 222.101.202.303 8080 pw.txt  #pw.txt为squid的用户名和密码认证文件,用户名一行,密码一行  
http-proxy-retry


cat pw.txt
test             #squid认证用户名
test123       #squid认证密码
现在就开始用openVPN客户端去连接openVPN服务端,如果出现以下的提示信息,就说明通过http-proxy连接 openVPN 服务端成功了

Wed Dec 05 14:24:53 2012 Send to HTTP proxy: 'CONNECT 203.169.243.4:18181 HTTP/1.0'
Wed Dec 05 14:24:53 2012 Attempting Basic Proxy-Authorization
Wed Dec 05 14:24:55 2012 HTTP proxy returned: 'HTTP/1.0 200 Connection established'

转载出处http://kerry.blog.51cto.com/172631/1079338/
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|曲径通幽 ( 琼ICP备11001422号-1|公安备案:46900502000207 )

GMT+8, 2024-5-6 19:27 , Processed in 0.065249 second(s), 26 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表