当前位置: > 虚拟化 Virtualization > OpenVZ >

OpenVZ VPS 下 CentOS 5 安装 OpenVPN2.3 详细教程

时间:2017-05-28 15:09来源:linux.it.net.cn 作者:IT

基于各种教程,加上自己经验写成。

在DS的VPS上成功,前提是发了ticket让他们开模块。

 

第一步:检查 OpenVPN 所需环境

1.检测虚拟网卡(TUN/TAP)支持

 

 
1
cat /dev/net/tun

 

如果返回信息为:

 
 
1
cat: /dev/net/tun: File descriptor in bad state

说明正常

2.检测iptables_nat模块

 
 
1
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE

 

 

 
如果返回信息为:
 
 
1
iptables: Unknown error 4294967295

说明正常

 

 

[important]说明:如果上面两步,返回信息有一个不正常,那么你需要发个ticket让客服帮忙开通。因为没有这两项支持OpenVZ主机将无法顺利安装 OpenVPN !Directspace的VPS默认不开通。[/important]

 

 

第二步:安装 OpenVPN

环境准备好之后,我们正式开始安装 OpenVPN 了。这里使用的是 yum 来进行安装。

1.默认情况下 CentOS 的 yum 源没有 OpenVPN 的,先安装 EPEL 这个东西(代码如下)

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

 

 

2.成功后 yum 源里面就有 OpenVPN 了,直接使用命令安装

 
 
1
yum install openvpn

说明:这里就体现了 yum 安装的好处,比如 OpenVPN 需要 lzo 支持,安装的时候会检测系统,没有的组件会自动安装进去。

 

3.安装easy-rsa

由于最新的OpenVPN不自带easy-rsa,需要手工安装。(所以不用什么搜索了,能找得到就见鬼了)

 
 
1
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip

解压备用。

 

第三步:配置 OpenVPN

1.把easy-rsa这个文件夹移出来

 
 
1
cp -R (你扔在哪就写哪)/openvpn/easy-rsa /etc/openvpn/

 

 2.进入然后/etc/openvpn/easy-rsa/2.0目录,用vi vars来编辑环境变量。

 
 
 
1
2
cd /etc/openvpn/easy-rsa/2.0
vi vars

根据实际情况修改,保存。这里涉及到编辑器vi的用法,如果有机会我会整理一篇有关的教程。

 

1
2
3
4
5
export KEY_COUNTRY=”CA”
export KEY_PROVINCE=”ON”
export KEY_CITY=”Toronto”
export KEY_ORG=”ACICFG Tech Team”
export KEY_EMAIL=”cdc@c*******.com”

(哦,我就直接上WinSCP了,偷个懒。)

 

3.更改文件夹内文件属性

这些文件都不带执行属性,直接上去执行肯定Access Denied。

改成777吧。

(哦,又是WinSCP。。。)

4.保存后把. vars设置生效。

 
 
1
2
source ./vars
./clean-all

 

 

第四步:生成证书

1.创建证书颁发机构(系统出现提示操作时,直接全部回车)

 
 
 
1
./build-ca server

 

 2.创建CA之后来生成服务器证书(系统出现提示操作时,前面直接全部回车 最后2个按y)

 
 
1
./build-key-server server

 

 

3.服务器证书生成完了,我们来生成客户端证书,理论上每个OpenVPN用户都有独立的证书。(系统出现提示操作时,前面直接全部回车 最后2个按y)

 
 
1
./build-key vpn1

说明:这里的vpn1是客户端名称,如果你再生成第二个随便换成别的名字就可以如:./build-key vpn2)

 

4.最后生成Diffie Hellman参数,这个需要一小点时间

 

1
./build-dh

 

第五步:设置OpenVPN参数

1.新建 server.conf

 
 
1
vi /etc/openvpn/server.conf

(再次WinSCP解决)

 

2.放入如下内容:

(port 443 是监听端口 proto udp 可以是 udp 或 tcp  推荐使用 udp)

 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
port 443 #这个端口一般不敢封,还可以改成22等
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″ #设个DNS吧
push “dhcp-option DNS 8.8.4.4″
client-to-client #允许客户互相访问
keepalive 10 120
comp-lzo
persist-key
persist-tun
cipher AES-256-CBC  #开个最强加密
verb 3

 

 

第六步:启用 ipv4 转发

1.编辑/etc/sysctl.conf

vi /etc/sysctl.conf

2.找到net.ipv4.ip_forward = 0改成net.ipv4.ip_forward = 1保存

3.让更改生效

sysctl -p

说明:如果此时出现错误 error: “Operation not permitted” setting key “net.ipv4.tcp_syncookies” ,就编辑 /etc/sysctl.conf,注释掉 net.ipv4.tcp_syncookies 那一行

[notice]OVZ没法修改这些东西。不管它们了,反正不影响用。[/notice]

4.配置 iptables

 
 
 
 
 
1
2
3
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j SNAT –to-source 你的服务器IP地址
/etc/init.d/iptables save
/etc/init.d/iptables restart

 

 

第七步:启动 OpenVPN

1.启动 OpenVPN

service openvpn start

2.检查 OpenVPN

 
 
 
 
 
1
netstat -anup | grep 443

如出现如下字样表示成功,OpenVPN 已经打开

 

 
 
 
 
 
1
2
udp        0      0 0.0.0.0:443                 0.0.0.0:*
8179/openvpn

 

 3.设置 OpenVPN 开机启动

 
 
 
 
 
1
chkconfig openvpn on

 

 

第八步:OpenVPN 客户端

1.下载客户端:

http://openvpn.net/index.php/open-source/downloads.html

被墙了,各位各显神通吧。(屁话,搭建OpenVPN不就是为了翻墙么。。。Catch 22, 呵呵)

2.使用 SFTP 软件把客户端所需文件下载到本地

服务器路径为:/etc/openvpn/easy-rsa/2.0/keys 中5个文件的:

vpn1.crt
vpn1.csr
vpn1.key
ca.crt
ca.key

将上述5个文件下载到 C:\Program Files\OpenVPN\config(总之是你安装目录了)

3、上面那个文件夹下,新建 vpn1.ovpn,输入以下内容

 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
client
dev tun
proto udp
remote 服务器IP地址 443
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert vpn1.crt
key vpn1.key
ns-cert-type server
comp-lzo
cipher AES-256-CBC
verb 3

 

 

第九步:恭喜你大功告成

1.在开始菜单里面找到OpenVPN GUI并运行,Vista和Win7下需要管理员身份运行。点Connect后等一下,出现本地连接2,搞定!

[warning]千万注意,需要Administrator权限![/warning]

2.在服务器上你可以用 service openvpn start | stop | restart 来控制

3.另外在此推荐一个自动区分国内国外线路的项目 chnroutes ,不但能够加快国内网站的访问速度,还能节省 VPN 的流量,一举两得哦亲~

(责任编辑:IT)
------分隔线----------------------------