在VPN的远端公开一台机器

我们使用VPN将远程办公室连接到我们的主办公室,而远程办公室的机器需要将端口22暴露在外部互联网上。

并发症:

  • 主办公室有一个固定的IP地址。
  • 远程办公室有一个浮动的IP地址。
  • 远程办公室位于我们无法控制的路由器后面。
  • 来自远程办公室的所有stream量都需要通过主办公室的VPN。

主办公室和远程办公室都有DrayTek Vigor2925系列路由器,具有最新的固件。 远程办公室的Draytek上游的路由器是一个廉价的黑匣子,没有DDNS或VPNfunction,或任何看起来有用的东西。

事情的工作:

  • 我们已经能够通过拨号VPN将远程办公室连接到我们的networking。 如果这样,我们可以从主办公室连接到目标机器。
  • 我们可以使用路由器的端口转发设置将连接固定的IP地址转发给总公司的一台机器。
  • 我们可以从固定IP地址转发到远程办公室的一台机器。

我的理解,从DrayTek的文档和其他地方,NAT是不兼容的IPSec隧道,特别是身份validation头,但它应该是可以build立一个VPN使用L2TP和IPSec封装,如果两个设备支持NAT-T,路由器支持 。

所以:我们设置了远程办公室,使用“带有IPsec策略的L2TP”,closures身份validation头,设置主办公室路由器将端口转发到目标机器,并使用telnet接口检查vpn -passthrough已closures,但我们仍无法连接。

另外,如果我们可以读取远程办公室的浮动IP地址,我们可以使用dynamicDNS解决scheme。 但是,我们不控制远程办公室上游的路由器,而是通过办公室的VPN转发所有stream量:远程办公室中的所有机器都认为其面向公众的IP地址是属于总部的固定地址。

我们几乎要购买Raspberry Pi来插入上游路由器,并使用它来运行wget s icanhazip.com的cron作业。

所以…我在路由器configuration中错过了一个步骤吗? 或者有没有一种从VPN内部读取IP地址的方法?

所有来自远程办公室的stream量是否都通过VPN,例如,vpn是默认网关? 如果没有,那么你可能需要把所有从互联网连接到远程机器上的端口22的连接。 否则连接将通过远程办公室的互联网连接返回。

另一种可能是通过SSH进行远程端口转发,例如通过执行ssh -R 22:127.0.0.1:22 <main gateway>