假设我有三台机器
我要去的服务器
B-我所来自的客户
C-B子网中的另一个客户
现在,通过在客户机B中执行此操作,为端口1235设置了动态端口转发。
ssh -D 1235 a@A其中,A是服务器A上的用户名。
现在,我只能从B连接到这个端口1235,因为它绑定到本地主机。如果我将命令修改为
ssh -D C:1235 a@A然后只有C才能连接到B的端口1235,而不能连接B本身。还有第三种选择,那就是
ssh -D 0.0.0.0:1235 a@A这样B和C都可以连接到B的端口1235,但是B和C子网中的所有其他机器也可以连接到B和C。我真正想要的是一种绑定动态端口的方法,只允许B和C连接到它,而不是任何其他机器。我怎样才能做到这一点?
发布于 2014-07-12 14:57:36
使用带有SSH的-g选项,然后将防火墙规则配置为只允许C连接到端口。
-g Allows remote hosts to connect to local forwarded ports.然后命令如下:
ssh -g -D 1235 a@A发布于 2014-07-12 15:12:57
据我所知,SSH本身不会在任何情况下检查源IP地址(它们无论如何都可能被欺骗)。因此,您可能必须在B上使用数据包筛选器(例如iptables)并设置它,以便具有目的地端口1235的传入TCP数据包必须有B作为它们的源地址。
https://unix.stackexchange.com/questions/144181
复制相似问题