Windows搭建OpenVPN

Published on 2017 - 05 - 22

Windows搭建OpenVPN

前几天朋友需要一个OpenVPN服务,让我帮忙搭建一下,但是没想到他的竟然是Windows服务器,很少用Windows的我只能默默的查教程,看文档的给搭建了出来,这里写个简洁的小笔记记录一下。

1.安装的时候记得组件全选

注意事项: 注意安装的时候组件务必全选,注意安装完成后,要设置服务器的外网网卡为共享状态,不然VPN客户端无法上网

2.证书生成

初始化配置

安装好OpenVPN 2.3.16之后,打开命令行后输入以下命令

d:
cd D:\Program Files\OpenVPN\easy-rsa
init-config.bat

然后使用记事本打开 cd D:\Program Files\OpenVPN\easy-rsa\vars.bat修改以下内容

set HOME="D:\Program Files\OpenVPN\easy-rsa"
set KEY_COUNTRY=CN
set KEY_PROVINCE=BJ
set KEY_CITY=haidian
set KEY_ORG=rich
set KEY_EMAIL=richzhu@123.com
set KEY_CN=rich
set KEY_NAME=rich
set KEY_OU=rich
set PKCS11_MODULE_PATH=rich
set PKCS11_PIN=8888

在之前打开的命令行中继续输入以下命令

vars.bat
clean-all.bat

生成CA根证书

vars.bat
build-ca.bat

生成dh1024.pem

为了安全我想启用TLS功能,所以在此生成一个pem

build-dh.bat

生成服务端证书

build-key-server.bat richserver
由于之前已经配置好,一路回车即可,出现提示输入Y回车

生成客户端证书

build-key-server.bat richclient
不要一路回车,Common Name 需要输入richclient,其余与上一步相同

生成ta.key文件

继续在命令行中输入以下命令
openvpn --genkey --secret keys/ta.Key

3.修改配置文件

修改server.ovpn

进入D:\Program Files\OpenVPN\sample-config目录并且打开server.ovpn修改内容如下:

port 443
proto tcp
dev tap
ca ca.crt
cert richserver.crt
key richserver.key  
dh dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
push "dhcp-option DNS 208.67.222.222"
push "dhcp-option WINS 208.67.220.220"
client-to-client
duplicate-cn
keepalive 10 120
tls-auth ta.key 0
cipher AES-256-CBC
comp-lzo
max-clients 100
persist-key
persist-tun
status openvpn-status.log
verb 3
在D:\Program Files\OpenVPN\config目录下新建一个ccd文件夹

把D:\Program Files\OpenVPN\easy-rsa\keys目录下的ca.crt、ca.key、richserver.crt、richserver.csr、richserver.key、dh1024.pem、ta.key 复制到D:\Program Files\OpenVPN\config目录下,到此server端的配置完成,点击右下角图片,选择connect

修改 client.ovpn

内容如下:

client
dev tap
proto tcp
remote 43.251.116.41 443
remote-random
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
cert richclient.crt
key richclient.key
ns-cert-type server
tls-auth ta.key 1
cipher AES-256-CBC
comp-lzo
verb 3
redirect-gateway def1

把配置文件client.ovpn复制到客户端机器的D:\Program Files\OpenVPN\config目录下,并且把服务器D:\Program Files\OpenVPN\easy-rsa\keys目录下的richclient.crt、richclient.csr、richclient.key、ca.key、ca.crt、ta.key 文件一起复制到客户端机器的D:\Program Files\OpenVPN\config 目录下(以上文件由服务器端生成,客户端需要向服务器端索取这七个文件)

注意:

OpenVPN 2.4.2 不支持Windows2008 , 本人实测,所以采用 OpenVPN 2.3.16版本