URL abhängige Portweiterleitung

Gehört mit ziemlicher Sicherheit zur dyndns-Hilfe, und nicht zu Freetz ;)
 
Ich habe aus historischen Gründen zwar keine Lösung allein auf der Fritzbox aber ich habe mittels Fritzbox und NAS(NSLU2(Unslung)) einen Reversproxy mit dem alles hier geforderte funktioniert.
Ich verwende den Apache mit Mod_proxy Reversproxy-server, dieser läuft bei mir allerdings auf dem NSLU2 wäre aber auch auf ner gefreetzten Fritzbox möglich.
Ich kann über diesen externen Reversproxy auf mindestzens 10 Webinterfaces die sich auf mindestens 5 verschiedene interne Geräte verteilen inclusive dem Freetz-Webinterface und einem zusätzlichen Appweb-Webserver auf dem NSLU2 zugreifen.
All dasfunktioniert über DynDNS und eine über einen Freien DNS-Server mit der DynDNS-URL verwurstelten eigenen Domain (das sollte aber für das hier geforderte nicht nötig sein(ich brauche das aber weil ich die DynDNS-URL auch für ENUM benutze und deshalb die extendet-URL deaktivieren muß)).
Die Reversproxylösung hat den vorteil, daß sie einerseits keine Spezialsoftware auf dem Arbeitscomputer (wie für Tunnel) benötigt und andererseits auch durch den HTTP-Proxy/Firewall des Arbeitgebers funktioniert.
Auf diese weise greife ich neben einegen Configurations-Webinterfaces z.B. auch auf die Pythonanwendung Ajaxterm die auch auf meinem NSLU2 läuft zu, die es mir ermöglicht mich mittels Browser durch die Firewall auf der Telnetshell meines NSLU2s einzuloggen und gegebenenfalls von dort aus wieder über Telnet oder auch SSH auf die Shells der anderen Embedded-Linuxgeräte (FB, Reciever, etc.).Vor allen letzteres ist zwar sehr langsam aber ich habe die volle Kontrolle (abgesehen von aus und einschalten) all meiner Netzwerkgeräte nur über den Broser und durch die Firewall.
.
 
Hallo,

ich muss dieses Thema nochmal aufgreifen.

Ich habe mir nach etlichen Stunden vor dem PC das Freetz-1.1.4 auf meine Fritzbox 7141 geflasht. Bin nach der Newbie Anleitung auf freetz.org vorgegangen. http://freetz.org/wiki/help/howtos/common/newbie
Hat alles soweit geklappt.

Ich möchte eigentlich genau was der Themenstartet auch wollte.

Ich möchte über Dyndns/subdomain intern auf verschiedene IP-Adresse umleiten.

z. B.
https://meinedyndns.org/server1 --> Port 443 Anfrage auf 192.168.0.1
https://meinedyndns.org/server2 --> Port 443 Anfrage auf 192.168.0.2
usw.

Habe gelesen, das das mit einem Apache und mod_proxy möglich sein soll.

So, ich habe nun im menuconfig (freetz_linux) nach Apache gesucht und bin im Testing Package Selection --> Testing --> Apache + PHP --> Apache HTTP Server 1.3.41 fündig geworden, jedoch ohne mod_proxy.

Ich kenn mich leider mit Linux überhaupt nicht aus, und brauch eure Hilfe.

Gibts für Apache bzw. dieses mod_proxy eine GUI auf der Freetzoberfläche?

Bin auf diese Seite gestossen.
http://httpd.apache.org/docs/current/

Aber wie muss ich genau vorgehen, damit ich den Apache incl. mod_proxy in die Freetz-Firmware bekomme. Mit Freetz-Firmware meine ich die Firmware, die das Freetz-Linux baut. Diese wiederum habe ich dann auf die Fritzbox 7141 geflasht.

Ich bräuchte laut Internet einen Reverse Proxy und das soll mit Apache und mod_proxy funktionieren.

Gibts denn hierfür eine Anleitung (für Newbies :) im Netz? Hab bisher noch keine gefunden.

Hat jemand von euch einen Tipp für mich?

Vielen Dank
Michael
 
Die Konfiguration eines Apache ist ein komplexes Thema, es gibt bei Apache massenhaft Dokumentation dazu, und es ist kein Freetz Thema. Ich weiß nicht, ob es überhaupt ein GUI gibt, das alle Möglichkeiten eines Apache unterstützt, auf jeden Fall gibt es das nicht in Freetz.

Die Anleitung, die Du gefunden hast, bezieht sich auf den aktuellen Apache. Derzeit ist in Freetz noch eine alte Version drin, wobei es schon ein Ticket zu Apache 2 gibt.

