CentOS-5用OpenVZ方式搭建VPN通道

最近租了个VPS,Host1Plus,0.5 Core 256MB 内存 20GB 磁盘 500GB,2美元一个月,机房在芝加哥,预装centos5系统.想尝试一下在这个VPS搭建VPN.
搭建方式有OpenVPN,PPTP,SSH
OpenVPN比PPTP好伺候,能装在基于OpenVZ虚拟化技术的VPS(PPTP只能装在基于Xen的VPS,但大多数VPS因为成本原因是OpenVZ的)
这里采用OpenVPN方式搭建。

准备工作:下载Xshell客户端,连网状态(ChinaNet等公共场合的wifi无效)

一、OpenVPN需要tun和iptables_nat模块支持,所以先检查你的VPS支持不支持。


SSH登陆VPS后输入
cat /dev/net/tun
若返回信息为:cat: /dev/net/tun: File descriptor in bad state 说明tun/tap已经可以使用;
如果返回:cat: /dev/net/tun: No such device 或其他则说明tun/tap没有被正确配置,发TK联系客服申请开通tun/tap。

然后检查iptables_nat模块(如果还没有安装iptables,先安装)

yum install iptables #如已安装跳过

接着请输入:
iptables -t nat -A POSTROUTING -s 10.168.0.0/16 -j SNAT –to-source 11.22.33.44
(11.22.33.44是你VPS的IP)

然后用

iptables -t nat -L
查看iptables转发状态,如果显示以下类似的结果则说明转发成功:
target prot opt source destination
SNAT all – 10.168.0.0/16 anywhere to:11.22.33.44

二、tun和iptables_nat模块检测通过后,正式进入安装阶段:


默认情况下CentOS的yum源是没有OpenVPN的,安装EPEL这个东西成功后,yum源里面就有OpenVPN了。
5.x版系统安装EPEL:

rpm -Uvh http://dl.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm

yum -y install openvpn
对了,在所有步骤之前(就是刚登陆进来时),最好先更新升级下系统,这样可以自动分析当前系统的安装环境并根据具体命令网络升级安装所需组件,更便于之后组件的安装。
yum -y update

三、安装好后,先使用easy-rsa生成服务端证书:


默认OpenVPN的easy-rsa文档会在/usr/share/doc/openvpn/examples/easy-rsa/,如果不在的话请先检查是否安装成功然后用locate或find命令查找该文档。
然后将该文档下所需的配置文件复制到/etc/openvpn/下面:

如果不存在则执行:
wget http://swupdate.openvpn.org/community/releases/easy-rsa-2.2.0_master.tar.gz
tar -zxvf easy-rsa-2.2.0_master.tar.gz
cp -R easy-rsa-2.2.0_master/easy-rsa/ /etc/openvpn/


1、生成CA证书:
cd /etc/openvpn/easy-rsa/2.0
source vars
./clean-all
./build-ca
期间会提示输入一些信息,直接回车默认即可。

2、生成服务器端证书和密钥:(server为服务端名字可以自定义)
./build-key-server server
期间也会提示输入一些信息,直接回车默认,选择[Y/n]的都选Y。

3、生成客户端证书和密钥:(client为客户端名字可以自定义,注意这里的客户端名字不能与上步的服务端名字相同)
./build-key client
期间也会提示输入一些信息,直接回车默认,选择[Y/n]的都选Y。
若要生成多个客户端的证书和密钥,将client改成另外的名字重复操作即可。所有生成的证书和密钥存都放在/etc/openvpn/easy-rsa/2.0/keys/下面。

4、生成Diffie Hellman参数:
./build-dh

四、配置OpenVPN服务器端文件

1、编辑/etc/openvpn/server.conf 文件,如果没有可以创建一个,加入下面的内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
local 11.22.33.44 #11.22.33.44为VPS的IP
port 8080 #端口,需要与客户端配置保持一致,并保证与其他软件无共用
proto udp #使用协议,需要与客户端配置保持一致
dev tun #也可以选择tap模式
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
ifconfig-pool-persist ipp.txt
server 10.168.1.0 255.255.255.0 #给客户的分配的局域网IP段,注意不要与客户端网段冲突!
push "redirect-gateway"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"
client-to-client
;duplicate-cn
keepalive 20 60
comp-lzo
max-clients 50
persist-key
persist-tun
status openvpn-status.log
log-append openvpn.log
verb 3
mute 20

3、修改/etc/sysctl.conf的内容为:

1
2
3
4
5
net.ipv4.ip_forward = 1
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

重新载入/etc/sysctl.conf使其生效,执行如下命令:

sysctl -p
至此VPS上的服务器端配置就全部完成了。
若想使其配置生效,则需重启OpenVPN服务

service openvpn restart –config /etc/openvpn/server.conf

五、安装配置OpenVPN客户端文件

1、下载安装客户端
Windwos用户推荐去openvpn.net选择合适的版本进行安装,安装中的选项全部按默认即可;Mac用户推荐使用tunnelblick。

2、下载之前在VPS上生成的客户端证书及密钥
证书和密钥存都在/etc/openvpn/easy-rsa/2.0/keys/里,可以使用winscp链接到VPS上下载,将ca.crt、client.crt、client.key这三个文件下载到OpenVPN客户端程序的config文件夹里,默认为:C:\Program Files\OpenVPN\config
yum install lrzsz
此时再使用sz命令下载

3、创建客户端配置文件
在C:\Program Files\OpenVPN\config 下面创建一个sunny.ovpn的文件,添加如下内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
client #这个client不是自定义名称 不能更改
dev tun #要与前面server.conf中的配置一致。
proto udp #要与前面server.conf中的配置一致。
remote 11.22.33.44 8080 #将11.22.33.44替换为你VPS的IP,端口与前面的server.conf中配置一致。
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt #具体名称以刚下载的为准
cert client.crt #具体名称以刚下载的为准
key client.key #具体名称以刚下载的为准
ns-cert-type server
redirect-gateway
keepalive 20 60
#tls-auth ta.key 1
comp-lzo
verb 3
mute 20
route-method exe
route-delay 2

六、运行OpenVPN客户端


运行OpenVPN GUI后,屏幕右下角的系统托盘区,会显示一个由两个红屏电脑组成的图标,右击它,选中菜单中添加的名为sunny的服务器,点击Connect,
过一会儿,OpenVPN图标变成绿色时VPN就表示链接成功了。就表示链接成功了~

参考原文:http://shit.name/openvpn-on-centos/

文章目录
  1. 1. 一、OpenVPN需要tun和iptables_nat模块支持,所以先检查你的VPS支持不支持。
  2. 2. 二、tun和iptables_nat模块检测通过后,正式进入安装阶段:
  3. 3. 三、安装好后,先使用easy-rsa生成服务端证书:
  4. 4. 四、配置OpenVPN服务器端文件
  5. 5. 五、安装配置OpenVPN客户端文件
  6. 6. 六、运行OpenVPN客户端