先,我所**的vps是基于OpenVZ类型,无法配置标准的VPN(无测试过),部分**可能无法支持,但OpenVZ支持pptp和openVPN
请登录OPENVPN官网查阅最新资料<http://openvpn.net/>

ok!在安装之前请**一下你**的vps是否开启了tun/tap的支持,burst vps默认是不开启tun/tap的,可以使用cat /dev/net/tun 进行检查

如果是没有权限的话可以发个ticket要求客服为你开启tun/tap

出现File descriptor in bad state说明tun/tap已经开启,可以开始进行openVPN的安装配置
我的vps安装的系统为CentOS release 5.5 (Final),下面一系列安装和配置都在此vps上进行,根据 <OpenVPN服务器配置(转载)>配置
一.服务端安装
现在开始在vps上安装和配置openVPN,需要的有下列的软件 gcc g++ [gcc g++为系统需要的编译工具] lzo库 [Lzo库的功能是对虚拟链路进行压缩] openssl [囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议] openvpn
1.安装编译工具gcc g++
# yum install gcc # yum install gcc-c++
2.安装lzo库
# cd /home/download/ # wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.03.tar.gz # tar -xvzf lzo-2.03.tar.gz # cd lzo-2.03 # ./configure -prefix=/usr/local/lzo && make && make install # vi /etc/ld.so.conf

编辑完ld.so.conf,执行
# ldconfig
使动态库生效
3.安装openssl
# cd /home/download/ # wget http://www.openssl.org/source/openssl-0.9.8.tar.gz # tar -xvzf openssl-0.9.8.tar.gz # ./config -prefix=/usr/local/openssl && make && make install
4.安装openvpn
# cd /home/download/ # wget http://www.openvpn.net/release/openvpn-2.0.9.tar.gz # tar -xvzf openvpn-2.0.9.tar.gz # cd openvpn-2.0.9 # ./configure -prefix=/usr/local/openvpn && make && make install
二.配置
1.创建配置环境
# mkdir /etc/openvpn # cp -R /home/download/openvpn-2.0.9/easy-rsa/ /etc/openvpn # cd /etc/openvpn/easy-rsa/2.0/ # ls total 112 -rwxr-xr-x 1 root root 121 Oct 26 03:14 build-ca -rwxr-xr-x 1 root root 354 Oct 26 03:14 build-dh -rwxr-xr-x 1 root root 190 Oct 26 03:14 build-inter -rwxr-xr-x 1 root root 165 Oct 26 03:14 build-key -rwxr-xr-x 1 root root 159 Oct 26 03:14 build-key-pass -rwxr-xr-x 1 root root 251 Oct 26 03:14 build-key-pkcs12 -rwxr-xr-x 1 root root 270 Oct 26 03:14 build-key-server -rwxr-xr-x 1 root root 215 Oct 26 03:14 build-req -rwxr-xr-x 1 root root 160 Oct 26 03:14 build-req-pass -rwxr-xr-x 1 root root 430 Oct 26 03:14 clean-all -rwxr-xr-x 1 root root 1459 Oct 26 03:14 inherit-inter -rwxr-xr-x 1 root root 297 Oct 26 03:14 list-crl -rw-r--r-- 1 root root 422 Oct 26 03:14 Makefile -rwxr-xr-x 1 root root 7768 Oct 26 03:14 openssl-0.9.6.cnf -rwxr-xr-x 1 root root 8230 Oct 26 03:14 openssl.cnf -rwxr-xr-x 1 root root 12068 Oct 26 03:14 pkitool -rw-r--r-- 1 root root 8864 Oct 26 03:14 README -rwxr-xr-x 1 root root 894 Oct 26 03:14 revoke-full -rwxr-xr-x 1 root root 180 Oct 26 03:14 sign-req -rwxr-xr-x 1 root root 1602 Oct 26 03:14 vars -rwxr-xr-x 1 root root 190 Oct 26 03:14 whichopensslcnf
结果是程序以及脚本,这个简要的说明一下
vars 脚本,是用来创建环境变量,设置所需要的变量的脚本 clean-all 脚本,是创建生成CA证书及密钥 文件所需要的文件和目录 build-ca 脚本,生成CA证书(交互) build-dh 脚本,生成Diffie-Hellman文件(交互) build-key-server 脚本,生成服务器端密钥(交互) build-key 脚本,生成客户端密钥(交互) pkitool 脚本,直接使用vars的环境变量设置直接生成证书(非交互)
2.生成CA证书及密钥
# cd /etc/openvpn/easy-rsa/2.0/ # ./vars NOTE: If you run ./clean-all, I will be doing a rm -rf on /etc/openvpn/easy-rsa/2.0/keys
注:如果你执行了./clean-all,系统将删除/etc/openvpn/easy-rsa/2.0/keys下的文件
修改vars文件 # vi vars
export KEY_COUNTRY="CN" export KEY_PROVINCE="GZ" export KEY_CITY="guangzhou" export KEY_ORG="NCS" export KEY_EMAIL="dongbule@163.com"
# ./vars
3.初始化keys文件夹
# ./clean-all #[注:删除/etc/openvpn/easy-rsa/2.0/keys下的文件] # ./build-ca #[注:生成一个a 1024 bit RSA的密钥,writing new private key to 'ca.key']

