正在加载
请稍等

菜单

红楼飞雪 梦

15526773247

文章

Home web服务器端开发 OpenVPN 安装、配置客户端和服务端,以及OpenVPN的使用 (Windows 平台)
Home web服务器端开发 OpenVPN 安装、配置客户端和服务端,以及OpenVPN的使用 (Windows 平台)

OpenVPN 安装、配置客户端和服务端,以及OpenVPN的使用 (Windows 平台)

web服务器端开发 by

OpenVPN 开源,好用,而且免费,感谢 OpenVPN 团队开发此产品。

 

简介

OpenVPN允许参与创建VPN的单点使用公开密钥电子证书、或者用户名/密码来进行身份验证。它大量使用了OpenSSL加密库中的SSLv3/TLSv1协议函数库。目前OpenVPN能在SolarisLinuxOpenBSDFreeBSDNetBSDMac OS XWindows 2000XPVista/Windows 7以及Android上运行,并包含了许多安全性的功能。它并不是一个基于Web的VPN软件,也不与IPsec及其他VPN软件包兼容。

加密

OpenVPN使用OpenSSL库加密数据与控制信息:它使用了OpenSSL的加密以及验证功能,意味着,它能够使用任何OpenSSL支持的算法。它提供了可选的数据包HMAC功能以提高连接的安全性。此外,OpenSSL的硬件加速也能提高它的性能。

验证

OpenVPN提供了多种身份验证方式,用以确认参与连接双方的身份,包括:预享私钥,第三方证书以及用户名/密码组合。预享密钥最为简单,但同时它只能用于创建点对点的VPN;基于PKI的第三方证书提供了最完善的功能,但是需要额外的精力去维护一个PKI证书体系。OpenVPN2.0后引入了用户名/口令组合的身份验证方式,它可以省略客户端证书,但是仍有一份服务器证书需要被用作加密。

网络

OpenVPN所有的通信都基于一个单一的IP端口,默认且推荐使用UDP协议通讯,同时TCP也被支持。OpenVPN连接能通过大多数的代理服务器,并且能够在NAT的环境中很好地工作。服务端具有向客户端“推送”某些网络配置信息的功能,这些信息包括:IP地址路由设置等。OpenVPN提供了两种虚拟网络接口:通用Tun/Tap驱动,通过它们,可以创建三层IP隧道,或者虚拟二层以太网,后者可以传送任何类型的二层以太网络数据。传送的数据可通过LZO算法压缩。IANA(Internet Assigned Numbers Authority)指定给OpenVPN的官方端口为1194。OpenVPN 2.0以后版本每个进程可以同时管理数个并发的隧道。

OpenVPN使用通用网络协议(TCPUDP)的特点使它成为IPsec等协议的理想替代,尤其是在ISP(Internet service provider)过滤某些特定VPN协议的情况下。

安全

OpenVPN与生俱来便具备了许多安全特性:它在用户空间运行,无须对内核及网络协议栈作修改;初始完毕后以chroot方式运行,放弃root权限;使用mlockall以防止敏感数据交换到磁盘。

OpenVPN通过PKCS#11支持硬件加密标识,如智能卡

OpenVPN 使用比较简单,流程上稍微注意一下,你一定可以很好的操作它,本文以证书及 key 作为验证方式对 OpenVPN 的使用进行介绍。

 

连接模式大致如图所示

 

OpenVPN 可以为1对1或者1对多,甚至多对多的分散计算机构筑安全的互联网络,连结后相互间如同局域网,通讯经严格加密,安全可靠,比如远程管理服务器,但又当心3389或者FTP之类的端口被那些草根黑客用字典猜密码,复杂的密码虽然不大可能猜中,但也实在很烦,但真正的黑客我还是很敬仰他们的,那么言归正传。管理这类服务器通过 OpenVPN 的证书认证连接成功后,你和服务器之间如同局域网,对内网再开放端口会安全的多,维护也较容易,防火墙对外网,则只针对例如80 端口和OpenVPN 端口(可以自定,默认是1194)开放,否则就无法访问了。

 

 因为封锁,下载也很可能随时被封(如果下载不能完成,请到文章末尾提供的Q群共享文件中下载)

OpenVPN 2.3.6 bin & src 下载

