Weiterleitung per Apache Reverse Proxy

Generelle Fragen zur Montage | Bedienung | Konfiguration des Controllers.
ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Hallo zusammen,

ich habe jetzt meine Steuerung soweit fertig, elektrisch funktioniert alles.
Jetzt geht es um die Frage, wie binde ich die Steuerung an die Außenwelt an (speziell Internet, Intranet ist ja kein Problem) um auch aus der Ferne darauf zuzugreifen und steuern zu können.

Möglichkeit 1 ist, die Steuerung komplett ins Internet zu stellen, also Port 80 auf – da bin ich aber kein Freund von und will ich nicht so machen.
Möglichkeit 2, VPN aktivieren. Ist aber wieder nicht so benutzerfreundlich, kann ich aber momentan schon.
Möglichkeit 3 wäre, eine Relaisseite zu bauen und per PHP die Steuerung zu bedienen. Klappt mit SetState.pl auch ganz gut (z.B. SetState.pl?R7=0&RT7=0). Hatte ich schon angefangen, bis ich gemerkt hab, dass per Aufruf gesteuerte Relais nicht mehr richtig über die Webschnittstelle übersteuern kann. Gefällt mir also auch nicht wirklich.

Lange Rede kurzer Sinn: Ich dachte mir, ich aktiviere einfach auf meinem Webserver den Reverse Proxy. Da kann ich dann per htaccess den Zugriff reglementieren. Klappe auch recht gut, die Steuerung wird weitergeleitet und ich kann mich einloggen.

Nur Relais schalten kann ich nicht, ich bekomme denn einen Error 400. Auslöser ist usrcfg.cgi, die Anfrage wird nicht an die Steuerung weitergeleitet. Ebenso irgendwelche Regeln ändern, immer bekomme ich eine 400 zurück.

Ich denke, das liegt am CGI, ich bekommen den Post nicht durch, ich bin da aber in dem Bereich auch kein Profi.

Hat da einer Idee, ob und wie das zu lösen ist?

Grüße Thorsten

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Alex »

Liegt wohl irgendwo an der Proxy Configuration... da werden die Header teilweise verändert oder nicht vollständig mitgeschickt - und die credentials kommen nicht an.
Mit nem direkten Zugriff per Portweiterleitung kann man aber ja auch nix anderes machen als Werte sehen. Alles relevante an Daten kann nicht gelesen werden ohne eingeloggt zu sein.

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Ja, ich denke auch, das hier was verbuchselt wird. Bin noch am testen mit mod_header, aber nicht wirklich weiter. Ich bekomme den Post einfach nicht richtig durchgereicht.
Gibts eigendlich auf der ProCon.IP eine Logdatei des Webservers, ähnlich access.log oder error.log bei Apache? Dann müsste ich nicht immer nur raten, was da ankommt.
Mit direktem Zugriff bin ich immer sparsam. Mach ich nur kurz auf um Updates zu machen...

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Alex »

Ne, logfile für den Webserver der Procon gibt's keines.

Benutzeravatar
Viveronese
Beiträge: 69
Registriert: 18. Mai 2018, 16:16

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Viveronese »

Weil ich grundsätzlich gegen jegliche Art von Port-Weiterleitung bin, hatte ich vor Jahren auch schon mit nem http_proxy rumgestöpselt - allerdings mit nginx statt mit Apache, ist aber gehupft wie gehechtet. Das hat bei mir dann auch schon prinzipiell funktioniert, aber ausgerechnet das OTA update des Controllers ging nicht weil - wie Alex richtig anmerkte - die credentials nicht richtig durchgereicht werden.

Mein Rat: für das Controller update schnell die Portweiterleitung zum Controller am Router aufmachen und hinterher gleich wieder zumachen. Und natürlich nicht das Standard-Passwort des Controllers verwenden.

