基于各种教程,加上自己经验写成。
在DS的VPS上成功,前提是发了ticket让他们开模块。
第一步:检查 OpenVPN 所需环境
1.检测虚拟网卡(TUN/TAP)支持
cat /dev/net/tun
如果返回信息为:
cat: /dev/net/tun: File descriptor in bad state
说明正常
2.检测iptables_nat模块
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o venet0 -j MASQUERADE
iptables: Unknown error 4294967295
说明正常
[important]说明:如果上面两步,返回信息有一个不正常,那么你需要发个ticket让客服帮忙开通。因为没有这两项支持OpenVZ主机将无法顺利安装 OpenVPN !Directspace的VPS默认不开通。[/important]
第二步:安装 OpenVPN
环境准备好之后,我们正式开始安装 OpenVPN 了。这里使用的是 yum 来进行安装。
1.默认情况下 CentOS 的 yum 源没有 OpenVPN 的,先安装 EPEL 这个东西(代码如下)
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 了,直接使用命令安装
yum install openvpn
说明:这里就体现了 yum 安装的好处,比如 OpenVPN 需要 lzo 支持,安装的时候会检测系统,没有的组件会自动安装进去。
3.安装easy-rsa
由于最新的OpenVPN不自带easy-rsa,需要手工安装。(所以不用什么搜索了,能找得到就见鬼了)
wget https://github.com/OpenVPN/easy-rsa/archive/master.zip
解压备用。
第三步:配置 OpenVPN
1.把easy-rsa这个文件夹移出来
cp -R (你扔在哪就写哪)/openvpn/easy-rsa /etc/openvpn/
2.进入然后/etc/openvpn/easy-rsa/2.0目录,用vi vars来编辑环境变量。
cd /etc/openvpn/easy-rsa/2.0 vi vars
根据实际情况修改,保存。这里涉及到编辑器vi的用法,如果有机会我会整理一篇有关的教程。
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设置生效。
source ./vars ./clean-all
第四步:生成证书
1.创建证书颁发机构(系统出现提示操作时,直接全部回车)
./build-ca server
2.创建CA之后来生成服务器证书(系统出现提示操作时,前面直接全部回车 最后2个按y)
./build-key-server server
3.服务器证书生成完了,我们来生成客户端证书,理论上每个OpenVPN用户都有独立的证书。(系统出现提示操作时,前面直接全部回车 最后2个按y)
./build-key vpn1
说明:这里的vpn1是客户端名称,如果你再生成第二个随便换成别的名字就可以如:./build-key vpn2)
4.最后生成Diffie Hellman参数,这个需要一小点时间
./build-dh
第五步:设置OpenVPN参数
1.新建 server.conf
vi /etc/openvpn/server.conf
(再次WinSCP解决)
2.放入如下内容:
(port 443 是监听端口 proto udp 可以是 udp 或 tcp 推荐使用 udp)
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
2.找到net.ipv4.ip_forward = 0改成net.ipv4.ip_forward = 1保存
3.让更改生效
说明:如果此时出现错误 error: “Operation not permitted” setting key “net.ipv4.tcp_syncookies” ,就编辑 /etc/sysctl.conf,注释掉 net.ipv4.tcp_syncookies 那一行
[notice]OVZ没法修改这些东西。不管它们了,反正不影响用。[/notice]
4.配置 iptables
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
2.检查 OpenVPN
netstat -anup | grep 443
如出现如下字样表示成功,OpenVPN 已经打开
udp 0 0 0.0.0.0:443 0.0.0.0:* 8179/openvpn
3.设置 OpenVPN 开机启动
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.csr
vpn1.key
ca.crt
ca.key
将上述5个文件下载到 C:\Program Files\OpenVPN\config(总之是你安装目录了)
3、上面那个文件夹下,新建 vpn1.ovpn,输入以下内容
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]