我们有一位拥有远程服务器的客户,他想要限制我们访问服务器的时间(大多数客户都是在本地发起按需访问的)。
我正在为他们设置一个脚本,以便他们可以直接启动它,然后它就会使用特定帐户通过 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 与远程端口转发无关。