Spojení dvou PC přes PC s veřejnou IP

Panther

Spojení dvou PC přes PC s veřejnou IP
« kdy: 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.
« Poslední změna: 06. 12. 2010, 17:45:09 od Petr Krčmář »


alfi

Re: Spojeni 2 PC za proxy pres PC s verejnou IP
« Odpověď #1 kdy: 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.


Panther

Re: Spojení dvou PC přes PC s veřejnou IP
« Odpověď #2 kdy: 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.

Re: Spojení dvou PC přes PC s veřejnou IP
« Odpověď #3 kdy: 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:
  • Spustit na počítači C SSH na portu 443 (např. pomocí SSLH)
  • Pro spojení k počítači C použít utilitku ProxyTunnel.

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'

Re: Spojení dvou PC přes PC s veřejnou IP
« Odpověď #4 kdy: 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.


alfi

  • ****
  • 324
    • Zobrazit profil
    • E-mail
Re: Spojení dvou PC přes PC s veřejnou IP
« Odpověď #5 kdy: 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 :-)

Panther

Re: Spojení dvou PC přes PC s veřejnou IP
« Odpověď #6 kdy: 07. 12. 2010, 14:38:55 »
Mnohokrat Vam dekuji za pomoc, treti pripevek byl presne to co jsem hledal a to co mi pomohlo.