如何实现OpenVPN的客户端访问RouterOS内网?

RouterOS

1 前言

一个问题,一篇文章,一出故事。

如何设置RouterOS作为OpenVPN客户端?


上面的章节,我们为OpenVPN的服务器端与RouterOS路由器建立了VPN连接,本章将允许其他OpenVPN客户端访问“10.168.88.0/24”段的设备。

2 最佳实践

2.1 本章实验基于如下OpenVPN服务器端

如何基于Rocky Linux 9.x部署OpenVPN服务端?


你需要注意的是,本章某些配置文件与默认的OpenVPN服务器配置文件路径有差异,因此请不要照搬。

2.2 允许OpenVPN服务端与RouterOS的LAN口通讯

In OpenVPN Server

2.2.1 使用CCD配置文件声明客户端的网段

vim /etc/openvpn/server/ccd_tcp/will-mm

创建如下配置,

ifconfig-push 10.8.1.105 10.8.1.106  # 分配固定VPN IP
iroute 10.168.88.0 255.255.255.0    # 声明该客户端的本地网络

需要注意的是,
– 配置文件名称“will-mm”必须与分配的证书名称相同
– 为“10.168.88.0/24”段声明OpenVPN路由器所在的网段地址(声明客户端能访问的本地网络“10.168.88.0/24”)

2.2.2 服务端主配置添加路由转发

vim /etc/openvpn/server/tcp.conf

创建如下配置,

route 10.168.88.0 255.255.255.0      # 添加服务器路由表
client-config-dir /etc/openvpn/server/ccd_tcp

需要注意的是,
– iroute只是声明客户端能访问的本地网络,route才是真正让服务器转发流量的指令。
– 如果多个客户端有相同的iroute,需确保它们的本地网络不冲突(如改用不同子网)。

2.2.3 重启服务使用配置生效

systemctl restart openvpn-server@tcp.service

注:以上重启OpenVPN服务器端,同时RouterOS客户端会自动重启。

2.2.4 OpenVPN服务器端的ping测试

ping 10.168.88.1

注:如果能ping通,则OpenVPN服务器端与客户端内网卡通讯正常。

2.3 允许OpenVPN服务端与RouterOS内网通讯

In OpenVPN Client

2.3.1 允许数据转发

/ip firewall filter add chain=forward action=accept in-interface=openvpn-client
/ip firewall filter add chain=forward action=accept out-interface=openvpn-client
/ip firewall filter add chain=forward action=drop

配置说明,
– 包含“in-interface=openvpn-client”关键字的规则放行来自于虚拟接口openvpn-client的流量
– 包含“out-interface=openvpn-client”关键字的规则放行从虚拟接口openvpn-client出去的流量
– 以上两条规则允许LAN口与OpenVPN口之间相互转发数据

2.3.2 OpenVPN服务器端的ping测试

ping 10.168.88.252

注:如果能ping通,则OpenVPN服务器端与RouterOS内网设备通讯正常。

2.4 允许其他客户端与RouterOS内网设备通讯

In OpenVPN Server

2.4.1 推送路由到其他客户端(可选)

vim /etc/openvpn/server/public.conf

加入如下配置,

push "route 10.168.88.0 255.255.255.0"

需要注意的是,
– 效果是所有客户端连接后会自动添加该路由。
– 可选如果不配置,则你需要在其他客户端手动设置路由

2.4.2 其他客户端的ping测试

ping 10.168.88.252
没有评论

发表回复

VPN
如何基于Ubuntu部署OpenVPN服务端?

1 基础知识 1.1 OpenVPN的介绍 OpenVPN是一个功能齐全的开源SSL VPN解决方案 …

VPN
如何签发OpenVPN客户端证书?

1 前言 一个问题,一篇文章,一出故事。 以下章节在一部服务器上同时运行一个TCP OpenVPN实 …

VPN
如何实现OpenVPN多实例共用配置文件?

1 前言 一个问题,一篇文章,一出故事。 以下章节在一部服务器上同时运行一个TCP OpenVPN实 …