Source Tarball (gzip) openvpn-2.3.6.tar.gz GnuPG Signature
Source Tarball (xz) openvpn-2.3.6.tar.xz GnuPG Signature
Source Zip openvpn-2.3.6.zip GnuPG Signature
Installer (32-bit), Windows XP and later openvpn-install-2.3.6-I001-i686.exe GnuPG Signature
Installer (64-bit), Windows XP and later openvpn-install-2.3.6-I001-x86_64.exe GnuPG Signature
Installer (32-bit), Windows Vista and later openvpn-install-2.3.6-I601-i686.exe GnuPG Signature
Installer (64-bit), Windows Vista and later openvpn-install-2.3.6-I601-x86_64.exe GnuPG Signature

OpenVPN 2.3.5 I001 32/64 bin & src 下载

Source Tarball (gzip) openvpn-2.3.5.tar.gz GnuPG Signature
Source Tarball (xz) openvpn-2.3.5.tar.xz GnuPG Signature
Source Zip openvpn-2.3.5.zip GnuPG Signature
Installer (32-bit), Windows XP and later openvpn-install-2.3.5-I001-i686.exe GnuPG Signature
Installer (64-bit), Windows XP and later openvpn-install-2.3.5-I001-x86_64.exe GnuPG Signature
Installer (32-bit), Windows Vista and later openvpn-install-2.3.5-I601-i686.exe GnuPG Signature
Installer (64-bit), Windows Vista and later openvpn-install-2.3.5-I601-x86_64.exe GnuPG Signature

OpenVPN 2.3.4 I003/I603 下载地址

Installer (32-bit), Windows XP and later http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I003-i686.exe

Installer (64-bit), Windows XP and later http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I003-x86_64.exe

Installer (32-bit), Windows Vista and later http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I603-i686.exe

Installer (64-bit), Windows Vista and later http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I603-x86_64.exe

Source Tarball (gzip) http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.gz

Source Tarball (xz) http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.xz

Source Zip http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.zip

OpenVPN 2.3.4 I002 下载地址(已修复心脏出血漏洞)

Windows Install 32-bit http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I002-i686.exe

Windows Install 64-bit http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.4-I002-x86_64.exe

Source-zip http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.zip

Source-gzip http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.gz

Source-xz http://swupdate.openvpn.org/community/releases/openvpn-2.3.4.tar.xz

OpenVPN 2.3.3  下载地址

32位 http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-i686.exe

64位 http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-x86_64.exe

源代码 http://swupdate.openvpn.org/community/releases/openvpn-2.3.3.zip

OpenVPN 2.3.2 下载地址

32Bit http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.2-I001-i686.exe

64Bit http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.2-I001-x86_64.exe

Source Code http://swupdate.openvpn.org/community/releases/openvpn-2.3.2.zip

OpenVPN 2.3 下载地址

32位 http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.0-I005-i686.exe

64位 http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.0-I005-x86_64.exe

源代码 http://swupdate.openvpn.org/community/releases/openvpn-2.3.0.zip

 

OpenVPN 2.2 下载地址

下安装程序:http://swupdate.openvpn.org/community/releases/openvpn-2.2.2-install.exe

源代码:http://swupdate.openvpn.org/community/releases/openvpn-2.2.2.zip

其它历史发布版本

含源代码和安装程序 http://build.openvpn.net/downloads/releases/

 

OpenVPN 的配置不复杂,以 Windows 环境下为例,选择全部组件安装,安装完毕后 cmd 控制台进入C:\Program Files\OpenVPN\easy-rsa 目录,我们需要创建服务端和客户端证书。

进入cmd前可能需要将C:\Program Files\OpenVPN\bin添加到环境变量的path中。

OpenVPN 经测试,能运行于32位和64位操作系统,不过若在Windows 7下安装的话,必须以管理员权限运行。目前测试中,除 Windows 8 运行不正常,其他旧版 Windows 32/64 平台均没问题。

 

运行控制台命令

#初始化配置

init-config

#复制配置文件为批处理
vars

#清除key文件夹内的文件,文件夹不存在会自动创建
clean-all

#生成证书及key,需要填写一些参数,建议不要默认
build-ca

#创建服务端证书及key,需要填写一些参数,建议不要默认
build-key-server server

#创建一个客户端证书及key,需要填写一些参数,建议不要默认
build-key client1

#再创建一个客户端证书及key,需要填写一些参数,建议不要默认
build-key client2

#再创建一个客户端证书及key,需要填写一些参数,建议不要默认
build-key client3

#生成1024bit的key,并结束此次创建
build-dh

 

