允许 SSH 反向隧道(-R),但不允许本地转发(-L)?

允许 SSH 反向隧道(-R),但不允许本地转发(-L)?

我们有一位拥有远程服务器的客户,他想要限制我们访问服务器的时间(大多数客户都是在本地发起按需访问的)。

我正在为他们设置一个脚本,以便他们可以直接启动它,然后它就会使用特定帐户通过 SSH 连接到我们这边并设置远程隧道 (-R),以便我们可以从该点访问他们的服务器。

我的问题是,我不确定如何正确锁定它,以便我们可以访问反向隧道,但他不能同时创建本地转发(-L)。 sshd_config允许我限制转发。

Match User user1
    GatewayPorts       yes
    AllowTcpForwarding yes
    PermitOpen         127.0.0.1:12345

现在,这将允许他创建一个反向隧道,以便我们可以使用协议 YYY 连接回他们,但同时,它也允许他在同一端口上创建一个回到我们的本地隧道。

我理解得对吗?有没有办法允许反向隧道,但拒绝所有本地转发?

答案1

sshd_config 手册页包含所有内容:

 AllowTcpForwarding
         Specifies whether TCP forwarding is permitted.  The available
         options are yes (the default) or all to allow TCP forwarding, no
         to prevent all TCP forwarding, local to allow local (from the
         perspective of ssh(1)) forwarding only or remote to allow remote
         forwarding only.  Note that disabling TCP forwarding does not
         improve security unless users are also denied shell access, as
         they can always install their own forwarders.

就你的情况而言,你可能需要:

Match User user1
    GatewayPorts       yes
    AllowTcpForwarding remote
    PermitOpen         127.0.0.1:12345

并且可能 PermitOpen 与远程端口转发无关。

相关内容