Nun zum Problem "Zugriff von aussen": Da du einen http proxy verwenden wolltest, hast Du wahrscheinlich schon ne Raspberry Pi oder ähnliches im Einsatz. Warum nimmst Du nicht ein Wireguard VPN? Das ist schneller aufgesetzt wie ein http proxy, sehr effizient, sicher und perfomant.
Clients dafür gibt's für alle Betriebssyteme inkl. Windows, iOS und Android. Auf den Smartphones kannst Du das VPN daueraktiv lassen ohne dass es dir die Batterie leersaugt oder Traffic verursacht. Und das Beste: Du kommst damit nicht nur an den Pool-Controller, sondern an alles was bei dir im Hause im LAN ist - halt eben als ob Du zuhause bist.

Anleitungen wie man Wireguard einrichtet gibt's genügend im Internet, manche sind etwas ausführlicher , manche etwas schlichter. Achte darauf, dass du nach neueren Anleitungen suchst, denn vieles ist in den letzten Monaten einfacher geworden weil Wireguard nun schon in den neueren Kernels drin ist.

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Gerade hab ich eine alte Pi aus dem Schrank geholt, um nginx als Reverse Proxy vorgeschaltet zum Apache zu installieren und zu testen.
Nur mit dem Apachen als Reverse Proxy willl es einfach nicht klappen. Nun gut, ein bisschen basteln ist ja auch mal schön.
Aber wenn du schon schreibst, mit nginx hatte das bei dir geklappt, stimmt mich das ein bisschen zuversichtlich. Im Endefekt will ja nur die Übersicht und Relais schalten können.
Alles andere kann ich dann immernoch innerhalb des Netzes machen.

Mit dem Update mach ich das so wie du, Portweiterleitung nur kurz fürs Update, dann wieder zu. Standardpasswort ist ganz schlecht, erschreckend wieviele IoT-Geräte im Netz hängen mit Standardlogin...

Ich hab sogar mehrere Pi's da, eine davon ist auch tatsächlich mein Webserver. Von WireGuard hab ich schon gelesen, hatte ihn aber persönlich noch nicht im Einsatz.
Bisher nutze ich nur das VPN der Fritzbox, hatte mir bisher auch gereicht. Ich setz mir ja eh gerade ne Test-Pi auf, da kann ich das mal drauf machen.

markus
Beiträge: 168
Registriert: 23. Januar 2019, 10:57

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von markus »

Ich verstehe nicht ganz warum du deinen VPN Zugang nicht nutzt. Das ist doch Sicherheitstechnisch das beste, bereits eingerichtet und wirklich schwer den Tunnel am Handy aufzubauen ist es ja auch nicht.

Benutzeravatar
Viveronese
Beiträge: 69
Registriert: 18. Mai 2018, 16:16

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Viveronese »

ToS hat geschrieben:Gerade hab ich eine alte Pi aus dem Schrank geholt, um nginx als Reverse Proxy vorgeschaltet zum Apache zu installieren und zu testen.
Das macht ja nun mal keinen Sinn. Entweder Du nimmst Apache oder nginx als Webserver (wobei nginx eindeutig der Vorzug zu geben ist). Wenn Du im Winter mit Sommerreifen stecken bleibst solltest Du auch eher Winterreifen aufziehen statt dir einen Traktor vornedranzuhängen um in die Arbeit zu fahren - oder Du nimmst halt gleich den Traktor und lässt das Auto zuhause.

Wer einmal mit Wireguard als VPN gearbeitet hat, nimmt nix anderes mehr her. Das FritzBox VPN setzt auf IPSec auf, ein etwas in die Jahre (und auch etwas in Verruf) gekommenes Protokoll. Ich bin sicher, dass AVM in naher Zukunft auch Wireguard mit einbinden wird, vorsichtige Ankündigungen gab's dazu schon. Auch wenn man AVM-Ankündigungen nicht immer glauben darf, denn Ende 2019 hatte AVM zB großartig eine 5G-FritzBox eine mit dem Qualcomm Snapdragon X55 vorgestellt - seither war aber nix mehr zu hören, kein Pieps.

