Prosíme přihlašte se nebo zaregistrujte.

Přihlašte se svým uživatelským jménem a heslem.

Autor Téma: SSH tunel a zpět  (Přečteno 6858 krát)

david

  • Člen
  • **
  • Příspěvků: 158
  • Karma: +4/-0
    • Zobrazit profil
SSH tunel a zpět
« kdy: 21 Srpen 2006, 15:30:51 »
Ahoj, mám problém a nevím jak to vyřešit. Pořebuji propojit 2 PC, jedno je na pevné IP a druhé ne. Předpokládám, že bych z PC bez veřejné IP navázal přes SSH spojení s pevnou IP adresou.

A teď ten problém. Existuje nějaká možnost jak spravovat na dálku to PC bez veřejné IP?

Díky

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
SSH tunel a zpět
« Odpověď #1 kdy: 21 Srpen 2006, 15:36:34 »
Jiste, existuje. Musi se ale z pocitace za NAT navazat spojeni smerem na pocitac s verejnou IP. V Gentoo na to pouzivam skript (ktery vymyslel muj kolega v praci, abych si neprivlastnoval cizi myslenky ;)) Preposilam cely email i s vysvetlenim funkce

Kód: [Vybrat]
Ahoj Lukasi,

samozrejme to pocka. Moje idea je vylozene primitivni, ale uplne nezavisla na zpusobu
pripojeni a nevyzaduje zadnou soucinnost od providera.
Ja vlastne NAT na IP urovni nijak neobchazim, protoze prvni ssh connection
musi jit z meho domaciho pocitace ven. Ta pak otevre port forwardovani a ssh connection
zvenku se tuneluje skrz tuto prvni ssh connection otevrenou zevnit NAT.
Prvni ssh connection chci poustet primo z initu, jediny zpusob, jak se to muze
pokazit je, kdyz se kousne modem.
Dalsi uroven vylepseni by byla hardwarovy watchdog na modem, ale ten v nejhorsim
pripade nahradi manzelka, stejne tyto vzdalene pristupy chci nejmin z 50% na reseni
dotazu typu
"proc to a to nefunguje", kdyz jsem zrovna v USA :-).

/etc/inittab:
mo:235:respawn:/usr/local/scripts/cdma2
mo2:235:respawn:/usr/local/scripts/forwardantares

/usr/local/scripts/cdma2:
#!/bin/sh
/usr/local/scripts/cdma 2>1 >/tmp/cdma.log
#in the case it fails do not respawn immediatelly
sleep 120

/usr/local/scripts/forwardantares:
#!/bin/csh -f
su - jiri -c "ssh -R '*:2022:localhost:22' jiri@server.domena.cz -n forever"
#do not respawn immediatelly after it fails
sleep 180


Ahoj, Jirka
pak se objevila drobna komplikace, nekdy tunel prestane tunelovat ale ssh spojeni drzi (antares je jmeno serveru, pres ktery se to tuneluje)

Kód: [Vybrat]
Ahoj Lukasi,

ukazalo se, ze ne vse co teoreticky musi fungovat opravdu funguje - stavalo se mi,
ze to forwardovani portu prestalo fungovat, ale ssh process zustaval bezet, tak
jednou do 24 hodin. Proto jsem pridal jeste watchdog script, ktery posilam, mozna by
se ti hodil, pokud to budes take tak delat:

#!/bin/csh -f
begin:
set portopen=`nmap -P0 -sT antares -p 2022 | grep -c open`
if ( $portopen != 1 ) then
        if ( -e /tmp/forwardantares.pid ) then
                #kill the defunct process group (it should be respawned)
                /bin/kill -9 -- -`cat /tmp/forwardantares.pid`
                rm -f /tmp/forwardantares.pid
        endif
endif
sleep 300
goto begin


Ahoj Jirka
Druhym resenim je presmerovani portu primo na routeru, ktery dela NAT.

david

  • Člen
  • **
  • Příspěvků: 158
  • Karma: +4/-0
    • Zobrazit profil
SSH tunel a zpět
« Odpověď #2 kdy: 21 Srpen 2006, 15:45:05 »
Možná je to blbost, ale nešlo by to tak, že na tom PC bez IP spustím telnet server a na něj se přiopojím? Prostě bych ssh použil jenom jako vytvoření linky ....

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
SSH tunel a zpět
« Odpověď #3 kdy: 21 Srpen 2006, 15:50:19 »
Stroj s pevnou IP: A
Stroj s neverejnou IP (za routerem): B

Zalezi na tom, jak jsou fyzicky ty dva stroje propojene. Jsou stroje A a B ve stejne siti? Nebo stroj A je proste nejaky pocitac s pripojenim k internetu a stroj B je nekde uplne mimo v cizi siti za routerem, ke kteremu nemate pristup?

david

  • Člen
  • **
  • Příspěvků: 158
  • Karma: +4/-0
    • Zobrazit profil
SSH tunel a zpět
« Odpověď #4 kdy: 21 Srpen 2006, 15:52:08 »
každej bude na jiný síti....

a zadání je :
veřejná má spravovat neveřejnou adresu.

david

  • Člen
  • **
  • Příspěvků: 158
  • Karma: +4/-0
    • Zobrazit profil
SSH tunel a zpět
« Odpověď #5 kdy: 21 Srpen 2006, 15:53:17 »
PC s neveřejnou IP je za routerem na který nemám přístup.

Lukáš Svoboda

  • Závislák
  • ****
  • Příspěvků: 3839
  • Karma: +177/-11
    • Zobrazit profil
    • http://linux.euweb.cz
SSH tunel a zpět
« Odpověď #6 kdy: 21 Srpen 2006, 15:58:16 »
OK. Kdyz bude na B bezet telnet server, jak se k nemu chcete pripojit? Mezi vami je jeste nejaky router, ktery by musel forwardovat telnet port (23?) na stroj B. To byste si musel dohodnout se spravcem routeru. My to resime tak, ze stroj s neverejnou adresou (v jedne male siti na druhem konci mesta) pri startu navaze ssh spojeni na server s verejnou adresou u me v praci, ktery bezi porad a nastavi se tunel. Ja se pak z domova (mam take nevejrejnou adresu, to nehraje roli protoze opet funguji jako klient) pripojim k tomu serveru v praci (ten jediny ma v celem retezci verejnou adresu) a vyuzivam navazane spojeni pro ovladani toho vzdaleneho pocitace.

Vy tedy budete muset ze stroje B vzdycky po startu navazat spojeni na stroj A, to znamena, ze stroj A musi bezet vzdy kdyz ma bezet B.

Jednodussi reseni nevidim.

david

  • Člen
  • **
  • Příspěvků: 158
  • Karma: +4/-0
    • Zobrazit profil
SSH tunel a zpět
« Odpověď #7 kdy: 21 Srpen 2006, 16:10:11 »
Jo díky, tohle vypadá schůdně.

Díky všem, teĎ mi držte palec až to budu nastavovat.