Eine Frage an die Netzwerkprofis - Reverse Proxy, Loadbalancer oder so ähnlich

  • Hallo Zusammen,


    Ich habe eine Frage zu meinem Internetanschluss wo ich nicht mehr weiterkomme. Ich hoffe ihr könnt mir helfen. Alle Werte als Beispiel.


    Mittels DynDNS-Service komme ich auf meine externe IP.

    Also host1.domain.com geht auf 193.80.100.100.


    Ich könnte einen zweiten Eintrag hinzufügen, der auf die selbe IP geht.

    host2.domain.com geht auch auf 193.80.100.100


    Ich kann Port 80 mittels Portforwarding ja nur an einen internen Host weiterleiten. Ich möchte das aber gerne an mehrere weiterleiten.


    host1.domain.com:80 -> 193.80.100.100:80 -> internal host1 (10.0.0.1:80)

    host2.domain.com:80 -> 193.80.100.100:80 -> internal host2 (10.0.0.2:80)


    Das müsste doch irgendwie funktionieren, indem man Portforwarding zuerst auf einen Zwischenserver (am liebsten als vm appliance) macht und dieser selektiv nach aufgerufener Domain weiterleitet.

    Was brauche ich dafür? Ist es ein Reverse Proxy oder ein Loadbalancer oder was anderes?

    Habt ihr eine Idee? :dribble:


    :sbier:

  • Genau.

    Es kommt natürlich ein wenig darauf an was du genau machen willst uns wie viel Zugriffe etc.

    Das was oben steht, geht alles mit dem Reverse Proxy (dieser kann auch so konfiguriert werden daß der Last verteilt und dementsprechend weiterleitet, das wäre dann Loadbalancing.)

    Du bist also mit dem Reverse Proxy schon korrekt unterwegs.


    Ich mache alles mit Reverse Proxy... Eigene Adressen für Jitsi Server (Video conferencing), nextcloud,...

    Forward Proxy wurde es theoretisch auch tun.


    Mach dir ne vm mit nen Ubuntu Server 20.04 oder so, da kann man schon in der Installation nginx mit installieren und dann als Reverse Proxy configurieren.

  • nachdem dein Domain Name nur in der Query an den DNS Server enthalten ist. Und nach dem übersetzen nur mehr die IP und der Port verwendet wird, wird das so nicht funktionieren.

    Was spricht dagegen unterschiedliche Ports zu benutzen.

    80 & 8080 z.B.

    Das wird doch in http headern mitübertragen, oder?


    Der Hauptgrund was gegen verschiedene Ports spricht ist letsencrypt. Die certbots wollen alle fix 80 und 443.

  • Es kommt natürlich ein wenig darauf an was du genau machen willst uns wie viel Zugriffe etc.

    Das was oben steht, geht alles mit dem Reverse Proxy


    Mach dir ne vm mit nen Ubuntu Server 20.04 oder so, da kann man schon in der Installation nginx mit installieren und dann als Reverse Proxy configurieren.

    Ich will 443 für Webserver, Nextcloud und für openvpn nutzen. Openvpn auf 443 weil manche Firmennetzwerke auch outgoing Ports blocken.


    CentOS verwende ich am liebsten, müsste damit auch gehen, nehme ich an. Hast du eine Anleitung parat wie ich meinen Anwendungsfall umsetzen kann? Oder nach was muss ich googeln? Wie ist der konkrete Suchbegriff dafür?

  • Im IP und TCP Header sind keine Domain Namen enthalten.

    HTTP ist Applikation Layer, wenn du da reinschauen willst dann wirst um den Reverse Proxy oder was ähnliches nicht herum kommen.


    Aber der braucht dann auch die TLS/SSL.

    https://www.samueldowling.com/…se-proxy-freenas-ssl-tls/


    also ich hab No-IP und da kannst du port-redirect machen und dir den aufwand sparen.

  • Super, danke, das schau ich mir die nächsten Tage mal an.


    Noip hatte ich auch mal bevor das kostenpflichtig wurde. Jetzt verwende ich subdomains von freedns.afraid.org. Port redirect dürfte dort aber nicht funktionieren.

  • Meinen Account gibt es echt noch.

    Ich kann mit noip aber nicht eine Domain bei http auf 8080 und https auf 8443 weiterleiten. Das nextcloud tls config Tool will gleichzeitig 80 und 443 offen haben.


    Dann bleibt wohl nur die aufwändige Lösung mittels reverse proxy. Nginx terminiert die ssl Verbindung und leitet mit importierten selbstsignierten Zertifikaten intern weiter? Das funktioniert mit letsencrypt? Dh. der certbot am reverse proxy fordert bei letsencrypt für jede Domain ein Zertifikat an und verwaltet diese?

  • Du bekommst von letsencrypt ne E-Mail, wenn empfohlen wird das certifikat zu erneuern. Dann kannst du ein certbot renew ausführen oder dafür einfach einen cronjob anlegen.

    In den meisten configirationen mit nginx oder sonstigem, wird aber schon ein automatisches renew 2 Mal täglich eingerichtet.

    Kannst du dann mit dem Befehl testen ob er auch durchkommt. Mit systemctl status certbot.timer kannst du dann den schedule auch einsehen.

  • Früher (vor 10 Jahren) hatte ich sowas gehabt. Mit OpenVPN und Pound. Alles lief nach außen über Port 80 und 443. Port 80 ist ja klar: wurde von Pound als reverse proxy direkt behandelt und mit den darunter liegenden Ressourcen verbunden. Port 443 ging am OpenVPN rein. OpenVPN hat über port-share Direktive entschieden, ob es sich bei einer Anfrage um einen VPN-Channel oder sonstiger Anfrage handelt und hat im zweiten Fall intern an Pound (Port 444) weitergeleitet. Pound hat wiederum den HTTP-Header ausgewertet.


    Heute nutze ich die Sophos UTM Appliance in der kostenlosen Version für Privatanwender (max. 50 gemanagte Ressourcen). Hier hatte ich nach meiner Erinnerung dieses Szenario nicht implementiert bekommen. Kann mir aber nicht vorstellen, dass es nicht geht - ich hatte damals nicht wirklich Zeit investiert, da mein Bedarf sich erledigt hat.

  • Danke euch, für eure Antworten!


    Ich stehe ja mit Zertifikaten auf Kriegsfuß, ich mag die einfach nicht und sie mich auch nicht. :rofl:


    Aber gut, ich habe jetzt nginx auf centos8 auf esx installiert, portforwarding 443 auf nginx, mittels acme.sh ein Zertifikat von letsencrypt mittels tls challange für meine dyndns domain von freedns bekommen. Wird langsam, war viel trial and error.


    Jetzt kommt die reverse proxy config dran, falls das klappt die openvpn weiterleitung. Bin gespannt ob ich das hinbekomme.

  • OK, scheint alles zu funktionieren. :freu:


    Die openvpn-Weiterleitung war ja überhaupt einfach, im Prinzip nur eine Zeile in der Config. Hat mich trotzdem eine Stunde gekostet, da port-share nicht mit pre shared key funktioniert, sondern nur mit Zertifikaten.


    Ich ärgere mich gerade, dass ich diese Funktion nicht schon vor Jahren bei der openvpn Installation mitbekommen habe. Bin gespannt ob es zu den dahinterliegenden Webseiten eine Performance issue gibt. Hast du was gemerkt, antland?

  • Bei mir gab es damals ca. 4-5 User maximal, die den TFS genutzt und zwei mit openVPN Nutzung. In der Konstellation keinerlei Probleme. Ich kann mir auch nicht vorstellen, dass es auch bei einer größeren Nutzerzahl zu Performanceproblemen führen soll.


    P.S. Wenn ich so darüber nachdenke, ich glaube unsere Homepage lag damals auch dahinter. Die Nutzung haben wir aber nie ausgewertet, da wir darüber keine Kundenakquise gemacht haben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!