VPS搭建OpenVPN小结

@neolee@YangBalu的协助下总算在OpenVZ的VPN上建起了openvpn服务,操作系统是CentOS 5 32bit。

在综合多人经验的基础上我采用了使用源码编译安装openvpn的方式,这是我记录下来的自动安装脚本:

[bash]
#!/bin/bash

curdir=$(pwd)

wget http://www.oberhumer.com/opensource/lzo/download/lzo-2.05.tar.gz
wget http://swupdate.openvpn.net/community/releases/openvpn-2.2.1.tar.gz

tar zxvf lzo-2.05.tar.gz
cd lzo-2.05
./configure
make && make install

cd ..
tar zxvf openvpn-2.2.1.tar.gz
cd openvpn-2.2.1
./configure –prefix=/usr/local/openvpn –with-lzo-headers=/usr/local/include –with-lzo-lib=/usr/local/lib –with-ssl-headers=/usr/include/openssl –with-ssl-lib=/usr/lib
make && make install

cp -R easy-rsa /usr/local/openvpn/

cd /usr/local/openvpn/easy-rsa/2.0
vim vars
. ./vars
./clean-all
echo Build-ca
./build-ca
echo Build server key
./build-key-server server
echo Build client key
./build-key client1
echo Build forTouch key
./build-key forTouch
echo Build Diffie Hellman
./build-dh

/usr/local/openvpn/sbin/openvpn –genkey –secret keys/ta.key

mkdir -p /var/log/openvpn/

sed -i ‘s/net.ipv4.ip_forward = 0/net.ipv4.ip_forward = 1/g’ /etc/sysctl.conf
sysctl -p

ln -s /usr/local/openvpn/sbin/openvpn /usr/bin/openvpn

cp $curdir/server.conf /usr/local/openvpn
echo “openvpn –config /usr/local/openvpn/server.conf &” >> /etc/rc.local
openvpn –config /usr/local/openvpn/server.conf &
[/bash]

其中在执行“. ./vars”之前可以先打开vars文件修改最后的几行EXPORT为自己的默认信息,这样在安装过程中一路回车即可,当然也可以什么不用改使用默认的设置。

这里我用到了server.conf,安装之前预先把它做好放到跟上面的安装脚本文件在同一目录下,安装过程会把它拷到/usr/local/openvpn目录下。

server.conf的有效脚本:
[text]
port 1194
proto udp
dev tun
ca /usr/local/openvpn/easy-rsa/2.0/keys/ca.crt
cert /usr/local/openvpn/easy-rsa/2.0/keys/server.crt
key /usr/local/openvpn/easy-rsa/2.0/keys/server.key
dh /usr/local/openvpn/easy-rsa/2.0/keys/dh1024.pem
server 192.168.89.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
tls-auth /usr/local/openvpn/easy-rsa/2.0/keys/ta.key 0
comp-lzo
max-clients 50
user nobody
group nobody
persist-key
persist-tun
status /var/log/openvpn/status.log 1
log /var/log/openvpn/openvpn.log
verb 3
mute 10
[/text]

然后就是配置Windows客户端,到openvpn网站下载最新版,写这个小结时的当前版本是http://swupdate.openvpn.net/community/releases/openvpn-2.2.1-install.exe(好象只能翻墙下载,可以先在VPS上用wget下载,然后通过winscp拉到本地)。

安装后把VPS上/usr/local/openvpn/easy-rsa/2.0/keys/目录下的ca.crt、ta.key以及给客户端建的证书client1.crt和client1.key下载到openvpn安装目录下的config子目录下,新建一个client1.ovpn文件,内容对应如下:
[text]
client
dev tun
proto udp
remote 11.22.33.44 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert client1.crt
key client1.key
tls-auth ta.key 1
ns-cert-type server
comp-lzo
verb 3
keepalive 10 120
route-method exe
route-delay 2
[/text]

把11.22.33.44换成自己VPS的IP或域名,然后就可以连接了。

iTouch上的openvpn参见这里,iTouch首先要越狱,然后在cyida里添加apt.weiphone.com源,安装威锋源里的GuizmOVPN软件,安装完重启好后运行GuizmOVPN,然后下载配置文件。

GuizmOVPN需要注册才可以长期使用,在上面的教程里找到这个注册码,实测有效:
email: webmaster@5uf.net
Serial:85578387

配置文件的制作方法:把Windows客户端config目录下的所有文件压缩成一个zip文件(注意不要带目录压缩,即压缩后双击打开zip文件应该看到的是config目录下同样的文件列表,而不是看到config之类的目录,格式一定要是zip,rar不行的),然后把zip文件放到任意可以通过浏览器访问下载到的地方,然后在CuizmOVPN里输入对应的地址下载,下载完连接即可。

我遇到的一个问题是OpenVPN断开后网络也就断掉无法上网了,解决办法是把wifi关掉再打开。

iptables的设置脚本参考上一篇“VPS搭建pptp VPN小结”,差别是端口和协议不一样:
[bash]
iptables -A INPUT -p udp –dport 1194 -j ACCEPT
[/bash]

@neolee的教程可供参考:CentOS OpenVZ VPS配置OpenVPN小记

Tags:

One Response to “VPS搭建OpenVPN小结”

  1. 老N说道:

    我来试试看touch用openvpn吧,前些天看GuizmOVPN这个软件貌似挺麻烦的。。。

Leave a Reply