Назад | Перейти на главную страницу

Разрешить обратное туннелирование SSH (-R), но не локальную пересылку (-L)?

У нас есть клиент с удаленным сервером, который хочет ограничить время, в течение которого мы можем получить доступ к серверу (у большинства клиентов доступ по запросу инициируется локально).

Я настраиваю для них сценарий, чтобы они могли просто запустить его, и он будет подключаться по 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 не имеет отношения к переадресации удаленного порта.