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

标签 linux ssh ssh-tunnel

<分区>

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

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

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

例如,客户端 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

基本上,我们正在尝试做的是将每个用户绑定(bind)到一个端口,并且不允许他们通过隧道连接到任何其他端口。

如果我们通过 ssh -L 使用 SSH 的正向隧道功能,我们可以通过使用 permitopen=host:port 配置允许通过隧道传输哪个端口。但是,没有等效的反向 SSH 隧道。

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

最佳答案

您想要做的是限制给定用户可以绑定(bind)到的端口。

此处描述了执行此操作的方法:

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

关于linux - 如何限制反向 SSH 隧道端口?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11267503/

相关文章:

php - ssh2_auth_pubkey_file 获取错误回调返回错误(PHP 7.4,Ubuntu 20)

ssh - 在远程服务器上运行 CouchDB Futon

ssh - SSH反向隧道不适用于Web服务器

linux - 在 Linux 上开始使用 Latex

java - 在 jgit 中配置 known_hosts

ubuntu - Gtk警告** : cannot open display launching background GTK

ssh - 单个 SSH session 中的多个 channel

regex - Sed 查找/内联替换,转义一些字符

linux - JVM控制系统线程

linux - 来自 Cython 的 syscall 或 gettid 系统函数