类别:ROS / 日期:2021-02-23 / 浏览:6999 / 评论:0

目前,许多企业开始选择远程办公来实现日常业务的流转。对于一些企业内部的信息系统,不便于使之暴露于公网之上。不少企业开始选择使用 VPN 技术,为员工提供在家访问企业内网的能力。

为了研究ros的OpenVPN,我发现网上ROS6.X配置文章比较少,而且有些大神的配置说明比较隐晦,不尽人意。所以本人重新整理了一份完整的配置说明,本文参考了国内外同行的设置经验,不敢说是原创,但起码在目前国内, 是找不到比这更完整的教程了。

环境介绍

目前使用的是 RouterBOARD 750G r3 作为核心路由器,接入电信网络。

image.png

调测过程

整个主要包括以下几步,配置证书,配置 IP 池,创建 Profile,创建用户,开启服务,放通防火墙。此过程需要使用 WinBox 连接 ROS 路由器。

配置证书

一共需要创建三个证书文件。CA 证书,服务器端证书,客户端证书。
1、进入System->Certificates->Certificates页面,创建证书。

首先创建 CA 证书:

image.png

按顺序填写 General 页面内容,然后切换到 Key Usage 页面,按如下勾选。
image.png

点击 Apply 后点击 Sign 进行签名。

其中,Certificate 选择刚刚创建的 CA 证书,CA CRL Host 填写路由器的地址,最后点击 Start,开始签名。

ca3.png

签名完成后,重新回到 General 页面,检查是否勾选了 Trusted 标记。

202102231614094405821124.png

2、继续创建服务器证书,和创建 CA 证书一样,填写 General 页面内容,切换到 Key Usage 页面,按如下勾选。
image.png
image.png

点击 Apply 后点击 Sign 进行签名。这里使用 CA 证书进行签名。

s3.png

签名完成后,重新回到 General 页面,检查是否勾选了 Trusted 标记。

11.png

3、创建客户端证书。基本操作和之前一样,只是 Key Usage 只需要选择 tls client。点击 Apply 后点击 Sign 开始签名。依然使用 CA 证书进行签名。

image.png

c2.png

c3.png

c4.png

创建完成后,应该有三个证书。

all.png


4、需要导出 CA 证书和客户端证书,备用。需要为客户端证书配置一个密码。
【导出CA证书】进入System->Certificates->Certificates页面,双击OpenVPN_Root_CA证书

image.png

image.png

【导出客户端证书】

双击OpenVPN_Client证书

image.png

image.png

最终导出 cert_export_OpenVPN_Root_CA.crt,cert_export_OpenVPN_Client.crt,cert_export_OpenVPN_Client.key 三个文件。

image.png

拉出到本地电脑,备用。

file.png

配置 IP 池

创建一个用于分配给远程访问用户的 IP 池。
进入IP->IP Pool->Pools页面,创建 IP 池。
pool.png

这里我分配了 10 个 IP。

创建 Profile

进入PPP->Profiles页面,创建一个 PPP Profile。
pro.png
Local Address 这里我配置为 172.168.12.254,Remote Address 配置为刚刚创建的 IP 池。
DNS Server 填写ISP的地址(如果填写路由器的地址,如:192.168.100.1,能上微信和QQ,但不能打开网页)。点击 OK 保存。

创建用户

进入PPP->Secrets页面,创建用户。Name 就是用户名,Password 就是密码。Service 选择 ovpn,表示这个用户仅用于 OpenVPN 服务,Profile 选择刚刚创建的 Profile 文件。
如果需要创建大量用户,只需要创建好一个,其他的用户使用 Copy 快速创建。

user.png

开启服务

进入PPP->Interface页面,开启服务。要如下图配置
server.png
Enable 服务,配置 Port 端口,不推荐使用默认的端口。
Default Profile 选择刚刚创建的 Profile 文件。
Certificate 选择刚刚创建的服务器端证书。
Auth 和 Cipher 如图选择。

放通防火墙

关键的一步,一般来说防火墙表项不为空,需要在防火墙上对该服务的端口放通。
进入IP->Firewall->Filter Rules页面,添加一个防火墙规则。
Chain 选择 Input,Protocol 选择 TCP,Dst.Port 填写 OpenVPN 的端口。
Action 配置为 accept,进行放通。

需要注意的是,因为规则存在优先级顺序,所以这个规则应该在“拒绝一切非 LAN 口的访问”之前。
firewall1.png

firewall2.png

位置如下图,要放于“拒绝一切非 LAN 口的访问”之前(如有这样配置的话)。至此,服务器上的配置完成了。

image.png

测试连接

服务配置完成,可以使用端口扫描工具测试一下,是否对 OpenVPN 的端口处于一个开放状态。

制作连接文件

将以下内容保存为.ovpn 后缀的文件。并修改对应配置项。

client
dev tun
proto tcp
remote 域名 端口
nobind
persist-key
persist-tun
tls-client
remote-cert-tls server
verb 4
mute 10
cipher AES-256-CBC
auth SHA1
auth-user-pass
auth-nocache
redirect-gateway
<ca>
这里粘贴CA证书文件内容
</ca>

<cert>
这里粘贴客户端证书文件内容
</cert>

<key>
粘贴Key文件内容
</key>

证书内容如图:(可用记事本或Notepad++打开,三个文件打开都是类似的加密文字,只取其中一个示例,要全选所有内容

证书内容.png

.ovpn文件的内容如下图:(以我制作一个hsl.ovpn为例。)注意:复制过来的内容不能和目标有空行,否则会出错!要严格参照以下示例

202102241614096625748269.png

测试连接

可使用客户端软件进行连接,连接正常且可访问内网应用为测试的标准。

一、电脑测试

对于windows系统,要下载OPENVPN的客户端。可以登录以下官网下载:(国内可能需要翻墙)

https://build.openvpn.net/downloads/releases/

可参考使用以下版本:

winxp版:openvpn-install-2.3.18-I001-i686.exe

win7版:openvpn-install-2.4.9-I601-Win7.exe

win10版:openvpn-install-2.4.9-I601-Win10.exe

安卓和苹果版需要百度或GOOGLE才能下载

或者进入官网下载:https://openvpn.net/

安卓版可参考以下版本:

安卓版:openvpn-connect-3-2-4.apk

--------------------------------------------------

1、安装客户端,默认安装就可以了

image.png

2、将上面的.ovpn文件制作好,例如我制作了一个hsl.ovpn的文件,并将这文件放在程序的C:\Program Files\OpenVPN\config目录下

image.png

3、双击桌面的openvpn gui图标,运行程序。再双击右下角的image.png这个图标,输入用户名和密码

image.png

再输入创建证书时的密码

image.png

连接成功!

image.png

右下角的效果如下:

image.png

二、安卓版测试(苹果版也类似,不做说明了)

1、安装安卓版:openvpn-connect-3-2-4.apk

image.png

2、将hsl.ovpn文件传输到手机上,再打开安卓版openVPN程序,选file导入该文件

image.png

输入用户名、密码和当初创建KEY时设的密码。然后点连接或保存。由于这一步我已设置,没有截图,所以只好点编辑打开看看大概

image.png

保存后是这个样子

image.png

点连接后正常,大功告成!!

image.png

调测总结

虽然可以向导式配置 OpenVPN 服务,复杂点在于创建证书和配置防火墙,切勿照搬,仅供参考!


打赏

感谢您的赞助~

打开支付宝扫一扫,即可进行扫码打赏哦~

版权声明 : 本文使用「署名-非商业性使用-禁止演绎 4.0 国际」创作共享协议,转载或使用请遵守署名协议。

 可能感兴趣的文章