打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CentOS平台OpenVPN(UDP53端口)架设 | 小米の网志

据说,53 DUP端口的VPN可以突破CMZZ和CHINANET的验证而免费上网,所以研究起OpenVPN,搭建一个特殊的VPN。 

为什么说这个VPN特殊呢,特殊在于是OpenVPN,OpenVPN可以在openvz的VPS上跑,比起PPTP,PPTP只能在xen的架构跑,而大多数VPS是基于OpenVPN的。 

另外,VPN走的是DNS端口,这个的好处就是如果学校有计费系统,或者周围有电信,移动的WIFI热点,多数情况下是可以越过计费系统直接上网的。 

环境声明: 

下文,输入的命令以         标注。 

VPS内核:Linux vps.lolis.info 2.6.18-164.15.1.el5.028stab068.9 #1 SMP Tue Mar 30
18:07:38 MSD 2010 i686 i686 i386 GNU/Linux 

Tun的支持。 

Tun的支持请在VPS面板启用,比如我的是enable tun/tap 

Ssh权限(root) 

启用Tun后,在ssh中输入: 

cat /dev/net/tun 

反馈: 

cat: /dev/net/tun: File descriptor in bad state 则说明安装正常。 

53端口: 

输入: 

service named stop以使53端口不被DNS占用。 

**存在争议的iptables_nat模块 

Black-xstar(下文简称star)文中表示: 

另外如果你需要连上OpenVPN后能访问互联网,还需要iptables_nat模块支持,用这个命令检测:iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o
venet0 -j MASQUERADE
 

如果返回信息为:iptables: Unknown error 4294967295 说明正常,否则同样需要发个ticket让VPS公司帮忙开通。 

但是,我的VPS输入上述命令没有回显,与文中提到的反馈不同,但是照常可以试用。 

请保证有充足的带宽以及内存。 

VPN部署: 

首先登入ssh,在ssh中输入: 

rpm-Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm 

成功后就可以用yum直接安装了。 

以下为shell记录 

[root@vps ~]# yum -y install
openvpn
 

Loaded plugins: fastestmirror 

Loading mirror speeds from cached hostfile 

 * epel: serverbeach1.fedoraproject.org 

 * base: mirror.trouble-free.net 

 * updates: mirror.trouble-free.net 

 * addons: mirror.cisp.com 

 * extras: mirror.atlanticmetro.net 

epel                       
                                                                                 |
3.4 kB     00:00     

ebdb729a3d0909032214d70acf18e2b36ab08a21-primary.sqlite.bz2                                                 
| 2.5 MB     00:00     

Setting up Install Process 

Parsing package install arguments 

Resolving Dependencies 

–> Running transaction check 

—> Package openvpn.i386 0:2.1.1-2.el5 set to be updated 

–> Processing Dependency: liblzo2.so.2 for package: openvpn 

–> Processing Dependency: libpkcs11-helper.so.1 for package: openvpn 

–> Running transaction check 

—> Package lzo.i386 0:2.02-2.el5.1 set to be updated 

—> Package pkcs11-helper.i386 0:1.07-2.el5.1 set to be updated 

–> Finished Dependency Resolution 

Dependencies Resolved 

==================================================================================================================================== 

 Package                            
Arch                      
Version                           
Repository             
    Size 

==================================================================================================================================== 

Installing: 

 openvpn                            
i386                      
2.1.1-2.el5                       
epel                      
371 k 

Installing for dependencies: 

 lzo                                
i386                      
2.02-2.el5.1                      
epel                       
63 k 

 pkcs11-helper                      
i386                      
1.07-2.el5.1                      
epel                       
51 k 

Transaction Summary 

==================================================================================================================================== 

Install      3
Package(s)         

Update       0
Package(s)         

Remove       0
Package(s)         

Total download size: 485 k 

Downloading Packages: 

(1/3):
pkcs11-helper-1.07-2.el5.1.i386.rpm                                                                  
|  51 kB     00:00     

(2/3):
lzo-2.02-2.el5.1.i386.rpm                                                                            
|  63 kB     00:00     

