IPTables根据连接string重新路由SSH?

我们正在使用一个云服务器(Debian Squeeze),公共IP上的公共端口将stream量传送到内部服务器。 我们正在寻找一种方法来使用IPTables和SSH基于ssh连接string的某些部分(或沿着这些线路)iptables将重新路由ssh连接到“正确”的内部服务器。 这将允许我们使用一个公共端口,然后将ssh连接重新路由到单个服务器。

所以,比如我们希望做一些如下的事情:

看来,iptables的“string”方面并没有做我们想要的。

我们目前可以基于我们使用的IP表语法进行路由,但是依赖于每个服务器都有一个单独的公共端口,并希望使用一个公共的公共端口,然后根据某些部分SSH连接string或其他手段。

有什么build议么? 谢谢!

这是不可能的。 你和ssh服务器之间的通信是完全encryption的,iptables无法查看数据包内部,因此只能根据发送和接收端的IP /端口进行匹配。

我将在公共可访问的机器上设置不同的端口,并通过iptables将它们转发给后台的机器,然后在你的ssh客户端configuration(〜/ .ssh / config)中执行如下操作:

 Host machineA HostName your-public-machine Port 12341 Host machineB HostName your-public-machine Port 12342 Host machineC HostName your-public-machine Port 12343 

有了这个configuration,你可以运行ssh machineAssh machineB或者ssh machineC并且到达正确的机器。