简单的OpenVPN搭建之Windows

举报
工业云大湿兄 发表于 2018/08/31 15:41:42 2018/08/31
【摘要】 通过搭建OpenVPN连接客户线上与线下资源。OpenVPN版本:2.4.6Windows版


需求描述:

POC客户的云桌面需要与客户本地物理机通信以获取许可。


参考文档


1. 简书教程:https://www.jianshu.com/p/e0ba68e2f357

2. 官方文档:https://openvpn.net/index.php/open-source/documentation/howto.html#quick


操作步骤

1. 下载OpenVPN

官网,2.4.6自带OpenSSL,Windows的直接用exe安装就好了,记得在Server端安装的时候把EasyRSA勾上,不然就像我一样傻乎乎的去Github上再找源码。。不过我发现这个EasyRSA 2 Windows版是13年前的东西,牛逼啊。

66d9e2579e9ccf889023_512x380.png@900-0-90-f.png


2. 创建证书

OpenVPN安装目录/easy-rsa/vars.bat.sample


这个文件是个创建bat脚本的模板,一会会创建三次证书,不想打字的就在这里多改点

6c7292579ebce34dc09b_525x243.png@900-0-90-f.png
初始化操作:


接着,我们用管理员身份打开命令提示符窗口,并转到easy-rsa目录,然后依次执行如下命令完成初始化工作:

init-config
vars
clean-all

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


1)第一个证书:CA证书

build-ca

5be0d257a3b4dfc1e3e2_648x140.png@900-0-90-f.png
看这里默认值都是前面在vars.bat.sample里面改的。后面几项我瞎写的也没事

2)第二个证书:服务器证书

build-key-server server

大部分跟上面一样,主要注意一个点:Common Name这里要写server。创建出来的证书名字就是server

6dd95257a3c1a96b9645_659x598.png@900-0-90-f.png

输入密码,y,y。日常RSA操作。

3)第三个证书:客户端证书

build-key client1

有多少client就跑多少遍,1,2,3,4,5.

然后在Common Name填对应的名字

4)最后一个证书是迪飞赫尔曼密钥,很酷的样子,不知道是啥

build-dh

不过要等大概5分钟,比较久

5)开启tls-auth(可选)

简书教程说这是防DDoS的,总之是好东西,我就开了

6)增加客户端

引用简书教程里的话:如果你以后还想要创建新的客户端,只需要先执行vars命令,再执行build-key clientName命令即可(每次打开新的命令提示符窗口,都必须先执行vars命令,才能执行其他命令)。


3. OpenVPN配置


在安装目录下有个sample-config文件夹,里面的".ovpn"文件就是配置文件的模板。其实基本上用server.ovpn跟client.ovpn这两个文件就能连通。

小提示:'#'号开头的注释是每一行配置的文字解释;';'号类似是一个“switch”的功能,为了区分文字行与配置行。

简单一个举例:

image.png

第34行的注释是解释下面这行配置事用TCP还是UDP协议,35行注释掉了配置tcp的代码,那么确实生效的配置就是36行的"proto udp",最后OpenVPN服务也将走UDP协议。

这个理解了以后就看着文字解释改吧,有什么不懂的就看参考最上面的官方文档,简书教程里把整个配置文件贴出来了,照着写也行。

4.华为云虚拟机配置

1)添加OpenVPN端口

在华为云Server端所在ECS的安全组里添加如下规则:

e17b2257d787c3fd21e6_924x277.png@900-0-90-f.png

若使用云桌面作为Server端,请在名为“WorkspaceUserSecurityGroup”的安全组下添加此规则

2)NAT网关设置(如果Server端有绑定EIP则可以跳过)

购买一个小型的NAT网关,并绑定一个1Mbit/sEIP。进入NAT网关控制台,选中创建好的NAT网关,点击添加DNAT规则:

3f42d257d787cbb6983d_485x446.png@900-0-90-f.png

私网IP选择Server端的私网IP地址,点击确认。

DNAT公网的端口映射到私网的端口,所以私网端口一定要填OpenVPN默认的1194端口(当然你也可以在配置里面改,32行FYI)公网端口填没有被占用的端口就行。注意,这里的设置在client.ovpn里体现在第42行:remote "弹性公网IP" "公网端口"

 

5. 链接OpenVPN并验证结果



1)开启OpenVPN服务

进入Server端所在计算机的Windows服务界面(【开始】->【运行】->services.msc),然后启动OpenVPN Service服务,从而启动服务器端的OpenVPN

93360257d7b7be66479f_605x442.png@900-0-90-f.png
开启后稍微等1分钟,可以运行命令:netstat -ano,来查看是否有个udp 1194的端口在监听

7d6bf257d7ce772b9cf8_633x213.png@900-0-90-f.png

 2)在Client端链接OpenVPN Server


切换到Client端服务器,双击安装OpenVPN时在桌面上生成的OpenVPN GUI图标,此时任务栏右下角会出现如下图所示的托盘图标,右键该图标,点击【connect】即可启动OpenVPN客户端,并尝试连接服务器

如果连接成功,该托盘图标将会变为绿色,并且提示OpenVPN服务分配给Client端的隧道IP,如图:

2bb20257d9abd23f1b2d_231x95.png@900-0-90-f.png

如果一不留神没看到,可以右键点击OpenVPN图标 -> Show Status;在弹出窗口的最后一行看到,如图:

 1c992257d9acb4c50ebc_791x495.png@900-0-90-f.png



 3)测试

尝试在Serverping一下Client端的地址:执行命令ping 10.8.0.2

尝试在Clientping一下Server端的地址:执行命令ping 10.8.0.1

 

如果都能ping通,那么VPN的通道就搭建好了。下一篇讲一下如何用Client端(Server端也行)作为跳转,让与Client端同网段的机器与Server端互信。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。