(3/3):
openvpn-2.1.1-2.el5.i386.rpm                                                                         
| 371 kB     00:00     

———————————————————————————————————————————— 

Total                                                                                              
2.1 MB/s | 485 kB     00:00     

warning: rpmts_HdrFromFdno: Header V3 DSA signature: NOKEY, key ID
217521f6 

Importing GPG key 0x217521F6 “Fedora EPEL <epel@fedoraproject.org>”
from /etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL 

Running rpm_check_debug 

Running Transaction Test 

Finished Transaction Test 

Transaction Test Succeeded 

Running Transaction 

  Installing     :
pkcs11-helper                                    
[1/3] 

  Installing     :
lzo                                              
[2/3] 

  Installing     :
openvpn                                          
[3/3] 

Installed: openvpn.i386 0:2.1.1-2.el5 

Dependency Installed: lzo.i386 0:2.02-2.el5.1 pkcs11-helper.i386
0:1.07-2.el5.1 

Complete! 

完毕后,执行: 

locate easy-rsa 

回显: 

locate: can not open `XXXXXXXXX’: No such file or directory 

将XXXXXXXXXX中内容复制,执行: 

Cd  XXXXXXXXXXX 

找出来了原来在这里:/usr/share/openvpn/easy-rsa 大家应该都是一样的。

我们把easy-rsa这个文件夹移出来,用命令:cp -R /usr/share/openvpn/easy-rsa /etc/openvpn/

比如/etc/openvpn/easy-rsa/2.0,则运行:   cd /etc/openvpn/easy-rsa/2.0 

以下为shell记录: 

[root@vps easy-rsa]# cd
/etc/openvpn/easy-rsa/2.0
 

[root@vps 2.0]# vi vars 

然后,我们用vi打开了vars文件,首先输入I  使之成为insert模式 

然后操作方向键,调到文件末尾,按照实际修改 

export KEY_COUNTRY=”CN”  

export KEY_PROVINCE=”GD”  

export KEY_CITY=”GZ”  

export KEY_ORG=”Lolita Ltd.”
 

export
KEY_EMAIL=”loli@lolis.info”
 

修改完毕后,按下esc返回查看模式,按下shift+; 输入:   并在:后输入wq   回车。 

反馈: 

 ”vars” 68L, 1664C written 

使设置生效:输入. Vars 

Shell: 

[root@vps 2.0]# . vars 

NOTE: If you run ./clean-all, I will be doing a rm -rf on
/etc/openvpn/easy-rsa/2.0/keys 

首先创建CA证书

./build-ca

接着创建服务器证书: 

./build-key-server server 

一路回车,直到Sign the certificate? [y/n]:   输入y  回车 

1 out of 1 certificate requests certified, commit?  输入y  回车 

建立客户端证书: 

./build-key user 

过程同服务器,也是直到 

Sign the certificate? [y/n]:   输入y  回车 

1 out of 1 certificate requests certified, commit?  输入y  回车 

到此就建立了一个客户端了,如果需要多客户端,请更换user到其他用户名即可。 

然后执行: 

./build-dh 

Shell: 

[root@vps 2.0]# ./build-dh 

Generating DH parameters, 1024 bit long safe prime, generator 2 

This is going to take a long time 

………………………………………………+.+……………………………………………+…………..+………………………………………………………..+……………………………………………………………………………………………………………+……………………………………………………………………………………………………………………………………………………………..+………………………………………………..+…………………………………………………………………………………………………+………………….+………………………………………………..+………….+……………………………………………………………………………………………………………………………..++*++*++* 

[root@vps 2.0]# 

运行winSCP(请自行下载),将/etc/openvpn/2.0/keys中的文件下载到本地。 

输入:  cd
/etc/openvpn/
   返回到OpenVPN文件夹,输入vi server.conf 
创建配置文件。输入i到可写模式,将编写好的配置文件写入。以下是我的配置文件,请按需修改。 

port 53
proto udp
dev tun
ca
/etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert
/etc/openvpn/easy-rsa/2.0/keys/server.crt
key
/etc/openvpn/easy-rsa/2.0/keys/server.key
dh
/etc/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
 

push “redirect-gateway def1″
push “dhcp-option DNS 8.8.8.8″
push
“dhcp-option DNS 8.8.4.4″
client-to-client
keepalive 10 120
comp-lzo

persist-key
persist-tun
verb 3
crl-verify
/etc/openvpn/easy-rsa/2.0/keys/crl.pem

然后保存。以上配置均可在winscp修改。 

返回ssh,接着输入vi /etc/sysctl.conf 

老规矩,找到net.ipv4.ip_forward 将后面的0改成1  保存。 

防火墙配置: 

输入iptables -t nat -A POSTROUTING -s
10.8.0.0/24 -j SNAT –to-source YOUR-IP
 

将your ip改成你服务器的IP即可。 

执行: 

/etc/init.d/iptables save 

/etc/init.d/iptables restart 

/usr/sbin/openvpn –config
/etc/openvpn/server.conf &
 

没有报错,在本地连接一遍,能成功即可(下文介绍如何配置客户端。) 

添加自启动: 

vi /etc/rc.local 

最后加上   /usr/sbin/openvpn
–config /etc/openvpn/server.conf &
 

保存,重启服务器。 

到此服务器端配置完毕。 

客户端配置: 

安装OpenVPN,win安装很简单,不再累述。 

首先回头看看下载回来的KEY文件夹,挑出ca.crt,user.key,user.crt 

找到C:\Program
Files\OpenVPN\config
(如果默认的话) 

把以上3个文件放进去,并创建user.ovpn文件。 

以下是我的配置文件,请按需修改: 

client  

dev tun  

proto udp 

remote “SERVER-IP” 53 

resolv-retry infinite  

nobind  

persist-key  

persist-tun  

ca ca.crt  

cert user.crt  

key user.key  

ns-cert-type server  

comp-lzo  

verb 3 

route-method exe 

route-delay 2 

保存。 

这里不同于xstar的配置,区别是多了后面两行,因为我发现少了这两行win7和vista不能使用。如果xp用户发现有问题,不妨注释掉这两行。 

到此,配置完成。 

欢迎提出意见和建议,共同交流。


现在有很多wifi都采用在线认证,就是类似学校wifi的那种,随便输个网站,然后跳出一个web认证的页面,输入用户名密码。移动 电信 联通的wifi也基本都是这种类型的。

在认证之前,客户机向外发送的任何请求都会被拦截,http请求的话就跳转到认证网页。但是唯独有个特殊的端口,在认证前默认是放行的。。。就是UPD 53端口。这个是dns的默认端口。我那学校的wifi试过,在不认证的时候,nslookup能返回正常的值,也就是说这个端口默认是开放的。

利用这个开放的端口和udp协议的tunnel软件,应该就能实现绕过那个认证系统。

所以,我这些想,用OpenVPN的UPD模式,开设一个vpn,然后把端口设为53,客户端是不是就可以绕过这些wifi的认证,连接到vpn,实现突破。

不过貌似要解决这种突破也好办,UDP53 端口只允许dns请求包通过,就GG了。




☆─────────────────────────────────────☆
  
 yulei666 (鱼雷导弹No.1) 于  (Fri Mar 26 17:28:30 2010)  提到:

在基于学校wifi的环境下已经测试成功
用的openvpn 采用UDP53端口
服务器端linux 连接学校有线网
客户端连接学校wifi 未验证,后面的图就知道了


服务器端配置

附件: QQ截图未命名.bmp (223062 字节)


客户端效果图
能ping通服务器端 samba没问题 图上那个电影就是samba在线播放的 ftp也没问题~
服务器端的NAT没搞定,如果搞定了就彻底突破了。。囧






此主题相关图片如下:openvpn3.jpg (44368 字节)

此主题相关图片如下:openvpn2.jpg (304591 字节)

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
关于53端口穿越实现CMCC、Chinanet免费上网的资料
centos 7部署openvpn easy-rsa 3.0部署方法
OpenVPN 安装配置资料总结和整理
在家远程控制(远程桌面)到公司的电脑
ubuntu apache2 ssl配置
OpenVPN服务搭建与管理
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服