Hier ein kleiner Vergleich der VPN-Technoliogien IPSec/OpenVPN/Wireguard vom April letzten Jahres (mittlerweile noch mehr zu Gunsten von Wireguard, da nun im Linux Kernel "ab Werk"):
https://www.the-digital-life.com/wiregu ... -the-best/

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

markus hat geschrieben:Ich verstehe nicht ganz warum du deinen VPN Zugang nicht nutzt. Das ist doch Sicherheitstechnisch das beste, bereits eingerichtet und wirklich schwer den Tunnel am Handy aufzubauen ist es ja auch nicht.
Hab ich doch. Wer sagt das ich das nicht nutze ;)
Es gibt aber auch Gründe, bestimmte Sachen eben nicht mit VPN zu machen.
Viveronese hat geschrieben: Das macht ja nun mal keinen Sinn. Entweder Du nimmst Apache oder nginx als Webserver (wobei nginx eindeutig der Vorzug zu geben ist). Wenn Du im Winter mit Sommerreifen stecken bleibst solltest Du auch eher Winterreifen aufziehen statt dir einen Traktor vornedranzuhängen um in die Arbeit zu fahren - oder Du nimmst halt gleich den Traktor und lässt das Auto zuhause.
Doch sicher, das macht durchaus Sinn. Aber darum soll es hier nicht gehen.
Viveronese hat geschrieben: Wer einmal mit Wireguard als VPN gearbeitet hat, nimmt nix anderes mehr her. Das FritzBox VPN setzt auf IPSec auf, ein etwas in die Jahre (und auch etwas in Verruf) gekommenes Protokoll. Ich bin sicher, dass AVM in naher Zukunft auch Wireguard mit einbinden wird, vorsichtige Ankündigungen gab's dazu schon. Auch wenn man AVM-Ankündigungen nicht immer glauben darf, denn Ende 2019 hatte AVM zB großartig eine 5G-FritzBox eine mit dem Qualcomm Snapdragon X55 vorgestellt - seither war aber nix mehr zu hören, kein Pieps.
Das glaube ich dir sofort, aber die Fitzbox mit VPN hab ich halt schon. Und es funktioniert, sogar sehr gut wenn es mal eingerichtet ist. Das ist für mich erstmal Grund genug :D

Wie schon gesagt, um all das soll es nicht gehen. Ich hab ja schon geschrieben, ich habe auch andere Lösungen die zum Ziel führen. Ich wollte das halt mit einem Reverse Proxy versuchen, die Idee hatte ich und wollte es ausprobieren. Und da bin ich auf Probleme gestoßen. Ob das Sinn man, darüber können wir gerne diskutieren. Man kann auch darüber diskutieren ob ein Pool im Garten Sinn macht :lol:
Eins macht es sicherlich - mir perönlich Spaß und ich lerne was dabei. Das soll doch Grund genug sein.

Nun gut, ich hab die Pi soweit aufgesetzt, den Rest werde ich laufe des Tages testen. Mit dem Homeoffice kommt man zu gar nix mehr :lol:

Benutzeravatar
Viveronese
Beiträge: 69
Registriert: 18. Mai 2018, 16:16

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Viveronese »

Ich habe dir mal meine alte nginx proxy config zum PoolController rausgekramt, vielleicht hilft dir das weiter, geht mit Apache aber ähnlich.

Code: Alles auswählen

server {
        listen  80;
        listen       443 ssl http2;
        listen  [::]:443 ssl http2;
	ssl_certificate     /etc/letsencrypt/live/pooldigital.viverone.net/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/pooldigital.viverone.net/privkey.pem;

        access_log /var/log/nginx/pooldigital_access.log;
        error_log  /var/log/nginx/pooldigital_error.log;
        server_name pooldigital.viverone.net;

	location /.well-known {}

        location / {
             #auth_basic "No Chinese hackers please...";
             #auth_basic_user_file /var/www/pooldigital/htpasswd; 
             proxy_set_header  HOST $host;
             proxy_set_header  X-Real-IP $remote_addr;
             proxy_pass        http://pool.viverone.net;
        }
}

