基于 RouterOS 的 OpenVPN 调测小记
自新冠病毒疫情以来,人们的生活和工作都受到了改变。许多企业开始选择远程办公来实现日常业务的流转,对于一些企业内部的信息系统,不便于使之暴露于公网之上,不少企业开始选择使用 VPN 技术,为员工提供在家访问企业内网的能力。
这几天给某司调了一台 RouterOS 的路由器,配置了 OpenVPN 功能,使公司员工可以访问单位内网,使用内网的业务系统,记录一下调测的经过,把里面一些坑理一理。
环境介绍
公司目前使用的是 RouterBOARD 750G r3 作为核心路由器,接入电信网络。
调测过程
整个主要包括以下几步,配置证书,配置 IP 池,创建 Profile,创建用户,开启服务,放通防火墙。此过程需要使用 WinBox 连接 ROS 路由器。
配置证书
一共需要创建三个证书文件。CA 证书,服务器端证书,客户端证书。
进入System->Certificates->Certificates页面,创建证书。
[图片: 创建证书]
https://static.txisfine.cn/upload/20210212220532.png/pkwatermark
[图片: CA 证书-Key Usage]
https://static.txisfine.cn/upload/20210212220816.png/pkwatermark
[图片: CA 证书-Sign]
https://static.txisfine.cn/upload/20210212221030.png/pkwatermark
继续创建服务器证书,和创建 CA 证书一样,填写 General 页面内容,切换到 Key Usage 页面,按如下勾选。
[图片: 服务器端证书-Key Usage]
https://static.txisfine.cn/upload/20210212221725.png/pkwatermark
[图片: 服务器端证书-Sign]
https://static.txisfine.cn/upload/20210212221929.png/pkwatermark
创建客户端证书,基本操作和之前一样,只是 Key Usage 只需要选择 tls client。点击 Apply 后点击 Sign 开始签名。依然使用 CA 证书进行签名。
创建完成后,应该有三个证书。
[图片: 证书列表]
https://static.txisfine.cn/upload/20210212223017.png/pkwatermark
[图片: 配置导出密码]
https://static.txisfine.cn/upload/20210212223639.png/pkwatermark
配置 IP 池
创建一个用于分配给远程访问用户的 IP 池。
进入IP->IP Pool->Pools页面,创建 IP 池。
[图片: 创建 IP 池]
https://static.txisfine.cn/upload/20210212220350.png/pkwatermark
创建 Profile
进入PPP->Profiles页面,创建一个 PPP Profile。
[图片: openvpn-ppp profile]
https://static.txisfine.cn/upload/20210212224553.png/pkwatermark
创建用户
进入PPP->Secrets页面,创建用户。Name 就是用户名,Password 就是密码。Service 选择 ovpn,表示这个用户仅用于 OpenVPN 服务,Profile 选择刚刚创建的 Profile 文件。
如果需要创建大量用户,只需要创建好一个,其他的用户使用 Copy 快速创建。
开启服务
进入PPP->Interface页面,开启服务。
[图片: OpenVPN 服务配置]
https://static.txisfine.cn/upload/20210212231040.png/pkwatermark
放通防火墙
关键的一步,一般来说防火墙表项不为空,需要在防火墙上对该服务的端口放通。
进入IP->Firewall->Filter Rules页面,添加一个防火墙规则。
Chain 选择 Input,Protocol 选择 TCP,Dst.Port 填写 OpenVPN 的端口。
Action 配置为 accept,进行放通。
需要注意的是,因为规则存在优先级顺序,所以这个规则应该在“拒绝一切非 LAN 口的访问”之前。
[图片: 防火墙表项]
https://static.txisfine.cn/upload/20210212231854.png/pkwatermark
测试连接
服务配置完成,可以使用端口扫描工具测试一下,是否对 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>
```
测试连接
可使用客户端软件进行连接,连接正常且可访问内网应用为测试的标准。
调测总结
虽然可以向导式配置 OpenVPN 服务,复杂点在于创建证书和配置防火墙,切勿照搬,仅供参考!