Вопрос: обратный ssh-туннель прослушивает неправильный интерфейс


Я работаю с сервером, который находится за брандмауэром. Я установил туннель ssh для промежуточного сервера в Интернете следующим образом:

remoteuser@behind_fw$ ssh -N -f -R 10002:localhost:22 middleuser@middle

Но я не могу напрямую подключить этот сервер, это не работает:

user@local$ ssh remoteuser@middle -p 10002

Я должен подключиться в два этапа:

user@local$ ssh middleuser@middle
middleuser@middle$ ssh remoteuser@localhost -p 10002

Вывод netstat -l по середине:

tcp        0      0 localhost:10002         *:*                     LISTEN

но это должно быть примерно так:

tcp        0      0 *:10002                 *:*                     LISTEN

как я могу это достичь?


4
2018-05-06 20:10


Источник




Ответы:


Это туннель, открытый на удаленном сервере, этот сервер должен иметь GatewayPorts установлен в да в файле / etc / ssh / sshd_config.

В зависимости от того, какие пользователи этого сервера вы, возможно, захотите использовать Совпадение возможность ограничить эту возможность для пользователя.

Match User middleuser
  GatewayPorts yes

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

Сказав это, как насчет того, чтобы попробовать то, что я считаю немного более чистым решением?

user@local$ ssh -N -f -L 10002:behind_fw:22 middleuser@middle
user@local$ ssh remoteuser@localhost -p 10002

9
2018-05-06 21:40



Также попробуйте GatewayPorts clientspecified сделать ssh подчиняться вашим заказам. Видеть serverfault.com/questions/379344/... - Tino


Предполагая, что вы используете OpenSSH, вам нужно указать адрес привязки. Попробуйте что-нибудь вроде:

ssh -N -f -R *:10002:localhost:22 middleuser@middle

или

ssh -N -f -R :10002:localhost:22 middleuser@middle

Подпись для -R:

-R [bind_address:]port:host:hostport

на OpenSSH. По соображениям безопасности по умолчанию используется localhost, если вы не указали его. Возможно, вам придется изменить GatewayPorts, чтобы заставить его работать в зависимости от вашей конфигурации. Видеть SSH (1) для получения дополнительной информации.


3
2018-05-06 21:08