如何让 OpenVPN 客户端 (Mikrotik RouterOS) OpenVPN 服务器 (Debian/Linux) 设置运行

如何让 OpenVPN 客户端 (Mikrotik RouterOS)  OpenVPN 服务器 (Debian/Linux) 设置运行

我在使 MT 与 OpenVPN 服务器 (Debian) 配合使用时遇到了一些问题。我可以成功连接到 OVPN 服务器,但流量不会通过 OVPN 服务器路由。这是我的配置。

设置 -https://i.stack.imgur.com/AAH9Y.jpg

OpenVPN 服务器(Debian/Linux)配置

# 猫/etc/openvpn/server.conf
本地 95.2.171.3
端口 1194
协议 TCP
开发调谐

ca 证书
证书服务器.crt
密钥服务器.key
dh dh.pem

服务器 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

客户端配置目录 ccd
路由 192.168.81.0/24 255.255.255.0

保持活动 10 120
tun-mtu 1500
mssfix 1450

密码 AES-256-CBC
验证 sha1

持久密钥
坚持-tun

状态 /var/log/openvpn-status.log
日志附加 /var/log/openvpn.log

动词 5
crl 验证 /etc/openvpn/easy-rsa/pki/crl.pem

# 猫/etc/openvpn/ccd/客户端
iroute 192.168.81.0 255.255.255.0 10.8.0.2
ifconfig-推 10.8.0.2 10.8.0.1

# 猫/proc/sys/net/ipv4/ip_forward
1

#netstat -an |复制代码
tcp 0 0 95.2.171.3:1194 0.0.0.0:* 侦听
tcp 0 0 95.2.171.3:1194 81.190.190.100:62973 已建立

# ifconfig
eth0 链路封装:以太网 HWaddr 20:cf:30:f2:a8:76
          inet 地址:95.2.171.3 Bcast:95.2.171.31 掩码:255.255.255.224
          inet6 地址:fe80::22cf:30ff:fef2:a876/64 范围:链接
          上行广播运行多播 MTU:1500 度量:1
          RX 数据包:255189 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:333054 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:1000
          RX 字节:34521411 (32.9 MiB) TX 字节:367074147 (350.0 MiB)
          中断:26 基址:0x8000

lo 链路封装:本地环回
          inet 地址:127.0.0.1 掩码:255.0.0.0
          inet6 地址:::1/128 范围:主机
          上行环回运行 MTU:16436 度量:1
          RX 数据包:15579 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:15579 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:0
          RX 字节:1326071(1.2 MiB)TX 字节:1326071(1.2 MiB)

tun0 链接封装:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet 地址:10.8.0.1 PtP:10.8.0.2 掩码:255.255.255.255
          UP POINTOPOINT 正在运行 NOARP 多播 MTU:1500 度量:1
          RX 数据包:57 错误:0 丢弃:0 超限:0 帧:0
          TX 数据包:6 错误:0 丢弃:0 超限:0 载波:0
          碰撞:0 txqueuelen:100
          RX 字节:6669(6.5 KiB)TX 字节:504(504.0 B)

# netstat -rn
内核 IP 路由表
目标网关 Genmask 标志 MSS 窗口 irtt Iface
10.8.0.2 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
95.2.171.0 0.0.0.0 255.255.255.224 U 0 0 0 eth0
192.168.81.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0
0.0.0.0 95.2.171.30 0.0.0.0 UG 0 0 0 eth0

# iptables -S
-P 输入接受
-P 转发接受
-P 输出接受
-A 输入-i lo -j 接受
-A 输入 -d 127.0.0.0/8 -i !lo -j REJECT --拒绝 icmp 端口不可达
-A 输入-i tun0 -j 接受
-A 输入 -m 状态 --状态相关,已建立 -j 接受
-A 输入-p tcp -m tcp --dport 1194 -j 接受
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7
-A 输入 -j 拒绝 --拒绝 icmp 端口不可达
-A 输出 -j 接受

# iptables -t nat -S
-P 预路由接受
-P 路由后接受
-P 输出接受
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --到源 95.2.171.3
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --到源 95.2.171.3
-A POSTROUTING -s 10.8.0.0/24 -j SNAT --到源 95.2.171.3

# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84)字节数据。
来自 8.8.8.8 的 64 字节:icmp_req=1 ttl=55 时间=12.9 毫秒
来自 8.8.8.8 的 64 字节:icmp_req=2 ttl=55 时间=12.8 毫秒

这是我在 OpenVPN 服务器(Debian/Linux)上的所有配置。

OpenVPN 客户端(Mikrotik RouterOS 6)配置

