OpenVPM系列图文教程之(一)—— Windows下搭建服务端、客户端配置

版权声明:原创不易,转载须经作者同意 https://blog.csdn.net/zhichaosong/article/details/84950242

背景:公司移动APP需要使用呐网服务,就顺便研究了一下各种搭建方式,废话不说看教程!

本文测试环境

  • 云香港 ECS 1 核 1GB (新人2折
  • Windows server 2012 R2 Datacenter
  • Intel® Xeon® CPU E5-2650 v2 @ 2.60GHz
  • RAM 1.00 GB

目录

一、安装

1. 官网

https://open***.net
这里给大家准备了网盘地址:
链接:https://pan.baidu.com/s/1emcX3ZfFc2tdd-KzSu7WHQ 密码:ojrk,下载后可以直接跳过第2步,服务端和客户端都用这一个安装包
官网

2. 下载安装包

第4个卡片 Community > Downloads 下载最新版 open***-install-2.4.6-I602.exe
下载页面:https://open***.net/index.php/open-source/downloads.html
下载页面

3. 安装

① 注意勾选 EasyRSA 2 Certificate Management Scripts,后面生成密钥用
勾选EasyRSA 2 Certificate Management Scripts
② 同意安装 TAP-Windows Provider V9 网络适配器
这里写图片描述
③ 完成安装
安装

二、配置

1. 初始化

从我的电脑找到并进入安装目录,进入 easy-rsa 文件夹,导航栏直接输入 cmd 即可打开命令提示符界面
打开命令提示符界面
依次执行如下命令完成初始化工作:

> init-config
> vars
> clean-all

初始化命令
第一次执行clean-all时,提示"系统找不到指定的文件"是正常的,不用管它。该命令会删除掉之前生成的所有证书和密钥文件,以避免与之后全新生成的证书和密钥发生冲突。

2. 生成CA根证书密钥对

# 执行命令build-ca来生成CA根证书密钥对。
> build-ca

如下图所示,除了build-ca命令外,其他输入主要用于设置根证书的签名信息,包括国家、省、市、组织名称、单位名称、通用名、名称、邮箱地址等,请根据个人需要自行输入。输入框前面"[]“中的内容表示默认值,如果你不输入、直接按回车,则表示使用默认值;如果你输入”.“则表示该字段信息留空。其中Common Name(通用名称)比较重要,相当于我们常说的"账号”(此处设为vpm_ca)

生成CA根证书密钥对
此时,我们就可以在证书存放目录中看到生成的CA证书和私钥文件了。双击该证书,我们还可以看到刚才输入的相关信息。
CA证书和私钥文件

3. 创建服务器端证书

# 使用命令build-key-server server来创建服务器端证书和私钥
> build-key-server server

整个创建过程与前面创建CA根证书的流程比较类似,我们只需要注意Comman Name的参数值为"server"并随后设置相应的密码(这里设为"server_pwd",一般不会用到密码),最后输入两次"y"进行确认即可。
Common Name 必须填,且不能与执行 build-dh 时相同,否则会报:failed to update database
TXT_DB error number 2找不到 C:\Program Files\Open***\easy-rsa\keys*.old
创建服务器端证书和私钥

4. 创建客户端证书

# build-key <clientName> 创建客户端证书和私钥
# 例如build-key client1、build-key client2
> build-key client

创建客户端证书的流程和创建服务器端证书的流程完全一致,只需要注意Common Name字段即可,我们这里设置为client,密码client_pwd
创建客户端证书
如果以后还想要创建新的客户端,只需要先执行vars命令,再执行build-key clientName命令即可(每次打开新的命令提示符窗口,都必须先执行vars命令,才能执行其他命令)。

5. 创建迪菲·赫尔曼交换密钥

# 为服务器端创建迪菲·赫尔曼交换密钥
# 迪菲·赫尔曼交换密钥是一种安全协议,用以对数据进行加密
> build-dh

创建迪菲·赫尔曼交换密钥
到这里我们的证书和密钥的创建操作就基本上完成了

三、开启Server

1. 拷贝证书

从easy-rsa/keys目录中拷贝出服务器端和客户端所需的文件,分别将其放在自己的安装路径/config目录中。
其中,服务器端需要用到的文件有:

  • ca.crt
  • ca.key
  • dh2048.pem (如果最初的变量KEY_SIZE设为1024,这里就是dh1024.pem)
  • server.crt
  • server.key
    服务器端需要用到的文件

客户端client需要用到的文件有:

  • ca.crt
  • client.crt
  • client.key (名称client根据个人设置可能有所不同)

客户端client需要用到的文件

2. 拷贝配置文件

我们还需要在config目录中各自放置一个配置文件,服务器端的配置文件名为server.ovpm,客户端的配置文件为client.ovpm。

这两个配置文件该如何编写呢?在sample-config目录中为我们提供了相关的示例文件server.ovpm和client.ovpm,并且配置文件中的每个配置选项均有详细的英文说明(配置文件中"#“或”;"开头的均为注释内容)。

实际上,将两个模板文件中与IP地址有关的配置修改一下,就可以直接拿来使用。

  • server.ovpm的详细配置

我们只需要改一行,把 tls-auth 这一行用分号注释掉即可

local 192.168.1.101   #指定监听的本机IP(因为有些计算机具备多个IP地址),该命令是可选的,默认监听所有IP地址。
port 1194             #指定监听的本机端口号
proto udp             #指定采用的传输协议,可以选择tcp或udp
dev tun               #指定创建的通信隧道类型,可选tun或tap
ca ca.crt             #指定CA证书的文件路径
cert server.crt       #指定服务器端的证书文件路径
key server.key    	  #指定服务器端的私钥文件路径
dh dh1024.pem         #指定迪菲赫尔曼参数的文件路径
server 10.8.0.0 255.255.255.0   #指定虚拟局域网占用的IP地址段和子网掩码,此处配置的服务器自身占用10.0.0.1。
ifconfig-pool-persist ipp.txt   #服务器自动给客户端分配IP后,客户端下次连接时,仍然采用上次的IP地址(第一次分配的IP保存在ipp.txt中,下一次分配其中保存的IP)。
;tls-auth ta.key 0     #开启TLS-auth,使用ta.key防御攻击。服务器端的第二个参数值为0,客户端的为1。
keepalive 10 120      #每10秒ping一次,连接超时时间设为120秒。
comp-lzo              #开启连接压缩,如果服务器端开启,客户端也必须开启
client-to-client      #允许客户端与客户端相连接,默认情况下客户端只能与服务器相连接
persist-key
persist-tun           #持久化选项可以尽量避免访问在重启时由于用户权限降低而无法访问的某些资源。
status status.log    #指定记录状态的日志文件路径
verb 3                #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细
  • client.ovpm的详细配置

我们也只需要改 2 行即可:
① remote my-server-1 1194 这一行把 my-server-1 换成刚刚服务器的地址
② tls-auth 这一行用分号注释掉

client         #指定当前是客户端
dev tun        #必须与服务器端的保持一致
proto udp      #必须与服务器端的保持一致
remote 192.168.1.101 1194      #指定连接的远程服务器的实际IP地址和端口号
resolv-retry infinite    #断线自动重新连接,在网络不稳定的情况下(例如:笔记本电脑无线网络)非常有用。
nobind         #不绑定特定的本地端口号
persist-key
persist-tun
ca ca.crt      #指定CA证书的文件路径
cert client.crt       #指定当前客户端的证书文件路径
key client.key    #指定当前客户端的私钥文件路径
remote-cert-tls server      #指定采用服务器校验方式
;tls-auth ta.key 1     #如果服务器设置了防御DoS等攻击的ta.key,则必须每个客户端开启;如果未设置,则注释掉这一行;
comp-lzo              #与服务器保持一致
verb 3                #指定日志文件的记录详细级别,可选0-9,等级越高日志内容越详细

四、开启

1. 服务端开启

  • 云安全策略的入规则要允许UPP 1194端口
  • 最后关闭防火墙,或者为安装目录下bin/open***.exe添加防火墙例外
  • 双击桌面的 GUI logo 启动
  • 如果报错可以右键右下角小图标 View log 查看错误信息,或者双击查看状态信息
    服务端开启

2. 客户端开启

  • 拷贝服务端上生成的客户端证书文件(一共4个,3个证书密钥和1个配置文件),放到安装目录的config文件夹下
  • 双击桌面的 GUI logo 启动
    客户端开启
  • 查看网络适配器信息,能访问10.8.0.1的服务就代表成功了
    适配器信息

五、通过服务端做路由

刚刚搭建的服务器经过以上配置后,是能够实现内网互通的,但是我们还想借助服务器上网的话,还需要进行路由配置,详情查看本系列博客的另外一篇 系列图文教程之(四)—— 客户端通过服务端访问网络

六、交流

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/zhichaosong/article/details/84950242