一路按回车就可以
# cd keys # ls ca.crt ca.key index.txt serial
可以看到生成的ca.crt ca.key文件
4.生成Diffie-Hellman文件
# cd .. # ./build-dh #[注:Generating DH parameters, 1024 bit long safe prime] # ls keys ca.crt ca.key dh1024.pem index.txt serial
注:可以看到生成了1024为的Diffie-Hellman文件
5.生成服务器使用的VPN server ca证书
# ./build-key-server chenyz #[注:其中chenyz是CA证书的一个名字]

一路回车,Sign the certificate? [y/n]:y 选择y
然后把刚才生成的CA证书和密钥copy到/etc/openvpn/下
# cd keys # cp ca.crt ca.key chenyz.crt chenyz.key dh1024.pem /etc/openvpn/
6.生成客户端CA证书及密钥
# ./build-key client-chenyz 一路回车,Sign the certificate? [y/n]:y 选择y
在keys目录下生成了client-chenyz.crt client-chenyz.csr client-chenyz.key三个客户端证书 并且将ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key 五个文件打包,以便客户端vpn
使用
# cd keys # mkdir userkey # cp ca.crt ca.key client-chenyz.crt client-chenyz.csr client-chenyz.key userkey/ # tar -zcvf userkey.tar.gz userkey/ userkey/ userkey/ca.crt userkey/client-chenyz.csr userkey/ca.key userkey/client-chenyz.key userkey/client-chenyz.crt
# sz userkey.tar.gz Starting zmodem transfer. Press Ctrl+C to cancel. Transferring userkey.tar.gz 100% 4 KB 4 KB/s 00:00:01 0 Errors
使用sz将其下载到windows客户端
7.openvpn配置文件
# cp /home/download/openvpn-2.0.9/sample-config-files/server.conf /etc/openvpn/openvpn.conf 将vpenvpn的原始样例文件复制到/etc/openvpn下,并改名为openvpn.conf,我们将在样例文件上进行修改
 使用的端口,默认1194
 使用的协议,默认使用UDP,如果使用HTTP proxy,必须使用TCP协议
 ca:使用build-ca生成的,用于验证客户是证书是否合法 cert:使用build-key-server,Server使用的证书对应的key,注意安全,防止被盗
 dh:生成的加密文件
 通过VPN Server往Client push路由,client通过pull指令获得Server push的所有选项并应用
 可以让客户端之间相互访问直接通过openvpn程序转发
 如果Client使用的CA的Common Name有重复了,或者说客户都使用相同的CA #和keys连接VPN,一定要打开这个选项,否则只允许一个人连接VPN
 对数据进行压缩
 定义用户
 openvpn状态log
 每次重新启动openvpn后保留原有的log信息,新信息追加到文件最后
8.启动OpenVPN
修改完毕后,即可以启动vpn,--daemon为后台守护进程模型启动 /usr/local/openvpn/sbin/openvpn --daemon --config /etc/openvpn/openvpn.conf

使用netstat -ln 查看1194openvpn的端口是否已经起来
二.win客户端的安装和配置
下载openvpn客户端 http://www.openvpn.net/release/openvpn-2.0.9-install.exe 安装完毕 把刚刚打包的userkey.tar.gz下载解压到 C:\Program Files\OpenVPN\config 目录下 将/home/download/openvpn-2.0.9/sample-config-files/client.conf 也下载到 C:\Program Files\OpenVPN\config 目录下
接着是配置这个client.conf客户端配置文件
主要修改有以下几个地方
dev tun proto tcp remote 你的vpn地址 1194 user nobody group nogroup ca ca.crt cert client-chenyz.crt key client-chenyz.key ##注:文件名和路径必须对应 comp-lzo redirect-gateway def1
确保与服务端的配置对应,然后将client.conf修改文件名为client.ovpn,右键点击client.ovpn,选择"Start OpenVPN on this config file"
 可以看到连接已经成功,并且创建了 [本地连接 6] 一条新的链路


或者你也可以打开C:\Program Files\OpenVPN\bin\openvpn-gui-1.0.3.exe进行连接,双击后会在任务栏里有个小连接图标,变成绿色的话就表明你连接成功
openvpn的参数配置,感觉不算很多,也比较容易理解,中文的资料也很齐全,大概这个东西在国内还是广泛应用(翻墙^_^)
如果只是简单的应用,配置倒真的很简单,不过如果真的是要用起来,网段设置和访问控制各种问题真的不少,入是否配置dhcp,是否分配dns,vpn如何和内网通讯,很多很多,因为我只是拿来做代理这里就不细说了
----------------------------------------
by 陈于喆 QQ:34174409 Mail: dongbule@163.com
来源:http://www.blogjava.net/dongbule/archive/2010/11/01/336714.html
|