Автор Тема: Ssh reverse tunnel въпроси  (Прочетена 2717 пъти)

peaceburn

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Ssh reverse tunnel въпроси
« -: Aug 14, 2006, 11:52 »
Здравейте, имам следната схема от машини :

<пс-та в офис> --> <рутер> --> <бтк адсл> ---> <ИНТЕРНЕТ> --> <пс с публичен ип адрес (windows)>

Та значи за да мога да се свързвам с рутера зад адсл-а , съм пуснал в crontab

1 * * * *      ssh -T -R 2922:localhost:22 -N -g -f -i /home/root/.ssh/username_private_key -l "user name" publiciphost.com

Та значи това кара Freesco рутера който шерва нета от бтк, да направи reverse тунел като се закачи към машината publiciphost.com (моята windows машина, с openssh/cygwin) като използа priv/pub key и на ремоте машината мапва порт 2922 да отговаря на localhost:22 ... с две думи на машината с windows порт 2922 е отворен и чрез ssh publiciphost.com -p 2922 се закачам за рутера който е за бтк адсл.

Та на въпроса - понеже тъпото ssh @ рутер, всеки път като се изпълни cron-а прави опит за връзка, ако тунела е активен - то му казва нещо че този порт се ползва вече, и процеса остава да виси ... и така както е нагласено - в първата минута на всеки час да го вдига тунела, става кофти че мноого процеси висят. Сложил съм в крон killall ssh което в 12:00 избива всички процеси, но е тъпо решение ... другия проблем е че на windows машината също висят толкова на брой процеси, sshd.exe :-D , и помпат по ~8mb всеки. Най-тъпото е че открих че процесите не дропват сами , дори да отпадне физическата връзка към интернет на рутера.

Някакви идеи как мога да сетъпна нещата така че да се проверява дали тунела е активен (ама не с ps -aux | grep ssh , щото процеса върви дори и да е прекъсвала връзката и тунела да трябва да се стартира ... ) ?

P.s. цялата дандания е необходима, понеже бтк адсл дава на рутера 192.168.1.1 и рутера си няма публично ип към което да се вържа '<img'>
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Ssh reverse tunnel въпроси
« Отговор #1 -: Aug 14, 2006, 12:15 »
Еми можеш да гледаш отворените портове. Ако имаш отворена TCP връзка към 22-ри порт на отдалечената машината и отворена TCP връзка към 22-ри порт на локалната значи е активен тунела.

Другия вариант е с един shell скрипт да създаваш файл, примерно /var/lock/ssh-tunnel.lock. Ако го има файла, скрипта излиза, ако го няма пуска да се вдигне тунела. И слагаш скрипта в crontab.
Активен

peaceburn

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Ssh reverse tunnel въпроси
« Отговор #2 -: Aug 14, 2006, 15:27 »
Всъщност, и аз си мислех нещо с портовете - ако прожерявам дали 2922 на ремоут машината е отворен, да не се пуска ссх ...  обаче пак не ме кефи ...

с .lock файл е загубена кауза, защото процеса стои дори при прекъсната връзка .... ако мога да настроя ssh процеса да се килва при прекъсване на връзката ... май имаше нещо keep alive , ще погледна.
Активен

morbid_viper

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: (Open)SUSE since v5.3 (1999)
  • Window Manager: KDE ориентиран
    • Профил
Ssh reverse tunnel въпроси
« Отговор #3 -: Aug 15, 2006, 15:50 »
всички бтк adsl-ли имат "външни" ip-та.
това можеш да го провериш като отвориш от вътрешната мрежа showmyip.com.
всъщност имаш късмет, че бтк ти дават частно ip на интерфейса на маршрутизатора. предишната им система беше доста куца и не вървеше както трябва под линукс - тогава на интерфейса се даваше направо "външното" ip. добре, че тази практика я прекратиха ноември'2004

може да не съм разбрал правилно проблема, но това което трябва да направиш е да се обадиш в бтк и да им кажеш да ти пренасочат всички портове по всички протоколи към вътрешното ти ip - 92.168.1.2. естествено ще трябва да си настроиш някаква защитна стена  :-)

така ще можеш да си се връзваш както си трябва.
Активен

-------------------------------------------------
Blessed are we to taste this life of sin!
-------------------------------------------------
Registered Linux user #251276

peaceburn

  • Напреднали
  • *****
  • Публикации: 20
    • Профил
Ssh reverse tunnel въпроси
« Отговор #4 -: Aug 17, 2006, 14:13 »
Всъщност, за мен варианта с private ip ме устройва много добре, така изобщо не се занимавам с firewall и т.н.

А за другите неща - 1-во не искам да се занимавам с бтк - по-специално да им се обаждам да ми отворят порт 22 на адсл за домашен потребител ще ги осъмни поне малко '<img'> Щом съм се занимавал половин ден с тия ссх тунели - ще си ги ползвам ... така или иначе ако ми го отворят, ще трябва да настройвам допълнително рутера за ъпдейт скрипт за dyndns и т.н.

2-ро така настроена врътката с тунелите ми върши идеално работа, само да можеха да не остават толкова много процеси ... сега се замислям че първо може да килвам ссх ,и после да правя нов кънекшън , но е тъпо пак....

Събота и неделя ще чета по въпроса пък барем открия нещо.
Активен

morbid_viper

  • Напреднали
  • *****
  • Публикации: 266
  • Distribution: (Open)SUSE since v5.3 (1999)
  • Window Manager: KDE ориентиран
    • Профил
Ssh reverse tunnel въпроси
« Отговор #5 -: Aug 18, 2006, 15:19 »
виж сега... платил си си - ползвай си го. няма да ти коства много. просто им звъниш на контактния център и без много въпроси по някое време ти пренасочват портовете. тогава няма да се налага да правиш такива еквилибристики и измислици.
аз имам 13 адсл-а към бтк и съм се сблъсквал с туй-онуй. това, което ти казвам е работещият вариант в този случай!
Активен

-------------------------------------------------
Blessed are we to taste this life of sin!
-------------------------------------------------
Registered Linux user #251276