通过UFW将SSH转发到OpenVPN客户端

我有一个运行OpenVPN网关和ufw的Ubuntu 14服务器。 我们称之为服务器A.

我有永久连接的服务器(服务器B)的IP预留。 它总是连接到OpenVPN并获得10.8.0.10的IP。

我需要将连接转发到服务器A上的端口5010到服务器B的端口22(SSH)。

我在以下的事件中有以下几点:

# NAT table rules *nat :PREROUTING ACCEPT [0:0] # Route SSH to archimedes -A PREROUTING -p tcp -i eth0 --dport 5010 -j DNAT --to-destination 10.8.0.10:22 :POSTROUTING ACCEPT [0:0] # Allow traffic from OpenVPN client to eth0 -A POSTROUTING -s 10.8.0.0/8 -o tun0 -j MASQUERADE # END OPENVPN RULES COMMIT 

DEFAULT_FORWARD_POLICY="ACCEPT"/etc/default/ufw中设置net.ipv4.ip_forward=1/etc/ufw/systl.conf设置

如果我SSH进入服务器,并尝试从它直接SSH到10.8.0.10(服务器B的VPN分配在tun0接口上的IP),我可以连接就好了。

任何尝试连接到服务器A的端口5010失败,超时。 我错过了什么?

  1. 为什么不直接使用VPN连接,而不是一个prerouting魔术?
  2. 如果你不能使用VPN连接,那么最好在你的~/.ssh/config文件中使用ProxyCommand进行SSHconfiguration,直接连接到VPN(如果你不知道如何做,这将是另一个问题)
  3. 你的VPN有多个networking的路由策略? 我们需要更多的细节来看看是否有更多的路线政策可以成为问题的根源。 用iptables检查:

sudo iptables -L -t nat

并检查是否应用预先路由策略。