У нас есть клиент с удаленным сервером, который хочет ограничить время, в течение которого мы можем получить доступ к серверу (у большинства клиентов доступ по запросу инициируется локально).
Я настраиваю для них сценарий, чтобы они могли просто запустить его, и он будет подключаться по SSH к нашей стороне с определенной учетной записью и настроить удаленный туннель (-R), чтобы мы могли подключиться к их серверу с этого момента.
Моя проблема в том, что я не уверен, как правильно заблокировать его, чтобы мы могли получить доступ к обратному туннелю, но он не может одновременно создать локальную пересылку (-L). sshd_config
позволяет мне ограничивать нападающих.
Match User user1
GatewayPorts yes
AllowTcpForwarding yes
PermitOpen 127.0.0.1:12345
Теперь это позволит ему создать обратный туннель, чтобы мы могли подключиться к ним с помощью протокола YYY, но в то же время это также позволило бы ему создать локальный туннель обратно к нам на том же порту.
Я правильно понимаю? Есть ли способ разрешить обратные туннели, но запретить все локальные пересылки?
На странице руководства 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 не имеет отношения к переадресации удаленного порта.