The OpenNET Project
 
Поиск (ключи):    ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
  WIKI НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Поддержание SSH-туннеля в активном состоянии при помощи AutoSSH
Иногда необходимо иметь возможность удалённо управлять какими-то системами,
которые находятся за 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.
Получается своеобразный "бумеранг", позволяющий следить за туннелем.
 
23.09.2009 , Автор: Roman Sozinov , Источник: http://blog.sozinov.eu/2009/08/auto... (доп. ссылка 1)
Раздел:    Корень / Безопасность / SSH

Обсуждение [ RSS ]
 
  • 1.1, Сергей, 14:19, 25/09/2009 [ответить] [смотреть все]
  • +/
    Есть еще и другие варианты. На мой взгляд более безопасные и практичные...
    В PuttY - Connection - SSH - Tunnels.
    А чтобы консоль оставалась даже при обрыве связи на долгое время - Screen.
     
     
  • 2.2, ABATAPA, 20:46, 25/09/2009 [^] [ответить] [смотреть все]
  • +/
    > Есть еще и другие варианты. На мой взгляд более безопасные и практичные...
    > В PuttY - Connection - SSH - Tunnels.

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

     
  • 1.3, Жизнеслав, 09:34, 28/09/2009 [ответить] [смотреть все]
  • +/
    1 И где же вы раньше были со своей заметкой про вашего мальчика , когда я з... весь текст скрыт [показать]
     
  • 1.4, anon, 18:36, 29/09/2009 [ответить] [смотреть все]  
  • +/
    Ну вообще, можно и не открывать никаких портов, не всегда есть такая возможность. Просто без опции мониторинга запускать.
    Из man'а:
    Setting the port to 0 turns the monitoring function off, and autossh will only restart ssh upon ssh's exit.
     
  • 1.5, Аноним, 16:38, 30/09/2009 [ответить] [смотреть все]  
  • +/
    Ну ведь костыль же Я так чувствую, скоро мы увидим какую-нибудь хаутушку на тем... весь текст скрыт [показать]
     
     
  • 2.6, Андрей, 16:06, 13/11/2009 [^] [ответить] [смотреть все]  
  • +/
    дык есть такая хаутушка :) - http://www.google.ru/search?sourceid=chrome&ie=UTF-8&q=howto+ssh+pppd
     

    Ваш комментарий
    Имя:         
    E-Mail:      
    Заголовок:
    Текст:

     Добавить заметку
     Версия для печати
     
     Поиск заметки:
     

    Последние заметки
    - 12.05 Организация шифрованного бэкапа с помощью rdiff-backup, encfs и Dropbox
    - 11.05 Настройка беспроводного соединения в Debian GNU/Linux
    - 07.05 Использование Google Drive в Linux
    - 18.04 Использование нескольких сетевых стеков в Linux
    - 15.04 Восстановление стандартного KDE меню после его удаления (например, wine)
    - 11.04 Настройка gmirror при использовании GPT во FreeBSD 9
    - 09.04 Маршрутизатор на базе FreeBSD с приоритизация трафика средствами PF и ALTQ
    - 02.04 Частичное восстановление данных MySQL из бэкапа, созданного с использованием LVM
    - 21.03 Настройка DNSSEC в BIND 9.9
    - 17.03 Набор номера на Cisco IP Phone 7960/7940 из скрипта
    RSS | Следующие 15 записей >>


    ПОДПИШИСЬ НА ЖУРНАЛ Linux Format 2012!

    Журнал "Linux Format" (Линукс Формат)- Единственный в России и странах СНГ журнал на русском языке, посвящённый Linux и свободному ПО. Журнал для IT-директоров, IT-менеджеров, программистов, системных администраторов, учителей школ и преподавателей ВУЗов и всех пользователей ПК. В каждом выпуске: Новости индустрии OpenSource, обзоры новинок свободного ПО, обучающие и методические статьи.

    Каждый, кто оформит подписку, получает бонусы и подарки- объёмные наклейки на системный блок, диск с архивом номеров за 2005-2011 г.г. и ежемесячно электронную версию журнала в pdf-формате.

    Оформить подписку на год


      Закладки на сайте
      Проследить за страницей
    Created 1996-2012 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    RUNNet TopList