szerver port forwarding

Sziasztok!

A következőt kellene megoldanom:
* A fejlesztői gépemen egy szerver port olyan legyen mintha egy kintről látható szerveren lenne
* Azért, mert Demo céllal kellene egy hálózatos alkalmazást megosztanom neten, de nem akarom a szerverre fixen telepíteni

* Van egy szerver alkalmazásom a fejlesztői gépemen teszőlegesen sok tűzfal mögött
* a fejlesztői gépem csak kifelé tud TCP kapcsolatot nyitni
* Van egy szerverem, amin tetszőleges alkalmazást tudok indítani

Erre gondoltam:
* a szerveren futtatok egy speciális portforwarding programot - két szerver portot nyit
* Az egyik portra ennek a programnak a párja bejelentkezik a fejlesztői gépemről
* A bejövő kapcsolatok a szerver másik portján a fejlesztői gépem felé az egyetlen TCP csatornán keresztül lejönnek
* A fejlesztői gépem portforwarding programja a localhoston lévő porthoz kapcsolódik

Tehát a kapcsolat transzparensen átjön és mindenki boldog :-).

Meg lehet ezt standard Linuxos eszközökkel oldani? És hogyan?

Szerk: Egy lehetséges megoldás.

A címszó: http://en.wikipedia.org/wiki/Port_forwarding#Reverse_port_forwarding
Egy jó találat: http://toic.org/2009/01/18/reverse-ssh-port-forwarding/

Röviden:
* ssh-val kell indítani egy reverse port forwardingot
* A publikus szerveren valamiért nemtudtam elérni, hogy kívülről látható portot nyisson az ssh, ezért még egy redirt is tettem elé:

fejlesztő$ ssh -R 8081:localhost:8080 én@publikusszerverem.com
én@publikusszerverem.com's password: blabla
publikus$ netstat -ln
bla...
tcp 0 0 127.0.0.1:8081 0.0.0.0:* LISTEN
bla...
publikus$ redir --lport=8082 --cport=8081 --caddr=localhost

És lőn, a fejlesztői weboldalam a világból látszik :-)

Köszönöm a tippeket!

Hozzászólások

Lehet fereertem, de kicsit tulbonyolitod. Ha NAT-ol a szerver geped alapbol a belso gepnek, akkor csak annyi kell, hogy iptables -szel a szerveren azt a portot, amin bejonne a kulso kliens atforwardolod a fejlesztoi gep ip-jenek ugyanazon portjara.

Ez a lenyeges info kimaradt az elejebol:-) En valszeg azt csinalnam ebben az esetben, hogy raknek egy openvpn szervert a szerverre, erre becsatlakozik a fejlesztoi gep, ha azt publikusan nem lehet egyebkent elerni, es ezutan a szerveren forwardolnam a kulso portot a fejlesztoi gep vpn-es belso ip portjara.

szerintem egy redir elég kellene, hogy legyen, ssh nélkül.
ssh: "-g Allows remote hosts to connect to local forwarded ports." erre nincs szükség?

ssh user@tavoli_gep_ip -R 12345:localhost:12345