如何限制反向SSH隧道端口?

时间:2012-06-29 19:00:38

标签: linux ssh ssh-tunnel

我们有一个公共服务器,它接受来自防火墙后面的多个客户端的SSH连接。

这些客户端中的每一个都使用ssh -R命令从端口80的Web服务器到我们的公共服务器创建反向SSH隧道。

反向SSH隧道的目标端口(在客户端)是80,源端口(在公共服务器端)取决于用户。我们计划为每个用户维护一个端口地址映射。

例如,客户端A将其端口80的Web服务器隧道传送到我们的端口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隧道没有等价物。

有没有办法限制每个用户的反向隧道端口?

1 个答案:

答案 0 :(得分:1)

您要做的是限制给定用户可以绑定的端口。

这里描述了如何做到这一点:

http://www.linuxquestions.org/questions/linux-server-73/how-can-i-restrict-ports-for-users-to-bind-to-667153/