Der Apache ist zu groß, um ihn mit in die Firmware aufzunehmen, Du musst also selbst sehen, wie Du ihn auf die Box bringst.
 
Tinyproxy (http://freetz.org/wiki/packages/tinyproxy) kann das auch und ist bereits in freetz enthalten. Aber Du kannst dann nicht mehr die GUI zum konfigurieren benutzen, da diese nur einen Reversepath unterstützt. Generell aber kein Problem:

ReversePath

Configure one or more ReversePath directives to enable reverse proxy support. With reverse proxying it’s possible to make a number of sites appear as if they were part of a single site.
If you uncomment the following two directives and run Tinyproxy on your own computer at port 8888, you can access example.com, using http://localhost:8888/example/.


Code:
ReversePath "/example/" "http://www.example.com/"
 
Ist das wirklich was ich brauche? Da steht ja, run Tinyproxy on your own computer at port 8888.

Ich werd das heute noch probieren zu integrieren. Aber wo z. B. finde ich ReversePath "/example/" usw. In welcher Configdatei steht das drin, oder soll da reingeschrieben werden.

Ich will ja einfach nur, das wenn ich an einem PC https://meinedns.org/server1 den Webbrowser auf Server1 anspreche und wenn ich https://meinedns.org/server2 eingebe, möchte ich auf den Webbrowser auf Server2. Beide Server haben unterschiedliche private IP-Adressen.

Aber wo muss ich dann den Reverseproxy konfigurieren, irgendwo muss ich da das ja auch eingeben können?

Gruß
Michael
 
Für https braucht man evtl. noch zusätzlich einen SSL-Proxy.

Ja, stimmt. Ich hab's eben probiert, im Moment geht nur http. Ansonsten in die /mod/etc/tinyproxy.conf

ReversePath "/server1/" "http://192.168.178.3/"
ReversePath "/media/" "http://media.fritz.box/"
ReversePath "/tine20/" "http://tine20.intern.local/"

schon kannst Du über die öffentliche Adresse auf alle 3 Server hinter der Box zugreifen. Leider funktioniert das nur ohne SSL, dafür bräuchtest Du wirklich den Apache mit mod_proxy
 
Hallo,

so nun endlich läuft mein Apache 1.3.41 auf der Fritzbox.

So, nun gehts an das eigentliche was ich wollte. Einen ReverseProxy. Ich habe gelesen, ich brauch einen mod_proxy. Was ist das, eine Datei oder wie muss ich mir das vorstellen. Hab gelesen, das im Ordner Apache/config/httpd.conf die ReverseProxy eingetragen werden. Ich habe aber leider keine httpd.conf im Ordner Appache/config. Nur eine apache.conf.

Hat denn jemand von euch schon eine fertige httpd.conf, die ich nur in das Verzeichnis kopiere und dann kanns endlich los gehen. Oder was muss ich noch genau machen?

Ich finde immer nur Auszüge aus einer httpd.conf, wie z. B. diesen hier:
[...
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyRequests off
ProxyPass /mod_proxy/ http://192.168.nnn.nn/
ProxyPassReverse /mod_proxy/ http://192.168.nnn.nn/


ProxyPass /fritz/ http://192.168.nnn.n/
ProxyPassReverse /fritz/ http://192.168.nnn.n/
...]

Reicht das schon, wenn ich eine *.txt Datei erstelle und diesen Code da reinschreibe? Eher nicht, oder?

Zur Erinnerung:
Von aussen sollen zwei Webserver über Port 443 erreichbar.

https://meinedns.org/server1 --> umgeleitet auf 192.168.178.5
https://meinedns.org/server2 --> umgeleitet auf 192.168.178.6

Ich steh doch kurz vorm Ziel oder?

Vielen Dank für eure Hilfe!
Gruß
Michael
 
So, nun gehts an das eigentliche was ich wollte. Einen ReverseProxy. Ich habe gelesen, ich brauch einen mod_proxy. Was ist das, eine Datei oder wie muss ich mir das vorstellen. Hab gelesen, das im Ordner Apache/config/httpd.conf die ReverseProxy eingetragen werden. Ich habe aber leider keine httpd.conf im Ordner Appache/config. Nur eine apache.conf.

Das hört sich schon gut an, ja. Du brauchst mod_proxy und mod_ssl. Beide kannst bzw. musst Du in der apache.conf laden. Schau mal rein, am Anfang steht normalerweise ein großer Block mit Modulen, wovon ein Großteil auskommentiert ist.
Wie die Konfigurationsdatei heisst, ist dabei eigentlich egal, Hauptsache, sie wird beim starten benutzt.

Ich finde immer nur Auszüge aus einer httpd.conf, wie z. B. diesen hier:
[...
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyRequests off
ProxyPass /mod_proxy/ http://192.168.nnn.nn/
ProxyPassReverse /mod_proxy/ http://192.168.nnn.nn/


ProxyPass /fritz/ http://192.168.nnn.n/
ProxyPassReverse /fritz/ http://192.168.nnn.n/
...]

Reicht das schon, wenn ich eine *.txt Datei erstelle und diesen Code da reinschreibe? Eher nicht, oder?

Das muss in die apache.conf. Wenn Du mod_proxy geladen hast, funktioniert es mit http, für https brauchst Du noch modssl


Ich steh doch kurz vorm Ziel oder?
Kommt drauf an, wie man kurz definiert ;) Wenn das SSL-Modul bei Deinem Apache bei ist - ja. Ansonsten hast Du noch eine kleine Hürde vor Dir.
 
