2 Domains

Status
Für weitere Antworten geschlossen.

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Hallo,
ich stehe gerade ein wenig auf dem Schlauch. Ich habe eine Domain bei Selfhost registriert die dann per DynDNS auf meine Diskstation verweist. Mit eigenem Zertifikat. So weit so gut.
Jetzt möchte ich gerne eine 2 Domain ( vielleicht auch Subdomain meiner bestehenden Domain ) auf einen Server mit Ubuntu im heimischen Netzwerk verweisen.
Wie stelle ich das am besten an. Ich kann ja die Ports 80/443 im Router nur zu einem Gerät weiterleiten.
Geht das überhaupt 2 Domains über eine Leitung/Router auf 2 Geräte verteilen?

Danke
Karsten
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Dann bspw. über andere Ports oder virtuelle Hosts.
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
also lege ich z.B. auf der DS 2 virtuelle Hosts an wobei ich dann einen weiterleite an den Ubuntu-Server. Verstehe ich das richtig so?
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Zum Beispiel.
 

jahlives

Benutzer
Mitglied seit
19. Aug 2008
Beiträge
18.275
Punkte für Reaktionen
4
Punkte
0
also lege ich z.B. auf der DS 2 virtuelle Hosts an wobei ich dann einen weiterleite an den Ubuntu-Server. Verstehe ich das richtig so?
ich glaube kaum, dass eine reine Weiterleitung hier helfen wird. Das würde nur gehen wenn die "Weiterleitung" eigentlich ein Proxy ist. Bei einer reinen Weiterleitung bekommt der Client einen Redirect Header und sendet seine Query dorthin. Sagen wir du hast die Domain beispiel.de und beispiel.com, dabei sollte beispiel.com auf den Ubuntu Server gehen. Der vhost von beispiel.com würde dann einen Redirect Header an den Client senden. Der Client würde dann den Request erneut stellen (mit dem Ziel, das im Redirect genannt wurde) und dabei wegen der Portweiterleitung wieder auf der DS landen, die wieder einen Redirect Header senden würde. imho kann das nur eine Endlosschleife geben ;-)
Der vhost auf der DS darf also keine Weiterleitung senden, sondern muss den Request des Clients via Proxy Request an den Ubuntuserver schicken.
Das kann man mit mod_rewrite Regeln und dem 'P' Flag machen, ABER es ist bei diesen rewrite Regeln exterm wichtig, dass man NIEMALS einen Pfad mit dem Hostnamen/IP zusammenfügt
Code:
#sehr gefährliches Beispiel für den Einsatz von mod_rewrite und Proxy Requests
RewriteRule ^(.*)$ http://meinInternerServer$1 [P]
obige Rewrite Regel würde das gesamte LAN von aussen zugänglich machen, indem man einen solchen Request generieren würde
Code:
GET :user@IP_AUS_DEINEM_LAN:WUNSCHPORT/pfad/irgendwas
Host: beispiel.com
mod_rewrite würde daraus eine solche URL generieren
Code:
http://meinInternerServer:user@IP_AUS_DEINEM_LAN:WUNSCHPORT/pfad/irgendwas
das Problem ist das '@' welches den Usernamen vom Hostnamen trennt. sprich alles vor dem '@' würde als Username angeschaut, der eigentliche Request würde also nicht mehr an meinInternerServer gehen, sondern an IP_AUS_DEINEM_LAN:WUNSCHPORT/pfad/irgendwas. Damit könnte man auf JEDE IP in deinem LAN und auf einen beliebigen Port zugreifen.
Um eine solche mod_rewrite Regel abzusichern sollte/muss man erst diese gefährlichen Requests abfangen und zwar indem man als allererstes in der htaccess Datei
Code:
RewriteCond  %{REQUEST_URI}  !^$
RewriteCond  %{REQUEST_URI}  !^/
RewriteRule  .*              -    [R=400,L]
einfügt. Diese Regeln killen alle Requests bei denen der Request Pfad nicht leer ist und die nicht mit einem / beginnen. Ein Angreifer könnte zwar jetzt den bösen Request von oben generieren und einen / voranstellen, damit die Deny Regeln nicht greifen.
Code:
GET /:user@IP_AUS_DEINEM_LAN:WUNSCHPORT/pfad/irgendwas
Host: beispiel.com
Die RFC definieren aber, dass der Hostname in einer URL bei ersten Vorkommen u.A. eines Slashs aufhört und danach der Pfad beginnt
mod_rewrite würde also folgenden Request generieren
Code:
http://meinInternerServer/:user@IP_AUS_DEINEM_LAN:WUNSCHPORT/pfad/irgendwas
und das wäre "nur" ein ungültiger Pfad auf meinInternerServer.

Lange Rede kurzer Sinn: dein Vorhaben wird nur klappen wenn du entweder (wie von frogman bereits erwähnt) einen andern externen Port für den Ubuntuserver nimmst oder einen Proxy (standalone oder mod_rewrite) einsetzt. Eine reine Weiterleitung mittels eines vhosts auf der DS kann auch nur dann gehen, wenn der Ubuntuserver unter einem anderen externen Port erreichbar ist. Mit demselben externen Port wird eine Weiterleitung in einer Endlosschleife enden :)
 

Frogman

Benutzer
Mitglied seit
01. Sep 2012
Beiträge
17.485
Punkte für Reaktionen
8
Punkte
414
Da hat jahlives natürlich recht... wobei ich ohne es zu schreiben auch eher an einen Reverse Proxy gedacht hatte bei "Weiterleiten".
 

Thorndike

Benutzer
Mitglied seit
22. Sep 2010
Beiträge
742
Punkte für Reaktionen
4
Punkte
38
Da du ja sowieso einen anderen Server mit Ubuntu im Einsatz hast kannst du auf dem ja einen Apache als Proxy einrichten. Dank Name Based Server geht die Unterscheidung über die Domainnamen für den jeweiligen Virtual Host relativ einfach kann dann entweder lokale Daten zurückliefern oder eben als Proxy für die Syno Daten weiterreichen. Das ganze könnte man auch umgekehrt machen und den Proxy auf der DS einrichten, ich finde es aber deutlich einfacher den Apache direkt konfigurieren zu können ohne das irgendeine Oberfläche da mit dazwischen funkt.

Eine Einschränkung gibt es allerdings beim Zertifikat. Da beim Verbindungsaufbau noch keine Namen übermittelt werden liefert der Apache dann wohl immer das erste Zertifikat seiner Konfiguration zurück. Da kostenlose Zertifikate normalerweise keine Wildcards oder Alternate Names enthalten wird es dabei dann zu Zertifikatsfehlern kommen. Bei bezahlten (teureren) Zertifikaten kann man das natürlich ändern. Vielleicht hilft bald Let's Encrypt und ermöglicht so etwas auch kostenlos.
 

frogtwist

Benutzer
Mitglied seit
08. Nov 2014
Beiträge
395
Punkte für Reaktionen
3
Punkte
18
Vielen Dank, das war sehr ausführlich. Da muss ich noch mal drüber nachdenken.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat