Fórum Root.cz

Hlavní témata => Sítě => Téma založeno: Panther 06. 12. 2010, 10:33:08

Název: Spojení dvou PC přes PC s veřejnou IP
Přispěvatel: Panther 06. 12. 2010, 10:33:08
Dobry den,
chtel bych pozadat o radu se spojenim dvou PC A, B v ruznych sitich za proxy skrze SSH pres PC s verejnou adresou C. Z obou pocitacu A, B se pripojuji k sshd na C pres corkscrew. Bohuzel nevim jak dal s port forwardingem, protoze proxy mi povoli jen port 443. Predpokldam, ze reseni uz nebude slozite, jen potrebuji nakopnout spravnym smerem.
Vsem dekuji za prispevky.
Název: Re: Spojeni 2 PC za proxy pres PC s verejnou IP
Přispěvatel: alfi 06. 12. 2010, 13:04:21
man ssh

     -L [bind_address:]port:host:hostport
             Specifies that the given port on the local (client) host is to be forwarded to the given host and port on the remote
             side.  This works by allocating a socket to listen to port on the local side, optionally bound to the specified
             bind_address.  Whenever a connection is made to this port, the connection is forwarded over the secure channel, and a
             connection is made to host port hostport from the remote machine.

Název: Re: Spojení dvou PC přes PC s veřejnou IP
Přispěvatel: Panther 07. 12. 2010, 09:17:51
Velice dekuji za radu, ale v manualovych strankach umim hledat. Zminenou variantu (-L i -W) jsem zkousel a prave protoze jsem nepochodil, hledam radu na foru.
Nejsem si totiz jisty nastavenim portu, ktere forwardovat vzhledem ke corksrew a proxy. Na proxy mam povoleny jen 443. Mel bych na A spustit prikaz ssh -L 443:ip_C:1000? A jak se pripojit z PC B na C? Stejnym prikazem? Forwadring je pro me naprosta novinka, diky.
Název: Re: Spojení dvou PC přes PC s veřejnou IP
Přispěvatel: Ondřej Caletka 07. 12. 2010, 09:58:50
Jedno z možných řešení ssh tunelování:

Na počítači A:
Kód: [Vybrat]
ssh -R 22001:localhost:22 -fN pocitacC.example.com
Na počítači B:
Kód: [Vybrat]
ssh -R 22002:localhost:22 -fN pocitacC.example.com
Na kterémkoli počítači, který vidí na počítač C:
Přihlášení na A:
Kód: [Vybrat]
ssh -o ProxyCommand='ssh -q -W localhost:22001 pocitacC.example.com' pocitacA.natomnezalezi.example.comPřihlášení na B:
Kód: [Vybrat]
ssh -o ProxyCommand='ssh -q -W localhost:22002 pocitacC.example.com' pocitacB.natomnezalezi.example.com

Ovšem moc jsem nepochopil ty řeči o proxy. Pokud je na počítači C dostupný pouze port 443 a ještě ke všemu přes proxy, pak bude potřeba:

Pak bude potřeba horním dvěma SSH příkazům, stejně jako vnitřnímu SSH u spodních, přidat volbu
Kód: [Vybrat]
-o ProxyCommand='proxytunnel -p <adresaProxy>:<portProxy> -d %h:443'
Název: Re: Spojení dvou PC přes PC s veřejnou IP
Přispěvatel: alafangla 07. 12. 2010, 10:32:06
cau
tak isto sa to da resit ak pouzijes skript napisany v perli ktory sa vola nat-traverse
dokonca ma este jednu vyhodu ze treti pc s verejnou ip co sluzi ako prostrednik vobec nebude potrebny.
no ako vsetko co ma nejaku vyhodu aj toto musi mat nejaku nevyhodu. a tou je to ze tento skript musi byt pusteny na oboch pc sucasne, cim moze vzniknut problem ale ten sa da tiez vyriesit tak ze tento skript pustis napriklad kazde dve minuty pomocou cronu. skript funguje velmi spolahlivo.
Název: Re: Spojení dvou PC přes PC s veřejnou IP
Přispěvatel: alfi 07. 12. 2010, 10:40:15
> Zminenou variantu (-L i -W) jsem zkousel a prave protoze jsem nepochodil, hledam radu na foru.

nj, ale to v původním dotazu nebylo :-)

jestli už spojíte ssh na server (předpokládám přes povolený port 443 a nějakou tu proxy), pak už si přes ssh můžete forwardovat jaký port chcete.. např. client1:1234 -> server:1234 a druhým spojením pak server:1234 -> client2:1234. je to trochu krkolomné, ale mělo by fungovat :-)
Název: Re: Spojení dvou PC přes PC s veřejnou IP
Přispěvatel: Panther 07. 12. 2010, 14:38:55
Mnohokrat Vam dekuji za pomoc, treti pripevek byl presne to co jsem hledal a to co mi pomohlo.