Benutzeravatar
Viveronese
Beiträge: 69
Registriert: 18. Mai 2018, 16:16

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Viveronese »

ToS hat geschrieben: Lange Rede kurzer Sinn: Ich dachte mir, ich aktiviere einfach auf meinem Webserver den Reverse Proxy. Da kann ich dann per htaccess den Zugriff reglementieren. Klappe auch recht gut, die Steuerung wird weitergeleitet und ich kann mich einloggen.
Nur Relais schalten kann ich nicht, ich bekomme denn einen Error 400. Auslöser ist usrcfg.cgi, die Anfrage wird nicht an die Steuerung weitergeleitet. Ebenso irgendwelche Regeln ändern, immer bekomme ich eine 400 zurück.
Poste doch mal dein Apache config file...

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Viveronese hat geschrieben: Poste doch mal dein Apache config file...
Gerne, hier nur der Abschnitt zum http_proxy.
Der Rest sollte ja keinen wesentlichen Einfluss haben, SSL etc.

Code: Alles auswählen

<VirtualHost *:81>
 ServerName wetterdaheim.de
 ServerAlias www.wetterdaheim.de
 ProxyPreserveHost On
 ProxyVia Full
 ProxyRequests Off
 ProxyPass / http://192.168.0.90:80/
 ProxyPassReverse / http://192.168.0.90:80/
</VirtualHost>
Ich hab hier spaßhalber eine andere Webanwendung eingebunden, die klappt per Proxy einwandfrei. Also prinzipiell klappt das mit dem Proxy schon.

Danke für deine Config, die werde ich bei mir testen. Ich muss dir auch soweit mit dem dahinterhängenden Apachen recht geben, den lass ich erstmal weg un teste nur mit dem nginx.
Den Apachen für ein paar andere Sachen kann ich später auch noch dahinter klemmen.

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Alex »

Probier's mal so

Code: Alles auswählen

<VirtualHost *:81>
ProxyPreserveHost Off
ProxyPass / http://192.168.0.90:80/
ProxyPassReverse / http://192.168.0.90:80/
ServerName wetterdaheim.de
</VirtualHost>

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Leider nein, klappt auch nicht...
Wie gehabt, ich komm auf die Oberfläche, kann mich anmelden, kann die Graphen verändern, aber beim aktivieren eines Relais > 400

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Alex »

was is das für'n Apache 2.2 oder 2.4?

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Code: Alles auswählen

apache2 -v
Server version: Apache/2.4.10 (Raspbian)
Hab mir gerade nginx aufgesetzt, da klappt es sofort mit dem Reverse Proxy...

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Alex »

probier mal die... ohne Sonderzeichen im "ServerName"

Code: Alles auswählen

<VirtualHost *:81>
ProxyPreserveHost Off
ProxyPass / http://192.168.0.90:80/
ProxyPassReverse / http://192.168.0.90:80/
ServerName localhost
</VirtualHost>

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Auch nicht.
Mittlerweile glaube ich fast, dass das der Apache nicht hergibt.
Beim nginx gibts da ne eigene Direktive dafür: http://nginx.org/en/docs/http/ngx_http_ ... set_header

Benutzeravatar
Alex
Administrator
Beiträge: 9988
Registriert: 28. Mai 2014, 23:00

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von Alex »

>>Mittlerweile glaube ich fast, dass das der Apache nicht hergibt.
ja doch... bei nem 2.2.22 funktioniert die config von oben. Frag mich aber nicht warum :)

ToS
Beiträge: 28
Registriert: 7. Oktober 2020, 12:21

Re: Weiterleitung per Apache Reverse Proxy

Beitrag von ToS »

Ok, neuer Plan, Apache anheben.
Wir kommen der Sache näher, danke für die Hilfe :D