Hi!
Az lenne a kerdesem, hogy hogyan tudok ssh-val kapcsolodni olyan gepre, ami NAT mogott van. Olyan megoldas erdekelne, amihez a NATboxon nem kell portforwardot beallitani. Valami olyan modszerre gondolok, amikor a kapcsolatot a NAT mogott kep kezdemenyezi az enyem fele, de ezen a kapcsolaton keresztul en tudok belepni arra a gepre, nem pedig forditva.
By(t)e
TBS::Antiemes
- 2965 megtekintés
Hozzászólások
es hogy birod ra a nat mogotti gepet, hogy kezdemenyezzen?
todomasom szerint ez igy eleg bajos, ha egyaltalan lehetseges ...
de azert egy otlet:
irni kell egy progit, ami adott porton figyel (mondjuk inetdvel) es amikor azon a porton jon egy "jel" akkor indit egy pont-pont kapcsolatot a masik geped fele
masik megoldas lehet a VPN ...
ha nagyon hulyeseget irtam javitsatok ki :)
--
TH
- A hozzászóláshoz be kell jelentkezni
Pontosan úgy, ahogy leírod.
Pl.
while true; do
ssh -N -R 10000:localhost:22 lofasz@tavoli.gep.hu
sleep 30
done
ssh -p 10000 tavoli.gep.hu
- A hozzászóláshoz be kell jelentkezni
Hi!
Koszi. Ez tenyleg mukodik.
By(t)e
TBS::Antiemes
- A hozzászóláshoz be kell jelentkezni
Hali.
Nekem is pont ez kene, csak epp nem vilagos valami (ennek ellenere probalkoztam a fentiekkel, sikertelenul). Hatha a megvilagosodas utan sikerrel megvalositom.
Egyszerubbik eset:
Tehat adott egy publikus cimu gep, nevezzuk NETHOST-nak, domain neve: NETHOST.hu. Errol akarjuk az ssh-shellt kezelni, hasznalni, parancsokat osztogatni.
Adott egy masik publikus cimu gep, nevezzuk NATBOX-nak, domain neve: NATBOX.hu. Ezen semmit sem tudunk megvalositani, nem ferunk hozza. Ennek az egyik alhalozatan van a terelgetni kivant gep, nevezzuk PRI_SERV-nek, aminek nincs full domain neve. Nincs publikusan elerheto cime, portja.
A fenti peldaban (az en ertelmezesem szerint, ami nyilvanvaloan teves, hiszen nem mukodott) tehat megirom a PRIV_SERV-en az alabbi scriptet:
while true; do
ssh -N -R 10000:localhost:22 userke@PRIV_SERV
sleep 30
done
es elinditom. Ez 30 mp-enkent lefuttatja az ssh-parancsot. (Ha valamelyik ssh-kapcsolat kiepul, leghamarabb 30 mp mulva lehet kiepiteni megegyet, fuggetlenul attol, hogy az elozo kiepult-e, fennmaradt-e azota is).
A NEHOST-on pedig beirom shellbe, hogy
ssh -p 10000 NATBOX.hu
Ugye????
- A hozzászóláshoz be kell jelentkezni
Mico nem ezt írta. A te esetedben ilyesmi lesz:
while true; do
ssh -N -R 10000:localhost:22 userke@NETHOST
sleep 30
done
ssh -p 10000 NETHOST
- A hozzászóláshoz be kell jelentkezni
Nana, azert nem eszik olyan forron a kasat! Amit Mico es mn3monic irt egyik sem jo. Tegyuk fel hogy megszakad a netkapcsolat, vagy beragad a NAT mogott levo gep es ujrainditjak, vagy akarmi. Ilyenkor a celgepen meg mindig be van jelentkezve az elozo session es foglalja a portot. Ezert amikor a NAT mogotti gep ujra ssh-zik, a port forward sikertelen lesz, de alapbol az ssh kliens emiatt nem lep ki. Igy nem is fog ujrakapcsolodni, es nem fogsz tudni ra ssh-zni tavolrol.
Szoval ez a jo megoldas:
$ cat /usr/local/bin/simonesshtunnel
#!/bin/bash
SSHLOGIN=username@tavoligep.hu
LHOST=localhost
LPORT=22
RPORT=2222
SSHOPTS="-q -N -n -o ServerAliveInterval=90 -o ExitOnForwardFailure=yes -o BatchMode=yes"
while [ true ]; do
ssh -R "*:${RPORT}:${LHOST}:${LPORT}" $SSHOPTS "$SSHLOGIN"
sleep 10
done
Aztan ahhoz hogy minden ujrainditaskor elinduljon gentoon a kovetkezot lehet:
echo '/usr/local/bin/simonesshtunnel &' >> /etc/conf.d/local.start
Annyit meg meg kell jegyezni, hogy ez feltetelezi, hogy van egy
/root/.ssh/id_{rsa,dsa}
privat kulcsod, es az ehhez tartozo publikus kulcs benne van a
username@tavoligep.hu:.ssh/authorized_keys
fileban.
Pisz, Bud
- A hozzászóláshoz be kell jelentkezni
Vagy nem kell scripteket irogatni, hanem egyszeűen csak feltelepíteni az autossh-t... :)
- A hozzászóláshoz be kell jelentkezni
no offense but RTFM dear sir
sshd_config(5) and look for ClientAliveInterval, ClientAliveCountMax.
all the best.
- A hozzászóláshoz be kell jelentkezni
Ez a ket parameter a szerveren meg mindig nem oldja meg a problemat amit irtam. Azazhogy nem jon letre a port forward, ha a NAT mogotti gep elobb csatlakozik ujra mint a szerver eldobja a mar nem mukodo kapcsolatot. Ehhez nagyon kicsi ertekekre kellene allitani a ClientAlive parametereket, de akkor viszont ledobhat a szerver akkor is ha csak ideiglenes halozati problema van.
Azonkivul a TCPKeepAlive alapertelmezetten be van kapcsolva, igy a ClientAlive-ra nincs szukseg ahhoz hogy a szerver eldobja a mar nem elo kapcsolatokat.
- A hozzászóláshoz be kell jelentkezni
+1
- A hozzászóláshoz be kell jelentkezni
Ehh, ok.
Minden bizonnyal.
De akkor tovabbra sem tudom, hogy azon a gepen, ami a NAT mogott van, azon kell-e lefuttatnom a while .... done scriptet? Es ebben a "mailcim" domain resze arra a gepre kell-e mutasson, amiROL majd be kivanok lepni a NAT mogotti gepre? Es ennek a "mailcimnek" melyik gepoen kell real usernek lennie: a NAT mogottin, ahova be akarok lepni, vagy azon, AHONNAN be akarok lepni?
Mert nyilvan tokre ertheto, csak ugye nekem nem...
Es ez meg csak az egyszerubbik eset.
Mi van, ha mindket vegpont NAT mogott van, de elerunk publikus ip-vel rendelkezo gepet USER jogokkal? Akkor mit lehet tenni? (Bar nekem valoszinuleg az egyszerubb eset meg fogja oldani a problemamat, ha sikerul(ne) megerteni...
Koszi fiuk, ha faradoztok a megertetessel!
- A hozzászóláshoz be kell jelentkezni
Olvastam (kicsit hianyos) magyar manualt.
Jol ertem-e, hogy egy NAT mogotti gepen a
-R 10000:localhost:22 tavoliuser@tavolihost
opcio kiepit egy kapcsolatot (a NAT mogul kifele) a tavolihost-ra, es OTT IGENYBE VESZI A 10000-es PORTOT; AMI AZON MEGJELENIK, AZT "LEMASOLJA" a localhost 22-es portjara? Es a tavoliuser azert kell, hogy hozzaferhessen egy porthoz (jelen esetben a 10000-hez) a tavoli gepen?
Mert ha jol ertem, akkor a tavoli gepre bejelentkezett user ugy tud belepni a NAT mogotti gepre, ha a tavoli gepen HELYI portra ssh-zik...
ssh -p 10000 NATmogottiuser@localhost
?
- A hozzászóláshoz be kell jelentkezni
Ki érti ezt...?!? (=up)
- A hozzászóláshoz be kell jelentkezni
"Reverse" ssh tunnel
http://www.brandonhutchinson.com/ssh_tunnelling.html
$ ssh -R remote_port:localhost:22 your_home_computer
ex. $ ssh -R 2048:localhost:22 home.computer.com
At home, you would then run ssh -p 2048 localhost to log into your work computer via ssh.
- A hozzászóláshoz be kell jelentkezni
Pl. így http://hup.hu/node/101021
* Én egy indián vagyok. Minden indián hazudik.
- A hozzászóláshoz be kell jelentkezni
sub
-+-+-+
Dropbox tarhely
Cave Canem
+-+-+-
- A hozzászóláshoz be kell jelentkezni