Für SSL braucht man keinen Apache, es gibt dafür SSL-Proxies, die nur das SSL übernehmen.
Das wäre auch eine Option:
internet -https-> sslproxy -http-> Apache + mod_proxy oder tinyproxy -http-> lokale Hosts.
Was gibt es denn da so für reine SSL-Proxys? An die Option hab' ich noch gar nicht gedacht.
 
Hallo,

ok, das werd ich heute noch probieren, in die apache.conf die Module laden.

Ich habe mir die Apache Dateien hier aus dem Forum runtergeladen. Leider finde ich gerade den Thread nicht mehr. Wie kann ich feststellen, ob da auch mod_ssl dabei ist?

Ist das auch ein Modul, das man einfach in der apache.conf laden kann? Müssen dann noch weitere Einstellungen für den mod_ssl gemacht werden?

Wie kann man den mod_ssl dazu basteln (du sagst ja eine kleine Hürde)?

Wie muss dann die Reverse Proxy Konfiguration aussehen?

Einfach so:
[...
<Proxy *>
Order deny,allow
Allow from all
</Proxy>

ProxyRequests off
ProxyPass /mod_proxy/ https://192.168.nnn.nn/
ProxyPassReverse /mod_proxy/ https://192.168.nnn.nn/


ProxyPass /fritz/ https://192.168.nnn.n/
ProxyPassReverse /fritz/ https://192.168.nnn.n/
...]

Danke schonmal für jeden Tipp von euch!

Gruß
Michael
 
Einstellungen Tinyproxy für Reverseproxy

Ja, stimmt. Ich hab's eben probiert, im Moment geht nur http. Ansonsten in die /mod/etc/tinyproxy.conf

ReversePath "/server1/" "http://192.168.178.3/"
ReversePath "/media/" "http://media.fritz.box/"
ReversePath "/tine20/" "http://tine20.intern.local/"

schon kannst Du über die öffentliche Adresse auf alle 3 Server hinter der Box zugreifen. Leider funktioniert das nur ohne SSL, dafür bräuchtest Du wirklich den Apache mit mod_proxy

Hallo,

was genau hast Du in /mod/etc/tinyproxy.conf drin stehen und was muss ich im Webinterface einstellen, wenn tinyproxy nur das "reversen" machen soll"...???

MfG
Holger
 
Habe mich nun auch mal mit dem Thema auseinandergesetzt. Mit pound bin ich nur soweit gekommen, daß es mit vhosts läuft, aber die kosten nun mal Bares bei dyndns. Apache erscheint mir etwas überdimensioniert für die Fritzbox und so bin ich bei tinyproxy gelandet. Es funktioniert ja grundsätzlich, aber nur ein Eintrag für reverse path war mir denn doch zu wenig. Also habe ich die GUI ein wenig erweitert.
Der Patch in diesem Ticket erweitert die GUI um bis zu 10 Einträgen. Habe mir STunnel ( listen auf Port 443 und connect auf Port 3128 ) davor gesetzt und kann jetzt alles von außen über eine verschlüsselte Verbindung erreichen, was ich will. Da kommt man auch über die restriktivesten Firewalls durch, die ich kenne.
 

Anhänge

  • tinyproxy.png
    tinyproxy.png
    60.6 KB · Aufrufe: 34
Zuletzt bearbeitet:
Bilder bitte direkt im Forum einbinden, keine Links zu externen Hostern. (Erweiterter Editor/Anhänge)

jo
 
Sorry, hab's korrigiert.
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.