整个主要包括以下几步,配置证书,配置 IP 池,创建 Profile,创建用户,开启服务,放通防火墙。此过程需要使用 WinBox 连接 ROS 路由器。
配置证书一共需要创建三个证书文件。CA 证书,服务器端证书,客户端证书。
1、进入System->Certificates->Certificates页面,创建证书。
首先创建 CA 证书:
按顺序填写 General 页面内容,然后切换到 Key Usage 页面,按如下勾选。
点击 Apply 后点击 Sign 进行签名。
其中,Certificate 选择刚刚创建的 CA 证书,CA CRL Host 填写路由器的地址,最后点击 Start,开始签名。
签名完成后,重新回到 General 页面,检查是否勾选了 Trusted 标记。
2、继续创建服务器证书,和创建 CA 证书一样,填写 General 页面内容,切换到 Key Usage 页面,勾选「digital signature」、「key encipherment」和「tls server」三个选项。
点击 Apply 后点击 Sign 进行签名。这里使用 CA 证书进行签名。
签名完成后,重新回到 General 页面,检查是否勾选了 Trusted 标记。
3、创建客户端证书。基本操作和之前一样,只是 Key Usage 只需要选择 tls client。点击 Apply 后点击 Sign 开始签名。依然使用 CA 证书进行签名。
创建完成后,应该有三个证书。
4、需要导出 CA 证书和客户端证书,备用。需要为客户端证书配置一个密码。
【导出CA证书】进入System->Certificates->Certificates页面,双击OpenVPN_Root_CA证书
【导出客户端证书】
双击OpenVPN_Client证书
最终导出 cert_export_OpenVPN_Root_CA.crt,cert_export_OpenVPN_Client.crt,cert_export_OpenVPN_Client.key 三个文件。
拉出到本地电脑,备用。
配置 IP 池
创建一个用于分配给远程访问用户的 IP 池。
进入IP->IP Pool->Pools页面,创建 IP 池。
这里我分配了 10 个 IP。
创建 Profile
进入PPP->Profiles页面,创建一个 PPP Profile。
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 快速创建。
开启服务
进入PPP->Interface页面,开启服务。要如下图配置
Enable 服务,配置 Port 端口,不推荐使用默认的端口。
Default Profile 选择刚刚创建的 Profile 文件。
Certificate 选择刚刚创建的服务器端证书。
Auth 和 Cipher 如图选择。
放通防火墙
关键的一步,一般来说防火墙表项不为空,需要在防火墙上对该服务的端口放通。
进入IP->Firewall->Filter Rules页面,添加一个防火墙规则。
Chain 选择 Input,Protocol 选择 TCP,Dst.Port 填写 OpenVPN 的端口。
Action 配置为 accept,进行放通。
需要注意的是,因为规则存在优先级顺序,所以这个规则应该在“拒绝一切非 LAN 口的访问”之前。
位置如下图,要放于“拒绝一切非 LAN 口的访问”之前(如有这样配置的话)。至此,服务器上的配置完成了。
测试连接 服务配置完成,可以使用端口扫描工具测试一下,是否对 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++打开,三个文件打开都是类似的加密文字,只取其中一个示例,要全选所有内容) .ovpn文件的内容如下图:(以我制作一个hsl.ovpn为例。)注意:复制过来的内容不能和目标有空行,否则会出错!要严格参照以下示例 测试连接可使用客户端软件进行连接,连接正常且可访问内网应用为测试的标准。 一、电脑测试 对于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、安装客户端,默认安装就可以了 2、将上面的.ovpn文件制作好,例如我制作了一个hsl.ovpn的文件,并将这文件放在程序的C:\Program Files\OpenVPN\config目录下 3、双击桌面的openvpn gui图标,运行程序。再双击右下角的这个图标,输入用户名和密码 再输入创建证书时的密码 连接成功! 右下角的效果如下: 二、安卓版测试(苹果版也类似,不做说明了) 1、安装安卓版:openvpn-connect-3-2-4.apk 2、将hsl.ovpn文件传输到手机上,再打开安卓版openVPN程序,选file导入该文件 输入用户名、密码和当初创建KEY时设的密码。然后点连接或保存。由于这一步我已设置,没有截图,所以只好点编辑打开看看大概 保存后是这个样子 点连接后正常,大功告成!! 调测总结 虽然可以向导式配置 OpenVPN 服务,复杂点在于创建证书和配置防火墙,切勿照搬,仅供参考! |