LINUX.ORG.RU
ФорумAdmin

multiple port forwarding ssh

 


0

1

По определенным причинам нужно коннектиться по схеме: client -> server A -> server B -> destination

В случае client -> server A -> destination c ssh порт форвардингом вопросов не возникает, а вот как реализовать то что в начале поста?

Если тема уже упоминалась, мои извинения модераторам, гугл не подсказал ничего однозначного.

Ответ на: комментарий от router

Возможно, проще установить VPN или обсудить вопрос с сетевиками

router ★★★★★
()
$ cat <<EOF>> ~/.ssh/config
Host serverB
        ProxyCommand ssh serverA nc %h %p
EOF
$ slogin serverB

PROFIT!!! :) с ключами, так вообще песня.

beastie ★★★★★
()
Ответ на: комментарий от router

В том то и дело, что нужно пускать по этой схеме nxclient, соответственно очень хорошо было бы вписаться в один вызов, причем делаться это должно со стороны клиента

Заниматься пробросом портов чз iptables не хотелось бы

westtrd
() автор топика
Ответ на: комментарий от westtrd

тема подымалась много раз, даже я помню задавался вопросом
у тебя слишком много хопов для решения в один коннект.
Обычно делают через SOCKS прокси:
1) подымаешь коннект до server A
2) коннект сделанный на шаге 1 выступает прокси для коннекта до server B
3) коннект сделанный на шаге 2 выступает прокси для коннекта до destination

zolden ★★★★★
()
Ответ на: комментарий от westtrd

элементарно ;)

ssh -L xxx:localhost:xxx hostA ssh -L xxx:localhost:xxx hopB ssh -L xxx:localhost:xxx destination

или как-то так, хотя второй и третий ssh — это жуткий overkill, т.к. трафик уже шифруется в первом туннеле.

beastie ★★★★★
()
Ответ на: комментарий от zolden

Если destinations несколько, или один, на серверах A и B настраивается автоматический проброс портов в обе стороны и тогда должно работать

ssh destination:2211

westtrd
() автор топика
Ответ на: комментарий от beastie

Вопрос не в том. Прямого доступа к destination нет, server A в публичной сети, а дальше трафик идет чз vpn

Потому и такие извраты :)

westtrd
() автор топика
Ответ на: комментарий от westtrd

дык, что бы избежать разночтений — сторчка представленная мной это не баг лора с преносом строк, а одна команда.

beastie ★★★★★
()
Ответ на: комментарий от westtrd

всё равно не понял. В описанном варианте (я кстати именно про путти под винду) на А и В ничего не настраивается, они просто как SOCKS прокси работают, и порт любой может быть

zolden ★★★★★
()
Ответ на: комментарий от westtrd

суть такая - в путти есть вкладка SSH->Tunnels
SOCKS прокси делается выбором в этом экране Dynamic
1. В свойствах соединения до server A cтавите галочку Dynamic, выбираете локальный порт. Подключаетесь к серверу А
2. В свойствах соединения до сервера B вы указываете 127.0.0.1:порт_выбранный_на_шаге1 в качестве прокси (вкладка Proxy->SOCKS5)
Плюс делаете ещё один динамический прокси туннель по образцу шага 1
Подключаетесь к серверу В на его реальный адрес и реальный порт
3. В свойствах соединения до destination вы указываете 127.0.0.1:порт_выбранный_на_шаге2 в качестве прокси (вкладка Proxy->SOCKS5)
Подключаетесь к destination на его реальный адрес и реальный порт

В итоге получается туннель с несколькими вложенными туннелями

Тут главное уловить идею и не запутаться при настройке - один коннект выступает как прокси и в то же время сам идёт через прокси

zolden ★★★★★
()
Ответ на: комментарий от Harald

Конечно, потому и задан был вопрос, как его пользовать в такой цепочке

westtrd
() автор топика
Ответ на: комментарий от zolden

Пока решил так:

ssh -t hop1 ssh hop2 ssh hop3

Буду еще пробовать с конфигами ssh

westtrd
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.