LINUX.ORG.RU
ФорумAdmin

Проброс нескольких портов через ssh тунель


0

1

Доброго localtime!

Есть у меня сеточка в которой крутятся около десятка supermicro серверов. Всего один внешний ip адрес у этой сети есть (linux машина выступающая в роли nat). На это машину имеется ssh. Пробую заходить туда используя комманду ssh -D 8080 X.X.X.X, потом указываю в браузере использовать порт 8080 как socks. Могу попасть во внутреннюю сеть, попасть на ipmi, про попытке подключиться к виртеальному дисплею выдает ошибку соединения =( Возможно ли как то посредство ssh тунеля пробросить одновременно 4 порта? Нуженые порты как мне кажется:

HTTP: 80 (TCP) HTTPS: 443 (TCP) Remote console: 5900 (TCP) Virtual media: 623 (TCP)

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

Не проще, люди следящие за сеткой коварны и очень злобны... Разрешение на открытие порта ждать около 2х месяцев. =(

mentax ()
 ssh -p <port> <server> -w 4:4 -fN 

откроет соединение с созданием tun-интерфейса

потом на сервере:

 root@server# ifconfig tun4 10.50.0.1 pointopoint 10.50.0.2 
и на клиенте:
 root@client# ifconfig tun4 10.50.0.2 pointopoint 10.50.0.1 
теперь с client можно ходить на server по адресу 10.50.0.1, и обратно по соответствующему адресу тоже. А дальше нужно только разрешить форвард пакетов на сервере и написать с обеих сторон правильные маршруты. Еще нат может понадобиться, зависит от ситуации. Минус: требует рута с обеих сторон.

Это если сервер вам подвластен. А если нет - просто стартуйте несколько сессий, в каждой пробросьте один нужный порт.

pianolender ★★★ ()

Так просто пишите несколько -D, все должно работать.

ValdikSS ★★★★★ ()

Ну или да, если без рута - то ssh -L ip1:host:ip1 -L ip2:host:ip2 ... user@host

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

У меня там еще и вебсервер висит, так что немного другой вариант нашел:

ssh user@ext_server_ip -L127.0.0.1:443:10.1.12.253:443 -L127.0.0.1:5900:10.1.12.253:5900 -L127.0.0.1:5901:10.1.12.253:5901 -L127.0.0.1:5120:10.1.12.253:5120 -L127.0.0.1:5123:10.1.12.253:5123 -C

10.1.12.253 - IPMI машина

В конце направляем браузер на 127.0.0.1:443 и вуаля =)

mentax ()
Ответ на: комментарий от YAR

Годное руководство не подскажете?

А то я так как-то и заткнулся при попытке это все реализовать - пакеты по мосту не на всех машинах переходили..

Адаптеры при это обязаны быть tap, или tun тоже сойдут?

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

Например, так - http://linuxoid.in/VPN-туннель_средствами_ssh

У меня в таком виде работает.

Адаптеры при это обязаны быть tap, или tun тоже сойдут?

Думаю, для мостовой схемы все же правильнее использовать tap - он на более низком уровне в сети работает

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

auto tap8
iface tap8 inet manual
pre-up tunctl -u dk -t $IFACE
post-down tunctl -d $IFACE
up ifconfig $IFACE 0.0.0.0 up
down ifconfig $IFACE down

up ifconfig $IFACE 0.0.0.0 up

Это как понимать?

Вообще, бриджинг двух сетей подразумевает, что в них для адресации должна использоваться одна и та же подсеть, или нет?

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

Вообще, бриджинг двух сетей подразумевает, что в них для адресации должна использоваться одна и та же подсеть

Ну да.

Это как понимать?

А что не так? Вроде все расписано. Первый блок запихиваешь в /etc/network/interfaces, чтобы интерфейс поднимался при загрузке системы и подключался к бриджу. Строчка ниже просто поднимает интерфейс, она не назначает ему адрес.

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

Обычно это не так

То ли мы друг друга не поняли, то ли еще что-то... А что хотелось сделать?

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

Собственно, правильнее было бы поправить - не «должна использоваться одна и та же подсеть», а «может использоваться». Т.е., я подключаюсь к бриджу tap-туннелем и могу на другом конце назначить адрес из той же сети, что и у других хостов, которые к нему подключены, без каких-либо НАТов, форвардингов и прочего - как в случае реального свича и нескольких компьютеров. Но мне ничего не мешает задать какую-то другую сеть и использовать ее

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

Так. В бридж можно связывать только адреса из одной сети, насколько я понимаю? Тогда имеем:

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

В первом случае - просто соединяем оба конца туннеля мостами с физической сетью, всем хорошо

Во втором - нужен роутинг.

Я везде неправ?

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

В бридж можно связывать только адреса из одной сети, насколько я понимаю?

Нет. Я ж написал выше - можно разные. Как и в обычном свиче, в который ты можешь воткнуть 4 компьютера, 2 из которых будут в одной сети, 2 - в другой.

Бридж работает на более низком уровне, ему не важно, с какими IP-адресами у тебя бегают пакеты через него.

По пунктам - ближе, наверное, первый.

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