/界面打印
标志:D - 动态,X - 禁用,R - 运行,S - 从属
 # 名称类型实际 MTU L2MTU 最大 L2MTU MAC 地址
 0 R 以太1 以太 1500 1600 4076 D4:CA:6D:31:14:F4
 1 S 以太2 以太 1500 1598 2028 D4:CA:6D:31:14:F5
 2 S 以太3 以太 1500 1598 2028 D4:CA:6D:31:14:F6
 3 S 以太4 以太 1500 1598 2028 D4:CA:6D:31:14:F7
 4 S 以太5 以太 1500 1598 2028 D4:CA:6D:31:14:F8
 5 RS WLAN1 WLAN 1500 1600 D4:CA:6D:31:14:F9
 6 R 桥1桥 1500 1598 D4:CA:6D:31:14:F5
 7 R ovpn-输出1 ovpn-输出 1500 FE:3E:27:7D:61:8C

 /接口桥打印
标志:X - 已禁用,R - 正在运行
 0 R 名称=“bridge1” mtu=自动 实际mtu=1500 l2mtu=1598 arp=启用 mac地址=D4:CA:6D:31:14:F5 协议模式=rstp 优先级=0x8000 自动mac=是 管理mac=00:00:00:00:00:00 最大消息年龄=20s 转发延迟=15s 传输保持计数=6 老化时间=5m

/接口桥端口打印
标志:X - 禁用,I - 非活动,D - 动态
 # 接口桥优先级路径成本范围
 0 I ether2 bridge1 0x80 10 无
 1 我 ether3 桥接1 0x80 10 无
 2 我 ether4 桥接1 0x80 10 无
 3 我 ether5 桥接1 0x80 10 无
 4 wlan1 桥接1 0x80 10 无

 /ip 地址打印
标志:X - 禁用,I - 无效,D - 动态
 # 地址网络接口
 0 192.168.81.1/24 192.168.81.0 桥接1
 1 D 192.168.7.200/24 192.168.7.0 以太1
 2 D 10.8.0.2/32 10.8.0.1 ovpn-out1

 /ip 防火墙 nat 打印
标志:X - 禁用,I - 无效,D - 动态
 0 链 = srcnat 动作 = 伪装 到地址 = 0.0.0.0 出接口 = ether1 日志 = 无日志前缀 =“”

 /ip 路由打印
标志:X - 禁用、A - 活动、D - 动态、C - 连接、S - 静态、r - rip、b - bgp、o - ospf、m - mme、B - 黑洞、U - 不可达、P - 禁止
 # DST-地址 PREF-SRC 网关距离
 0 广告 0.0.0.0/0 192.168.7.1 0
 1 ADC 10.8.0.1/32 10.8.0.2 ovpn-out1 0
 2 ADC 192.168.7.0/24 192.168.7.200 以太1 0
 3 ADC 192.168.81.0/24 192.168.81.1 桥接1 0

 /接口 ovpn 客户端打印
标志:X - 已禁用,R - 正在运行
 0 R 名称=“ovpn-out1” mac 地址=FE:3E:27:7D:61:8C 最大 mtu=1500 连接到=195.13.171.3 端口=1194 模式=ip 用户=“客户端” 密码=“” 配置文件=默认 证书=客户端 身份验证=sha1 密码=aes256 添加默认路由=否

 /ping 10.8.0.1
  SEQ 主机大小 TTL 时间状态
    0 10.8.0.1 56 64 6毫秒
    1 10.8.0.1 56 64 9毫秒
    2 10.8.0.1 56 64 7毫秒
    3 10.8.0.1 56 64 6毫秒
    发送=4 接收=4 数据包丢失=0% 最小 rtt=6ms 平均 rtt=7ms 最大 rtt=9ms

如您所见,我可以从 Mikrotik ping OpenVPN 服务器。但是当我从本地 PC 使用互联网时,它显示 81.190.190.100 IP 地址,而不是我想要看到的 IP 地址 - OpenVPN 服务器 IP - 95.2.171.3。

我可以从笔记本电脑 (192.168.81.100/24) 成功 ping/traceroute 到 10.8.0.1,但不明白为什么它没有通过 VPN 隧道路由。我想我在服务器 (Linux) 或客户端 (mikrotik) 上的路由方面遗漏了一些东西。

谢谢你的帮助!我玩这个已经有一段时间了,但无法运行它 :(

祝你有美好的一天!

答案1

您的客户端未通过 OVPN 隧道路由,因为 mikrotik 上没有路由(默认网关)!

因此,在 mikrotik 上添加另一个网关,其路由标记的目的地为 OVPN 服务器 10.8.0.1

 /ip route add dst-address=0.0.0.0/0 gateway=10.8.0.1 routing-mark=clientmark

当然,你应该为路由标记添加一个 mangle 规则,例如:

/ip firewall mangle add action=mark-routing chain=prerouting src-address=192.168.81.0/24 new-routing-mark=clientmark

还应该有一个针对客户端(源地址 192.168.81.0/24)的 nat 规则。

ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1

相关内容