我们有一个公共服务器,它接受来自防火墙后面的多个客户端的SSH连接。
这些客户端中的每一个都使用ssh -R
从Web服务器在端口80到我们的公共服务器的命令来创建反向SSH隧道。
反向SSH隧道的目标端口(客户端)为80,源端口(公共服务器端)取决于用户。我们正在计划维护每个用户的端口地址图。
例如,客户端A会将其Web服务器从端口80传输到我们的端口8000;客户B从80到8001;客户C从80到8002。
Client A: ssh -R 8000:internal.webserver:80 clienta@publicserver
Client B: ssh -R 8001:internal.webserver:80 clientb@publicserver
Client C: ssh -R 8002:internal.webserver:80 clientc@publicserver
基本上,我们试图做的是将每个用户绑定到一个端口,并且不允许他们通过隧道连接到任何其他端口。
如果我们通过结合使用SSH的正向隧道功能ssh -L
,则可以通过使用permitopen=host:port
配置来允许哪个端口被隧道传输。但是,反向SSH隧道没有等效功能。
有没有一种方法可以限制每个用户的反向隧道端口?