The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Раздел полезных советов: Поддержание SSH-туннеля в активном ..."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Раздел полезных советов: Поддержание SSH-туннеля в активном ..."  +/
Сообщение от auto_tips (??) on 25-Сен-09, 14:19 
Иногда необходимо иметь возможность удалённо управлять какими-то системами, которые находятся за firewall'ами,
которые Вы не контролируете. В таких случаях помогают ssh-тунели с использованием перенаправления
(forwarding) портов. Например, допустим имеется удалённая машина trick, которая находится за маршрутизатором
в удалённой локальной сети, и вторая машина rose имеющая внешний ip-адрес. Для того, чтобы иметь
возможность с rose заходить на trick (либо использовать какой-то сервис на trick), необходимо поднять
туннель с использованием перенаправления удаленных портов (remote port forwarding):

   ssh -f -N username@rose -R 3722:127.0.0.1:22

Получаем такую картину: на rose в списке открытых портов появляется порт 3722, который на самом деле
перенаправляет все пакеты на 22-й порт trick-системы. После этого можно логиниться через ssh на trick из rose:

   ssh username@127.0.0.0 -p 3722

А что делать, чтобы тунели были постоянно доступны? Ведь ssh-соединения бывают рвутся
и тогда опять необходимо с trick-системы инициировать тунель. А если trick находится в 100 км от Вас?
А если их таких у Вас 20? :) Вот тут-то и помогает замечательная вещь - autossh, утилитка занимающаяся тем,
что поддерживает поднятые ssh-туннели в рабочем состоянии. Перед её запуском необходимо установить
переменную AUTOSSH_PORT, указывающую номер порта, который будет использоваться для heartbeat-пакетов
на предмет того - жив ли тунель.

Также, если туннели необходимо поднимать во время старта системы, советуют установить переменную
AUTOSSH_GATETIME=0. Переменная AUTOSSH_DEBUG позволит получить из логов дополнительную информацию о ходе процесса.

   export AUTOSSH_DEBUG=1
   export AUTOSSH_GATETIME=0
   export AUTOSSH_PORT=20037
   autossh -f -N username@rose -R 3722:127.0.0.1:22

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

В приведенном выше примере кроме портов rose:3722 и trick:22 поднимается ещё 3 дополнительных
(так как установлена переменная AUTOSSH_PORT) - trick:20037, rose:20037, trick:20038, связанных
между собой в цепочку для прохождения heartbeat-пакета. Таким образом, что отправляя запрос
на trick:20037, пакет приходит на rose:20037, который в свою очередь перенаправляет его дальше на trick:20038.
Получается своеобразный "бумеранг", позволяющий следить за туннелем.


URL: http://blog.sozinov.eu/2009/08/autossh.html http://linux.com/archive/feature/134133
Обсуждается: http://www.opennet.me/tips/info/2157.shtml

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH"  +/
Сообщение от Сергей (??) on 25-Сен-09, 14:19 
Есть еще и другие варианты. На мой взгляд более безопасные и практичные...
В PuttY - Connection - SSH - Tunnels.
А чтобы консоль оставалась даже при обрыве связи на долгое время - Screen.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Поддержание SSH-туннеля в активном состоянии при помощи Auto..."  +/
Сообщение от ABATAPA (ok) on 25-Сен-09, 20:46 
> Есть еще и другие варианты. На мой взгляд более безопасные и практичные...
> В PuttY - Connection - SSH - Tunnels.

Мда... А прочитанного Вы не поняли...
Какой PuTTY? Речь идет об "обратном" туннеле, например, из-за NAT. Если это сервер, на нем Linux, нет GUI, и нет PuTTY?

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH"  +/
Сообщение от Жизнеслав email on 28-Сен-09, 09:34 
1. И где же вы раньше были :) со своей заметкой "про вашего мальчика", когда я забивал всё посекундно в cron, перед этим перерыв пол-инета, и не найдя никакой информации по автостарту ssh?

2. было бы полезно указывать приглашение командной строки:
trick# ssh...

3. Судя по:
autossh --help
/usr/lib/autossh/autossh: invalid option -- -
usage: autossh [-V] [-M monitor_port[:echo_port]] [-f] [SSH_OPTIONS]

    -M specifies monitor port. Overrides the environment
       variable AUTOSSH_PORT. 0 turns monitoring loop off.
       Alternatively, a port for an echo service on the remote
       machine may be specified. (Normally port 7.)
    -f run in background (autossh handles this, and does not
       pass it to ssh.)
    -V print autossh version and exit.

Environment variables are:
    AUTOSSH_GATETIME    - how long must an ssh session be established
                          before we decide it really was established
                          (in seconds)
    AUTOSSH_LOGFILE     - file to log to (default is to use the syslog
                          facility)
    AUTOSSH_LOGLEVEL    - level of log verbosity
    AUTOSSH_MAXLIFETIME - set the maximum time to live (seconds)
    AUTOSSH_MAXSTART    - max times to restart (default is no limit)
    AUTOSSH_MESSAGE     - message to append to echo string (max 64 bytes)
    AUTOSSH_PATH        - path to ssh if not default
    AUTOSSH_PIDFILE     - write pid to this file
    AUTOSSH_POLL        - how often to check the connection (seconds)
    AUTOSSH_FIRST_POLL  - time before first connection check (seconds)
    AUTOSSH_PORT        - port to use for monitor connection
    AUTOSSH_DEBUG       - turn logging to maximum verbosity and log to
                          stderr
порт контроля целостности соединения можно назначить и ключом -M...

4. СПАСИБО!

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH"  +/
Сообщение от anon on 29-Сен-09, 18:36 
Ну вообще, можно и не открывать никаких портов, не всегда есть такая возможность. Просто без опции мониторинга запускать.
Из man'а:
Setting the port to 0 turns the monitoring function off, and autossh will only restart ssh upon ssh's exit.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH"  +/
Сообщение от Аноним (??) on 30-Сен-09, 16:38 
Ну ведь костыль же.

Я так чувствую, скоро мы увидим какую-нибудь хаутушку на тему "простой vpn безо всяких клиентов через ssh+pppd и контролем через autossh".

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

6. "Поддержание SSH-туннеля в активном состоянии при помощи Auto..."  +/
Сообщение от Андрей (??) on 13-Ноя-09, 16:06 
дык есть такая хаутушка :) - http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=howto...
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "Раздел полезных советов: Поддержание SSH-туннеля в активном ..."  +/
Сообщение от gluxoi (ok) on 17-Мрт-15, 11:03 
Необходимо получить доступ до машины которая сидит за NAT.
ssh -f -N username@rose -R 3722:127.0.0.1:22
Данная команда у меня выполнятся, и я получаю доступ из вне. Но через какое-то время отваливаться.
Подскажите куда это все правильно прописать, чтобы и после перезагрузки автоматом работало.
   export AUTOSSH_DEBUG=1
   export AUTOSSH_GATETIME=0
   export AUTOSSH_PORT=20037
   autossh -f -N username@rose -R 3722:127.0.0.1:22
ОС FreeBSD 10.1
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Раздел полезных советов: Поддержание SSH-туннеля в активном ..."  +/
Сообщение от Александр email(??) on 24-Фев-16, 18:03 
туда же где ты эту коменду пишешь
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH"  +/
Сообщение от ShaHo (??) on 12-Июн-18, 14:26 
А вот так можно добавить ещё и автологин, к примеру, для поднятия SOCKS5-прокси:
# sshpass -p "PaSsWoRd" autossh -M 1080 -2 -4 -C -l NL -p 22 -D 192.168.0.1:1080 11.22.33.44
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру