我正在尝试配置 openvpn 和 shorewall 以便能够在没有 SSH 隧道的情况下连接到虚拟机。 VM 是具有默认 NAT 网络的 KVM。
VPN 客户端 -> VM 主机 -> VM 来宾(22,80,443 等)
VPN Client IP 10.8.0.6
VM Guest IP 192.168.20.10
我已按照教程进行操作https://www.digitalocean.com/community/tutorials/how-to-set-up-an-openvpn-server-on-debian-9 唯一的区别是我使用 shorewall 而不是 ufw,并且似乎我在 shorewall 配置方面遇到问题。
VM Guest 能够连接到 VPN 客户端,但 VPN 客户端无法访问任何虚拟机。在岸墙日志中,我没有看到任何东西被阻止,所以问题是一种通信方式如何工作,反之亦然。
Client routes:
10.8.0.1 via 10.8.0.5 dev tun0
10.8.0.5 dev tun0 proto kernel scope link src 10.8.0.6
192.168.20.0/24 via 10.8.0.5 dev tun0
VPN server / VM HOST routes:
10.8.0.0/24 via 10.8.0.2 dev tun0
10.8.0.2 dev tun0 proto kernel scope link src 10.8.0.1
192.168.20.0/24 dev guest proto kernel scope link src 192.168.20.1
客户端上的 Tcpdump(客户端 -> vm guest),连接被拒绝:
12:46:54.981923 IP eclipse.46456 > 192.168.20.10.ssh: Flags [S], seq 1605744015, win 64240, options [mss 1460,sackOK,TS val 2676138055 ecr 0,nop,wscale 7], length 0
12:46:55.011195 IP 10.8.0.1 > eclipse: ICMP 192.168.20.10 tcp port ssh unreachable, length 68
客户端上的 Tcpdump(vm guest -> 客户端),一切正常:
12:50:15.733952 IP 10.8.0.1.46950 > eclipse.ssh: Flags [S], seq 2778177135, win 29200, options [mss 1358,sackOK,TS val 1743090490 ecr 0,nop,wscale 6], length 0
12:50:15.734087 IP eclipse.ssh > 10.8.0.1.46950: Flags [S.], seq 3341641521, ack 2778177136, win 65160, options [mss 1460,sackOK,TS val 3210526372 ecr 1743090490,nop,wscale 7], length 0
12:50:15.763552 IP 10.8.0.1.46950 > eclipse.ssh: Flags [.], ack 1, win 457, options [nop,nop,TS val 1743090497 ecr 3210526372], length 0
12:50:15.763788 IP 10.8.0.1.46950 > eclipse.ssh: Flags [P.], seq 1:41, ack 1, win 457, options [nop,nop,TS val 1743090498 ecr 3210526372], length 40
12:50:15.763816 IP eclipse.ssh > 10.8.0.1.46950: Flags [.], ack 41, win 509, options [nop,nop,TS val 3210526401 ecr 1743090498], length 0
任何帮助表示赞赏。