PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Server auf Port 80 per Subdomain erreichbar



Svel
12.10.05, 21:45
Hallo zusammen,

ich möchte auf einem Linux-System (ein SuSE 10) SSH, HTTP und VNC Server auf dem selben Port, nämlich 80 laufen lassen.
Hintergrund ist dieser, dass der Zugriff auf alle Dienste von einem fremden Netzwerk auf mit Firewall funktionieren müssen, die nur Port 80 zulässt.
Hinzu kommt noch, dass beide Netzwerke durch einen Router getrennt sind und so nur Zugriff über NAT möglich ist.
Deshalb sollen sich alle Dienste über eine Subdomain ansprechen lassen, also z.B. ssh.mydomain.de.

Meine Idee war nun, mehrere IP-Adressen zu vergeben und an jede einen Dienst zu knüpfen. Da der Webserver vHosts kennt auch kein Problem die Anfage weiterzuleiten.
Nur leider funktioniert das ja nicht so einfach, da z.B. SSH ja auch wieder mit Partner kommunizieren sollte. Das einzige was mir noch einfallen würde, wäre eine Art "Dispatcher" z.B. in PHP, der die Kommunikation routet.

Ich hoffe Ihr habt ein paar Ideen dazu und es ist nicht allzu verwirrend ;)

Viele Grüsse,

Svel

urias
12.10.05, 22:08
Du willst von außen SSH, HTTP und VNC Server nutzen können?

dann mach doch für jedes einen virtuellen Server auf einem eigenen Port.

ähm, alles auf einem, ich glaube das geht garnicht, nach meinem Verständnis, zumindest nicht, wenn es die gleiche Ip-Adresse sein soll ;)

ps.: nicht zufällig sven?

Svel
13.10.05, 15:16
Hallo urias,

ja, möchte ich - allerdings von einem fremden Netzwerk aus, dessen Firewall nur Port 80 zulässt. Deshalb müssten alle Dienste über diesen erreichbar sein.

Ich habe auch alle an verschiedenen IP laufen:
- 192.168.0.2: HTTP auf Port 80
- 192.168.0.3: SSH auf Port 80
- 192.168.0.4: VNC auf Port 80

Das Problem ist nur, ich kann von aussen nur den Router per IP-Adresse 192.168.0.1 erreichen bzw. mydomain.de.
Aber wie sage ich dem jetzt, z.B. dass eine Anfrage auf Port 80 SSH, die andere HTTP ist ?

Meine Idee, war das per Subdomain zu lösen, wäre auch für die Benutzer einfacher ;) Der Router, Webserver oder sonst etwas müsste dann wissen:

ssh.mydomain.de -> 192.168.0.3
vnc.mydomain.de -> 192.168.0.4
usw.

Nur wie realisiere ich sowas nur am Besten ? ;)

Grüsse,

Svel

Übrigens: nein, nicht Sven... Svel ist schon richtig ^^

stefaan
13.10.05, 16:31
Servus!



ssh.mydomain.de -> 192.168.0.3
vnc.mydomain.de -> 192.168.0.4


Dafür ist der DNS-Server zuständig. Aber was spricht dagegen, die Dienste per IP anzusprechen?
Ob du jetzt
ssh -l user -p 80 192.168.0.3 oder
ssh -l user -p 80 ssh.mydom.de anspricht ist ja eigentlich egal...
Ok, Namen merkt man sich leichter, aber du hast mit der Bindung Dienst->IP dein Problem eigentlich schon gelöst.

Grüße, Stefan

Svel
13.10.05, 17:22
Hallo Stefan,

ich wusste, das wird ein grösseres Problem ^^

Der Nameserver kennt nur den Router, also 192.168.0.1.
Deshalb lassen sich die anderen IPs von ausserhalb doch nicht ansprechen bzw. nur per NAT - und dort lässt sich Port 80 nur an eine IP weiterleiten.
Die Subdomains sind übrigens nur vHosts von dem Webserver.

Grüsse,

Svel

stefaan
13.10.05, 18:55
Servus!

D.h. du bist im Internet, dein PC steht zu Hause hinter einem NAT-Router mit einer IP.
Na dann geht das so eher nicht... Mit 4 offiziellen IPs (Router hat alle vier) wäre das möglich.

Grüße, Stefan

Svel
13.10.05, 22:46
Huhu,

genau so ist es :)
Ich weiss nicht mehr, wo ich es gelesen habe, aber es soll möglich sein, dass der Webserver die eingehenden Daten-Streams an andere Anwendungen weitergibt und so quasi vermittelt.
Wenn ich mich recht erinnere, war das bei einem Streaming-Server der Fall, wo die Übertragung per CGI stattfindet.

Grüsse,
Svel

urias
14.10.05, 00:19
meinst du mit Webserver den Apache, es gibt da ein zum einen ein Proxymodul, aber meines Wissens macht das nur http, und dann auch noch die normale Funtkion "<VirtualServer" entweder namens oder hostbasiert.
Damit kann man mehrer Domains auf einer Ip-Adresse verwalten, aber dennoch für jeden Port nur einen Dienst.
Mach doch auf Port 80 einen Webserver Webserver, und lass dort als javaplugin eine ssh laufen, welches sich dann über locahost einloggt.
(natürlich passwortgeschütz)
Wie man sowas nun aber genau hinkriegt, weiß ich nicht, sowas ähnliches meine ich aber mal bei webmin gesehen zu haben).
Alternatv deklarier doch irgendeinen anderen port noch um, zum Beispiel den für https?
Oder den smtp? Oder....

)

Pingu
14.10.05, 05:29
Wenn ich es richtig verstanden haben, dann geht es nicht. Denn nur der Dienst HTTP überträgt einen Domainnamen. Die Dienst SSH, FTP, was-auch-immer-TCP-basierden über tragen keine Domainnamen. Damit hat der Router auch keine Entscheidungsgrundlage.

Einzige Möglichkeit, die mir sofort einfallen würde, wäre, ein VPN über Port 80 zum Router aufzubauen.

Pingu

Svel
14.10.05, 08:16
Morgen ihr Beide,

Pingu: ich bin mir zwar nicht ganz sicher, ob wir das selbe meinen, aber die Idee mit dem VPN ist gut :)
Wenn das einmal Installiert ist, sollte auch jeder normalsterbliche User damitklarkommen...

urias: Als Webserver probiere ich gerade Lighttpd, soll angeblich schneller sein als Apache ;) Der hat Funktion namens "Simple Virtual Hosts", die eigentlich in etwa das selbe machen sollte, wie die von Apache.
Ich bin am überlegen, ob es vielleicht eine Möglichkeit mit der popen() (http://de.php.net/popen) -Funktion von PHP gibt, oder etwas ähnliches...
HTTPS-Port wäre vielleicht auch eine Idee, der müsste auch offen sein. Neben HTTP aber der einzige, in dem Netzwerk einer ungenannten Firma mit magenta Logo ;)

Ich werde mich übers Wochende noch etwas damit befassen, es muss ja irgendwie gehn.

Grüsse,

Svel