我有一台运行 Ubuntu 和 OpenSSH 守护进程的服务器。我们称之为S1。
我使用来自客户端机器的这个服务器(让我们称其中一个为 C1)通过使用远程端口转发来执行 SSH 反向隧道,例如:
ssh -R 1234:localhost:23 login@S1
Run Code Online (Sandbox Code Playgroud)
在 S1 上,我使用默认的 sshd_config 文件。据我所知,任何在 S1 上拥有正确凭据 {login,pwd} 的人都可以登录 S1 并进行远程端口转发和本地端口转发。此类凭据将来可能是证书,因此据我所知,任何获取证书的人都可以从其他任何地方(不一定是 C1)登录 S1,从而创建本地端口转发。
对我来说,允许本地端口转发太危险了,因为它允许创建某种公共代理。我正在寻找一种仅禁用 -L 转发的方法。
我尝试了以下操作,但这会禁用本地和远程转发:
AllowTcpForwarding No
Run Code Online (Sandbox Code Playgroud)
我还尝试了以下方法,这只允许 -L 到 SX:1。总比没有好,但仍然不是我需要的,这是一个“无”选项。
PermitOpen SX:1
Run Code Online (Sandbox Code Playgroud)
所以我想知道是否有办法,这样我就可以禁止所有本地端口转发写如下内容:
PermitOpen none:none
Run Code Online (Sandbox Code Playgroud)
以下是个好主意吗?
PermitOpen localhost:1
Run Code Online (Sandbox Code Playgroud)