本次生成后,若发生变更,必须从头再来,不允许发生诸如添加客户端或变更服务端信息之类的操作,增加客户端必须重新走一道OpenVPN生成key的流程。再次生成证书文件时所填内容务必与前一次有所差别,否则可能导致错误。

 

证书制作完毕,得到一些文件,但如果参数填写不恰当,可能生成一些0字节的crt文件,那么就得重新生成证书。生成结束后,可按照如下表格分别将文件拷贝到客户端和服务端的 config 目录中(测试时全部放一起也没关系)。

      文件名       

位置

目的

  保密

ca.crt

server + all clients

Root CA certificate

NO

ca.key

 key signing machine only

Root CA key

YES

dh{n}.pem

server only

 Diffie Hellman parameters

NO

server.crt

server only

Server Certificate

NO

server.key

server only

Server Key

YES

client1.crt

client1 only

Client1 Certificate

NO

client1.key

client1 only

Client1 Key

YES

client2.crt

client2 only

Client2 Certificate

NO

client2.key

client2 only

Client2 Key

YES

client3.crt

client3 only

Client3 Certificate

NO

client3.key

client3 only

Client3 Key

YES

 

下一步是配置文件,在 OpenVPN\sample-config 目录内有 client.ovpn、server.ovpn,将client.ovpn拷贝到客户端的config,server.ovpn拷贝到服务端的config。

配置文件内需要指定证书文件名(默认已存在),请务必确认配置文件内证书文件名描述正确!

如果仅仅使用证书配置,除证书文件名描述正确外,只需要修改客户端配置文件指向的服务端IP即可。

也就是说,simple-config 几乎不需要修改,在证书正常的情况下,就可以直接使用!

修改客户端的 client.ovpnremote 让它指向服务端外部 IP 地址,格式例如:remote x.x.x.x 1194,1194是服务端定义的端口,这个可以通过服务端的配置文件修改,服务端和客户端端口必须匹配;在第92,93行的位置,修改指定的crt和key文件,与之生成的文件匹配。

 

修改服务端的server.ovpn……其实服务端配置不修改也已经可以使用了,如果想指定内部地址10.254.254.1可自行调整;默认的crtkey就是server,名字若不同,则需要修改一下。

 

打开操作系统自带的 DHCP Client 服务(管理工具的服务,但通常是自动),用于获取被分配的IP地址。

部署完毕后,服务端运行 OpenVPN GUI,右键选择 server 再选择connect,激活服务端连接。注意看日志,或者 控制台运行openvpn –config server 也可以,日志将详细显示连接情况,若有问题很容易排查,全部调试通过后建议以自动启动的服务的方式运行(服务内已经被安装了OpenVPN的一项,默认手动),这样不登入桌面也可以使用VPN。

 

客户端运行 OpenVPN GUI,右键选择 client1 在选择connect,尝试连接服务端。注意看日志,便于排除问题,这次连接成功后,下次可以使用系统服务来使用OpenVPN,不需要OpenVPN GUI,这样使用更方便。

 

至此 OpenVPN 连接完成。

 

有一点注意,若需要更新证书,自己又处于远程位置,则在服务端控制台将证书全部生成后,先把客户端证书下载好(但不部署),接着部署服务端证书,然后重新启动 OpenVPN 的服务端的服务(这时VPN中断),再将下载好的客户端证书部署好,并重新连接,即完成全部证书更新,不过整个过程需特别谨慎,不能有差错,否则可能被关在服务器外面,或者先把3389打开,再更新证书,但风险会有提高。

 

官方推荐使用UDP协议(UDP要比TCP节省资源),不过据我个人测试下来,TCP连接在意外中断后自动重连接速度更快一些;客户端和服务端的配置文件还有一些其他属性,各位可以参考备注或者下面留的链接。

 

通过配置文件的 client to client 开关,还能将互联网上的多台终端集合到一个虚拟的局域网中,实现相互访问。

 

主要参考资料 来自 http://openvpn.net 不过无法通过正常渠道打开,大家可以使用国外免费代’|’理进行访问,或借助一些工具,将更简单,进群寻找答案。

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

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

另推荐一本书《OpenVPN 2 Cookbook》,有100例使用配置,通常足够使用了(群共享有下载)。

若需要 Android 客户端,可进入https://play.google.com/store/apps/details?id=net.openvpn.privatetunnel下载,Android 4.0 以上支持。

适当调整服务端配置,并且在加上一个NAT服务,OpenVPN 就是一个翻墙利器……

 

26 2015-04

 

我要 分享

 

 

本文 作者

 

相关 文章