windows下利用OpenVPN搭建VPN服务器

信息来源:邪恶八进制信息安全团队(www.eviloctal.com)
文章作者:pt007[at]vip.sina.com 版权所有 转载需注明作者

注:文章首发I.S.T.O信息安全团队(http://blog.csdn.net/I_S_T_O),后由原创作者友情提交到邪恶八进制信息安全团队。

一、OpenVPN是一款功能强大,可跨平台(支持Win 2000/XP/2003, Linux, Mac OS X, Solaris, FreeBSD, NetBSD, 和 OpenBSD)使用的SSL VPN服务器软件(具体说明见官方主页官方主页)。

openvpn-2.1_beta16命令行版,下载地址 http://openvpn.net/download_action.php?openvpn-2.1_beta16-install.exe
也可以下图形版。

二、安装与配置

第一步:安装openvpn
这一部分是服务端跟客户端都要做的工作,操作完全相同
双击 openvpn-2.1_beta16-install.exe进行安装,点击NEXT,I Agree,NEXT之后开始选择安装路径,我手动修改为C:\Program Files\OpenVPN 。点击 Install 开始安装,安装过程中,弹出硬件安装窗口,点击仍然继续,安装虚拟网卡。点击 next,Finish 完成安装。

第二步: VPN服务器配置:
说明:架设OPENVPN服务器,服务器方面做的工作比较多,客户端相对来说就比较简单。
服务器采用RSA证书和密钥验证方式对客户端进行验证,默认情况下证书和用户是一对一的,多个用户使用同一证书会被踢出。所以首先要做的工作就是证书的制作。

在进行操作之前,首先进行初始化工作:
(1)修改C:\Program Files\OPENVPN\easy-rsa\vars.bat.sample的以下部分

set HOME=%ProgramFiles%\OpenVPN\easy-rsa
set KEY_COUNTRY=US
set KEY_PROVINCE=CA
set KEY_CITY=SanFrancisco
set KEY_ORG=FortFunston
set [email protected]

请根据自身情况修改,也可以不修改,改为

set HOME=C:\Program Files\OPENVPN\easy-rsa
set KEY_COUNTRY=CN                         #(国家)
set KEY_PROVINCE=GuangDong                 #(省份)
set KEY_CITY=ShenZhen                      #(城市)
set KEY_ORG=oovc.com                       #(组织)
set [email protected]               #(邮件地址)

上面#开始的是注释,请不要写到文件中。
打开命令提示符:

开始–>运行…–>键入cmd,回车,进入命令提示符

或者 开始–>程序–>附件–>命令提示符

进入C:\Program Files\openvpn\easy-rsa目录下:
命令如下:
(1)cd C:\Program Files\openvpn\easy-rsa
init-config
vars
clean-all

上面是初始化工作,以后,在进行证书制作工作时,仍旧需要进行初始化,但只需要进入openvpn\easy-rsa目录,运行vars就可以了,不需要上面那些步骤了。

(2)下面开始证书的制作:
生成根证书:(请输入红字部分)
build-ca

build-dh

生成服务端密钥:
build-key-server server


生成客户端密钥
build-key client1

build-key client2 //可以继续配置第二个VPN客户端密钥

//生成的密钥存放于C:\Program Files\openvpn\easy\rsa\keys目录下

接下来开始配置服务器和客户端:
(3)将生成的ca.crt,dh1024.pem,server.crt,server.key复制到C:\Program Files\OPENVPN\KEY目录下,这四个文件是VPN服务端运行所需要的文件。
(4)ca.crt,client.crt,client.key是VPN客户端所需要的文件,复制到客户端C:\Program Files\OPENVPN\KEY目录下
(5)在C:\Program Files\OpenVPN\config目录下创建server.ovpn:
服务器端文件示例:(server.ovpn)

local 192.168.3.1                                        #建立VPN的IP
port 443                                                    #端口号,根据需要,自行修改,如果是用http代理连接,请不要修改
proto tcp-server      #通过TCP协议连接
dev tap                               #win下必须设为tap
server 192.168.0.0 255.255.255.0                      # 虚拟局域网网段设置,请根据需要自行修改,不支持和拔号网卡位于同一网段
push "route 0.0.0.0 0.0.0.0" #表示client通过VPN SERVER上网
keepalive 20 180
ca "C:\\Program Files\\OPENVPN\\KEY\\ca.crt"                  #CA证书存放位置,请根据实际情况自行修改
cert "C:\\Program Files\\OPENVPN\\KEY\\server.crt"           #服务器证书存放位置,请根据实际情况自行修改
key "C:\\Program Files\\OPENVPN\\KEY\\server.key"             #服务器密钥存放位置,请根据实际情况自行修改
dh "C:\\Program Files\\OPENVPN\\KEY\\dh1024.pem"              #dh1024.pem存放位置,请根据实际情况自行修改
push "redirect-gateway def1"
push "dhcp-option DNS 219.141.140.10"                        #DNS,请根据实际情况自行修改
mode server
tls-server
status "C:\\Program Files\\OPENVPN\\log\\openvpn-status.log"  #LOG记录文件存放位置,请根据实际情况自行修改
comp-lzo
verb 4

(6)客户端设置:在客户端安装完成之后,需要将 ca.crt client.crt client.key 这三个文件拷贝到C:\Program Files\openvpn\key目录下,这三个文件由服务端生成,所以,连接谁的服务器,就需要跟谁索取这三个文件

然后,编辑一个 client.ovpn的配置文件存放到C:\Program Files\openvpn\config目录下,客户端就可以进行连接了。

客户端文件示例:(client.ovpn)

client
dev tap  #windows下面用tap,LINUX下用tun
proto tcp-client
remote 192.168.3.1 443               #VPN服务器的域名或IP 端口
resolv-retry infinite
nobind
#http-proxy 192.168.1.1 80                 #这里填入你的代理服务器地址和端口
mute-replay-warnings
ca "C:\\Program Files\\OPENVPN\\KEY\\ca.crt"
cert "C:\\Program Files\\OPENVPN\\KEY\\client.crt"        #这里改成每个客户端相应的证书
key "C:\\Program Files\\OPENVPN\\KEY\\client.key"        #这里改成每个客户端相应的密钥
comp-lzo
verb 4
status openvpn-status.log

(7)其它设置:
上面的配置拔号成功后,VPN SERVER的IP:192.168.0.1

VPN client的IP:192.168.0.2

ping 192.168.0.1 //相互之间应能ping通

然后设置VPN SERVER上的”internet连接共享“来实现clinet通过VPN SERVER上网:(需要两块网卡)

(8)VPN服务端命令行启动:
“C:\Program Files\OpenVPN\bin\openvpn” “C:\Program Files\OpenVPN\config\server.ovpn” //启动VPN到443端口

(9)VPN客户端命令行连接:
“C:\Program Files\OpenVPN\bin\openvpn” “C:\Program Files\OpenVPN\config\client.ovpn”

相关日志

楼被抢了 13 层了... 抢座Rss 2.0或者 Trackback

  • ff

    请问可以在2台普通机上使用吗?还有ip的设置有规律吗?谢谢

  • 乌哥

    按照文章的介绍安装及设置了,无法连接啊,该是有某此设置没搞对,如(8)\(9)的命令行启动\连接是怎么弄的?

  • 乌哥

    服务器连接成功了,显示IP地址为192.168.0.1,客户端还不行!local 192.168.3.1 #建立VPN的IP
    这个我改为本服务器现实际的IP,做了(8)后,连接成功,但客户端怎么改呢?
    #http-proxy 192.168.1.1 80 #这里填入你的代理服务器地址和端口

    改这个?

  • 乌哥

    两个都不得可连接了,但设共享连接有点问题,客户机如何通过服务机访问网络呢

  • 道者

    server.ovpn这个文件一改动,就不能用,从SAMPLE里面直接拷出来就能用。请楼主再做详解。

  • ycren

    明天照着试试:)

  • haha

    openvpn服务端单网卡能实现客户端共享上互联网么?

  • penny

    生成客户端密钥时找不到×.old怎么办?

  • jaugin

    无法通过!!

  • 罗严塔尔

    1. 请问, 如果server, client, 在不同的网络, 应该如何建立vpn.
    2. 然后 就是, 如果我要产生100个client key, 先产生了50个。 exe窗口关掉。 想要继续生产接下来的50个, 应该如何做到?
    3. 还有就是……server能不能命令client 进行连接, 或者断开?

    谢谢博主的技术分享, 帮了我工作上的大忙了。

  • redcat8850

    不错的,帮我很大忙。但是你网站貌似被墙了。。。

发表评论